日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

JZOJ 5878. 【NOIP2018提高组模拟9.22】电路图 A

發(fā)布時(shí)間:2025/3/15 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JZOJ 5878. 【NOIP2018提高组模拟9.22】电路图 A 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Description

nodgd 要畫(huà)一個(gè)電路圖。
這是一個(gè)很簡(jiǎn)單的電路圖,所有的元件都是串聯(lián)關(guān)系,從整體來(lái)看就是一個(gè)環(huán)狀的結(jié)構(gòu)。畫(huà)電路圖有很多要求,nodgd 為了畫(huà)得好看就又添加了一些
額外的要求。所有要求歸結(jié)起來(lái)有以下幾點(diǎn):
1、這個(gè)環(huán)狀電路上有n個(gè)雙端電路元件(即每個(gè)電路元件有兩個(gè)連接導(dǎo)線的接頭),其中只有一個(gè)直流電源;為了本題方便,其他n ? 1個(gè)元件都是一模一樣的電阻。
2、電流在電路圖中每經(jīng)過(guò)一個(gè)元件,就必須拐一個(gè)90°的彎;沒(méi)有經(jīng)過(guò)元件時(shí)不允許拐彎。參考右圖。

3、從電路圖整體上觀察,電流沿順時(shí)針?lè)较蛄鲃?dòng),且電路不能自交。參考下圖。

4、如果一個(gè)符合題意的電路圖,可以通過(guò)整體旋轉(zhuǎn)一定的角度,再適當(dāng)調(diào)整圖中導(dǎo)線的長(zhǎng)度,得到另外一個(gè)符合題意的電路圖,則這兩個(gè)電路圖是相同的。參考下圖。

5、如果電路環(huán)路的內(nèi)部存在一個(gè)點(diǎn),使得它可以“看到”電路環(huán)路內(nèi)部的所有位置,就認(rèn)為這個(gè)圖是美觀的,反之是不美觀的。相同的電路圖不一定都美觀。參考下圖。

那么問(wèn)題來(lái)了,nodgd 想知道有多少種不同的電路圖,以及有多少種不同的美觀電路圖。由于兩個(gè)問(wèn)題的答案都可能很大,請(qǐng)mod 1,000,000,007輸出結(jié)果。

Input

輸入文件 A.in。
輸入文件第一行包含一個(gè)正整數(shù)n,表示包含電源在內(nèi)的電路元件的總數(shù)量。

Output

輸出文件A.out。
輸出文件第一行包含一個(gè)整數(shù),表示不同的電路圖數(shù)量mod 1,000,000,007的結(jié)果。第二行包含一個(gè)整數(shù),表示不同的美觀電路圖數(shù)量mod 1,000,000,007的結(jié)果。

Sample Input

【樣例1】
6
【樣例2&3】見(jiàn)下發(fā)文件

Sample Output

【樣例1】
6
6

Data Constraint

對(duì)于 10%的數(shù)據(jù),n = 12;
對(duì)于 30%的數(shù)據(jù),n ≤ 24;
對(duì)于 60%的數(shù)據(jù),n ≤ 5000;
對(duì)于 100%的數(shù)據(jù),4 ≤ n ≤ 10^7,且n是個(gè)偶數(shù)。

Hint

【輸入輸出樣例 1 說(shuō)明】
可以有如下幾種電路圖,電路圖數(shù)量是 6,所以輸出文件第一行輸出一個(gè)整數(shù) 6; 容易發(fā)現(xiàn),這 6 個(gè)電路圖都是美觀的電路圖,所以第二行也輸出一個(gè)整數(shù) 6。

Solution

  • 結(jié)論題。

  • 有一個(gè)元件就會(huì)拐彎一次,我們發(fā)現(xiàn) 右拐次數(shù)就等于左拐次數(shù)+4 ,因?yàn)橐槙r(shí)針拐一圈回來(lái)。

  • 所以第一問(wèn)的答案即為 Cnn/2?2C_{n}^{n/2-2}Cnn/2?2? ,即從 nnn 次拐彎中選 n/2?2n/2-2n/2?2 次左拐。

  • 第二問(wèn)的話我們發(fā)現(xiàn)不能連續(xù)兩次逆時(shí)針拐彎,不然就會(huì)形成一個(gè)不美觀的凹型。

  • 所以我們把路徑分成四段,可以發(fā)現(xiàn)每段的拐彎數(shù)都是奇數(shù)。

  • 問(wèn)題轉(zhuǎn)化為將 nnn 拆分成 4 個(gè)奇數(shù)的方案數(shù)(nnn 是偶數(shù))。

  • 我們先考慮將 nnn 拆成 4 個(gè)偶數(shù)怎么做。將 n/2?1n/2-1n/2?1 個(gè)偶數(shù)排在一起(都小于 nnn)。

  • 選 3 個(gè)出來(lái)(相當(dāng)于擋板),將間隔作為選擇的偶數(shù)(保證了和不會(huì)超過(guò) nnn)。

  • 于是我們就可以得出方案書(shū)為 Cn/2?13C_{n/2-1}^{3}Cn/2?13?

  • 類(lèi)比選 4 個(gè)奇數(shù),我們將這四個(gè)奇數(shù)都加 1 ,則和為 n+4n+4n+4

  • 于是方案數(shù)為 C(n+4)/2?13=Cn/2+13C_{(n+4)/2-1}^{3}=C_{n/2+1}^{3}C(n+4)/2?13?=Cn/2+13?

  • 由于電源放在哪兒都可以,所以要乘 nnn

  • 又因?yàn)檎w旋轉(zhuǎn)后相同的電路圖都是一樣的,所以要除以 4 。

  • 故第二問(wèn)最終答案為 Cn/2+13?n/4C_{n/2+1}^{3}*n/4Cn/2+13??n/4

Code

#include<cstdio> using namespace std; typedef long long LL; const int N=1e7+5,mo=1e9+7; int n; int f[N]; inline int ksm(int x,int y) {int s=1;while(y){if(y&1) s=(LL)s*x%mo;x=(LL)x*x%mo;y>>=1;}return s; } inline int C(int x,int y) {return (LL)f[x]*ksm(f[y],mo-2)%mo*ksm(f[x-y],mo-2)%mo; } int main() {freopen("a.in","r",stdin);freopen("a.out","w",stdout);scanf("%d",&n);for(int i=f[0]=1;i<=n;i++) f[i]=(LL)f[i-1]*i%mo;printf("%d\n",C(n,n/2-2));printf("%d",(LL)C(n/2+1,3)*n%mo*ksm(4,mo-2)%mo);return 0; }

總結(jié)

以上是生活随笔為你收集整理的JZOJ 5878. 【NOIP2018提高组模拟9.22】电路图 A的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。