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 所以...