hdu5389Zero Escape 01背包
2015-08-15 14:31
351 查看
//给组数,将其分为两组,使得左边的所有的数的和mod9为a,右边为b //问方法数 //01背包,dp[i][j] ,前i个数得到的mod9为j的个数 //dp[i][j] = (dp[i-1][(j+9-tmp)%9] + dp[i-1][j])%mod ; #include<cstdio> #include<cstring> #include<iostream> using namespace std ; const int maxn = 1e5+10 ; const int mod = 258280327 ; int dp[maxn][10] ; int n , a , b ; int main() { //freopen("in.txt" ,"r" , stdin) ; int t ; scanf("%d" , &t) ; while(t--) { scanf("%d%d%d" , &n , &a , &b) ; for(int i = 0;i <= n;i++) memset(dp[i] , 0 , sizeof(dp[i])) ; int sum = 0 ;dp[0][0] = 1; for(int i = 1;i <= n;i++) { int tmp ; scanf("%d" , &tmp) ; sum += tmp ; for(int j = 0 ;j < 9 ;j++) dp[i][j] = (dp[i-1][(j+9-tmp)%9] + dp[i-1][j])%mod ; } if(((sum-a-b)%9) && ((sum-a)%9) && ((sum-b)%9)) { puts("0") ; continue ; } else if((sum-a-b)%9) { puts("1"); continue ; } else cout<<dp [a%9]<<endl; } return 0 ; }
相关文章推荐
- 递归算法讲解
- 面向对象基本定义及概念
- JSP内置对象(主要指page、request、session、application)
- 回溯算法讲解
- JQuery下锚点的平滑跳转
- C# 集合类型
- linux下的目录处理命令
- POJ 3104- Drying-二分
- 【自考学习】数据库系统原理总结
- 动态规划法讲解
- 设计一个一百亿的计算器
- 嵌入式web的一些理解(实习笔记)
- 黑马程序员----java中的异常
- python2.7学习笔记(4) ——条件判断、循环、dict、set
- 百度地图----->地图类型、定位模式、实时交通、我的位置、添加覆盖物、覆盖物详情及提示
- spring 整合hibernate
- 分治法算法讲解
- ORA-04031: 无法分配 3936 字节的 共享内存
- dos复制到剪切板
- ADT plugin