HDU 2065 紅色病毒 問題(生成函式)

2021-08-18 18:52:58 字數 3064 閱讀 5625

description

醫學界發現的新病毒因其蔓延速度和in

tern

eti nt

erne

t上傳播的」紅色病毒」不相上下,被稱為」紅色病毒」,經研究發現,該病毒及其變種的dn

a dna

的一條單鏈中,胞嘧啶,腺嘧啶均是成對出現的。

現在有一長度為

n n

的字串,滿足一下條件:

(1) 字串僅由a,

b,c,

d' role="presentation" style="position: relative;">a,b

,c,d

a,b,

c,d四個字母組成;

(2)

a a

出現偶數次(也可以不出現);

(3)

c' role="presentation" style="position: relative;">c

c出現偶數次(也可以不出現);

計算滿足條件的字串個數. 當n

=2n =2

時,所有滿足條件的字串有如下

6 6

個:bb

,bd,

db,d

d,aa

,cc' role="presentation" style="position: relative;">bb,

bd,d

b,dd

,aa,

ccbb

,bd,

db,d

d,aa

,cc.

由於這個資料肯能非常龐大,你只要給出最後兩位數字即可.

input

每組輸入的第一行是乙個整數

t t

,表示測試例項的個數,下面是t行資料,每行乙個整數n(

1≤n<264

)' role="presentation" style="position: relative;">n(1

≤n<264

)n(1

≤n<264

),當t=

0 t=0

時結束.

output

對於每個測試例項,輸出字串個數的最後兩位,每組輸出後跟乙個空行.

sample input4

1 4

20 11

3 14

24 6

0sample output

case 1: 2

case 2: 72

case 3: 32

case 4: 0

case 1: 56

case 2: 72

case 3: 56

solution考慮

a,b,

c,d a,b

,c,d

四個字母數量的指數型生成函式​ p

a(x)

=pc(

x)=∑

i≥01

(2i)

!x2i

=ex+

e−x2

p a(

x)=p

c(x)

=∑i≥

01(2

i)!x

2i=e

x+e−

x2

,pb(x)=

pd(x

)=∑i

≥01i

!xi=

exp b(

x)=p

d(x)

=∑i≥

01i!

xi=e

x故四種字母取若干構成乙個排列的生成函式f(

x)=p

2a(x

)⋅p2

b(x)

=(ex

+e−x

2)2⋅

e2x=

e4x+

2⋅e2

x+14

f (x

)=pa

2(x)

⋅pb2

(x)=

(ex+

e−x2

)2⋅e

2x=e

4x+2

⋅e2x

+1

4答案即為n!

⋅[xn

]f(x

)=n!

4⋅(4

nn!+

2⋅2n

n!)=

4n−1

+2n−

1 n!⋅

[xn]

f(x)

=n!4

⋅(4n

n!+2

⋅2nn

!)=4

n−1+

2n−1

,其中[x

n]f(

x)[ xn

]f(x

)表示f(

x)f (x

)的xn

x

n項的係數

code

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

typedef

long

long ll;

typedef pairp;

const

int inf=0x3f3f3f3f,maxn=100001;

#define mod 100

int pow(int a,ll b,int c)

return ans;

}int main()

printf("\n");

}return

0;}

hdu 2065 紅色病毒 問題

複習母函式,發現這道題可以用矩陣快速冪。然後做了一下 母函式 看起來好複雜的樣子 列dp方程,構造矩陣 dp n dp i 0 表示放到了第i位,前i位中有 偶數個a,有 偶數個c dp i 1 表示放到了第i位,前i位中有 奇數個a,有 偶數個c dp i 2 表示放到了第i位,前i位中有 偶數個...

hdu 2065 紅色病毒 問題

problem description 醫學界發現的新病毒因其蔓延速度和internet上傳播的 紅色病毒 不相上下,被稱為 紅色病毒 經研究發現,該病毒及其變種的dna的一條單鏈中,胞嘧啶,腺嘧啶均是成對出現的。現在有一長度為n的字串,滿足一下條件 1 字串僅由a,b,c,d四個字母組成 2 a出...

hdu2065 紅色病毒 問題

思路 先暴力打個表,然後找規律.include includeint main int b 5 4 int64 n,m while scanf d t eof t printf n return 0 description 醫學界發現的新病毒因其蔓延速度和internet上傳播的 紅色病毒 不相上下...