對於n
nn個方法,m
mm個材料,乙個方法配對乙個材料可以做an,
ma_
an,m
道菜。選擇k
kk個配對要求
配對至少為k
>
1k>1
k>
1每個配對的方法不同
每個材料最多用⌊k2
⌋\lfloor\frac\rfloor
⌊2k⌋次
求做菜方案數
考慮容斥減去多餘方案,也就是要求乙個材料用超過一半。列舉這個超過一半的材料,設fi,
jf_
fi,j
表示選到第i
ii個方法,這個材料減去其他材料的使用次數為j
jj,那麼這個多餘方案的答案就是j
jj為正數的f
ff值。
時間複雜度o(n
2m
)o(n^2m)
o(n2m)
#include
#include
#include
#define ll long long
using
namespace std;
const ll n=
110,m=
2100
,xjq=
998244353
;ll n,m,a[n]
[m],f[n][2
*n],s[n]
,ans=1;
intmain()
ans=ans*
(s[i]+1
)%xjq;
}for
(ll k=
1;k<=m;k++
)for
(ll j=n+
1;j<=
2*n;j++
) ans=
(ans-f[n]
[j]+xjq)
%xjq;
}printf
("%lld"
,(ans-
1+xjq)
%xjq)
;}
P5664 Emiya 家今天的飯
miku 這個題很顯然的可以從部分分推到正解 64上去就是乙個四維dp,dp i j k z 表示在第1行的時候第一行選了j個,第2行選了k個,第3行選了z個的 情況下的方案數,轉移用手就能推。只是有個小細節 include include include include define int lo...
P5664 Emiya 家今天的飯
哭了qaq這題整了12345678天,在題解和sy的部落格幫助下完成了題目qaq 給出乙個n m的矩陣,總共選k個,不能不選,要求 1.每行只能選乙個 2.每列最多選 個求出合法方案數 抽象理解一下就是這麼個東西 直接求解莫得思路,然後正難則反,我們考慮總方案數 不合法方案數 考慮沒有任何限制,我們...
洛谷 P5664 Emiya 家今天的飯(DP)
觀察題目資料範圍,發現前64pts可以用類似狀壓的思想來做 m 3 前84pts可以在o n 3 m 的時間內完成。100pts需要在o n 2 m 的時間內做。總述 注意總的初始化,初始化要為1,因為後面有乘的操作,最後的時候再將那個多餘的1減去。64pts 設f i j k q 表示到第i行,第...