Hdu 6267(遞推 思維)

2021-09-25 02:12:48 字數 1007 閱讀 9764

1、題面:

2、思路:

(參考文章)

考慮每個節點對結果做出的貢獻,

如果n = 4;

0節點的貢獻是6 = 3!

1節點的貢獻是12 = 3!+ 3!/1 

2節點的貢獻是15 = 3!+ 3!/1 + 3!/2

3節點的貢獻是17 = 3!+ 3!/1 + 3!/2 + 3!/3

所以可以遞推得到每個節點的貢獻

第0個節點的貢獻是 f(0) =(n-1)!

從1~n-1節點,每個節點的貢獻是

從前向後遞推得到每個點的貢獻

f(i) = f(i-1) + (n-1)!/i

結果ans = ∑(f(i)*x)/n!;(x表示每個節點的權值)

將所有除法的地方用逆元代替求出最終的結果。

3、**:

#include#include#include#include#includeusing namespace std;

typedef long long ll;

const ll mod = 998244353;

const int maxn = 1e5+10;

ll fac[maxn];

ll pow(ll a,ll b)

a = a*a%mod;

b>>=1ll;

} return ans;

}ll inv(ll b)

void init()

}int main(void)

ans = ans*inv(fac[n])%mod;

printf("%lld\n",ans);

} return 0;

}

遞推 規律思維題總結

一般來說,遞推題目的後一項會和前幾項有乙個關係式,當然也許這個關係式還得加個常熟。比如 a n a n 1 2 a n 2 a n 3 9 等等,這樣的形式的話,可以打乙個表,從中找出規律。當然也不排除後一項減去前一項,是2的n次方的情況等等.當發現不是這樣的規律的時候,就應該去考慮位數上的規律.就...

hdu 統計問題 遞推

problem description 在一無限大的二維平面中,我們做如下假設 1 每次只能移動一格 2 不能向後走 假設你的目的地是 向上 那麼你可以向左走,可以向右走,也可以向上走,但是不可以向下走 3 走過的格仔立即塌陷無法再走第二次 求走n步不同的方案數 2種走法只要有一步不一樣,即被認為是...

HDU6050 矩陣遞推

source 2017 multi university training contest team 2 題意 給定 n m 求 f 題解 首先對基礎遞推式 f f 2 times f 加乙個sigma,有 sum f sum f 2 sum f 即 f f 2 f 歸納下去可得 f f 2f 所以...