1,比刚才的划分数更玄学一点。
2,嗯哼????
3,简直了,这tm一个比一个难.
https://www.cnblogs.com/Parsnip/p/10742332.html
一个网址,讲这个东西的。
这个人的我越看越那啥
4,现在起码有个大致的思路就是这样。
简直了,现在就两个地方不清楚,一个是最开始的递推式,一个是简化后的递推式。
5,
#include<iostream> using namespace std; int n,m,M,a[1005],dp[1005][1005]; int main(){ cin>>n>>m; for(int i=0;i<n;i++) cin>>a[i]; cin>>M; for(int i=0;i<=n;i++) dp[i][0]=1; for(int i=0;i<n;i++) { for(int j=1;j<=n;j++) { if(j-1-a[i]>=0) dp[i+1][j]=(dp[i+1][j-1]+dp[i][j]-dp[i][j-1-a[i]]+M)%M; else dp[i+1][j]=(dp[i+1][j-1]+dp[i][j])%M; } } cout<<dp[n][m]<<endl; }
6,第一次的一个代码。
7,这书也有点坑啊,关键在推导公式什么的。。
https://blog.csdn.net/viphong/article/details/48110525
我现在这是大概懂了一点。
8,放以后继续探索吧