vip域名做网站好不好,一般网站建设流程有哪些步骤,重庆企业做网站多少钱,备案 网站服务内容几种方法 容斥#xff0c;时间二分#xff0c;dp数据结构强艹#xff0c;主席树 不要拘泥自己思路#xff0c;思路放开其实不难 主要讲容斥和时间二分 容斥#xff08;其实不是容斥#xff0c;只是类似于容斥#xff09; 我们算出来总值#xff0c;然后减去当前贡献即可… 几种方法 容斥时间二分dp数据结构强艹主席树 不要拘泥自己思路思路放开其实不难 主要讲容斥和时间二分 容斥其实不是容斥只是类似于容斥 我们算出来总值然后减去当前贡献即可 注意一下枚举顺序 #includebits/stdc.h
using namespace std;
#define ll long long
#define A 2100
ll f[A],x[A],w[A],ans[A];
const ll mod10;
ll n,m;
int main(){scanf(%lld%lld,n,m);f[0]1;for(ll i1;in;i)scanf(%lld,w[i]);for(ll i1;in;i)for(ll jm;jw[i];j--)(f[j]f[j-w[i]])%10;for(ll i1;in;i){memset(ans,0,sizeof(ans));for(ll j0;jm;j)ans[j]f[j];for(ll jw[i];jm;j)ans[j](ans[j]-ans[j-w[i]]10)%10;for(ll j1;jm;j)printf(%lld,ans[j]);coutendl;}
} 时间二分 skyh代码%%% 比较神的方法 #includeiostream
#includecstdio
#define int short
using namespace std;
const int N2010;
int n,m,w[N],dp[15][N];
inline void add(int a,int b){ab;if(a10) a-10;
}
void solve(int dep,int l,int r){if(lr){for(int i1;im;i) printf(%hd,dp[dep-1][i]);puts();return ;}int midlr1;for(int i0;im;i) dp[dep][i]dp[dep-1][i];for(int imid1;ir;i) for(int jm;jw[i];--j) add(dp[dep][j],dp[dep][j-w[i]]);solve(dep1,l,mid);for(int i0;im;i) dp[dep][i]dp[dep-1][i];for(int il;imid;i) for(int jm;jw[i];--j) add(dp[dep][j],dp[dep][j-w[i]]);solve(dep1,mid1,r);
}
signed main(){scanf(%hd%hd,n,m);for(int i1;in;i) scanf(%hd,w[i]);dp[0][0]1; solve(1,1,n);return 0;
} 转载于:https://www.cnblogs.com/znsbc-13/p/11276045.html