HDU 5230 ZCC loves hacking DP(拆分数,加数不同)
来源:互联网 发布:用js给input赋值 编辑:程序博客网 时间:2024/05/22 22:46
HDU 5230
题意:给出n,L,R 问[1,2...n-1]中和为[L,R]的方案数.每个数只能选一次. n,L,R<=1e5.
求L<=x<=R 的拆分数
每个加数都不同 . (1+2+..i)<=n i<=sqrt(n) 加数个数最多根号n个.
dp[i][j] 把j拆分成i个不同加数的方法数.
i个加数中有一个是1,i个加数一个1都没有
题意:给出n,L,R 问[1,2...n-1]中和为[L,R]的方案数.每个数只能选一次. n,L,R<=1e5.
求L<=x<=R 的拆分数
每个加数都不同 . (1+2+..i)<=n i<=sqrt(n) 加数个数最多根号n个.
dp[i][j] 把j拆分成i个不同加数的方法数.
i个加数中有一个是1,i个加数一个1都没有
dp[i][j]=dp[i-1][j-i]+dp[i][j-i].
#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N=1e5+20,M=320,mod=998244353;ll dp[2][N];int main(){ int T,n,c,L,R; cin>>T; while(T--) { scanf("%d%d%d%d",&n,&c,&L,&R); L-=c,R-=c; ll ans= L==0 ; memset(dp,0,sizeof(dp)); dp[0][0]=1; int now=1; for(int i=1;i*(i+1)/2<=R;i++) { for(int j=i*(i+1)/2;j<=R;j++) { dp[now][j]=(dp[1-now][j-i]+dp[now][j-i])%mod; if(L<=j&&j<=R) ans=(ans+dp[now][j])%mod; } now=1-now; memset(dp[now],0,sizeof(dp[now]));// } printf("%lld\n",ans); } return 0;}
阅读全文
0 0
- HDU 5230 ZCC loves hacking DP(拆分数,加数不同)
- HDU 5230 ZCC loves hacking(DP)
- hdu 5230 ZCC loves hacking
- HDU 5230 ZCC loves hacking
- hdu 5230 ZCC loves hacking
- 【DP】 HDOJ 5230 ZCC loves hacking
- hdu 5230 ZCC loves hacking(整数拆分的变形+前缀和)
- hdoj 5230 ZCC loves hacking
- hdu 5230 ZCC loves hacking(BestCoder Round #41)
- hdu 5230 ZCC loves hacking && BestCoder Round #41 1003
- hdu5230 ZCC loves hacking
- hdu 4882 ZCC Loves Codefires
- hdu 4882ZCC Loves Codefires
- HDU 4876 ZCC loves cards
- HDU-4876-ZCC loves cards
- hdu 4879 ZCC loves march
- hdu 4876 ZCC loves cards
- HDU 5229 ZCC loves strings
- Viewholder内部会议纪要以及fragment相关知识总结
- Thread的run()与start()的区别
- Debian安装后没有没有Intel Wireless驱动,无法开启WiFi
- 统计回文--一道面试题的反思
- 入门Webpack
- HDU 5230 ZCC loves hacking DP(拆分数,加数不同)
- Reportng测试报告添加失败用例截图
- 罗马数字与阿拉伯数字的相互转化
- Redis笔记(三)Redis的数据类型
- css3选择器
- python 接口自动化测试(三)
- 阿里云自研云数据库POLARDB_未来企业的数字化答案
- 利用递归实现折半查找
- 深入理解findViewById()