To My Girlfriend (DP)
题意:求选中若干个数,满足和为S,且不能选中下表i, j 和选中k, l的情况总数量。
思路:DP[i][j][k][l] i:前i个和为j,选中k个和不选中l个的情况数量,那么我们的转换应该是在必选/必不选中扩展,还有就是可以都不用,和最多不超过2个选和不选。然后由于i、j之间可以互换位置,k、l之间也可以互换位置所以结果需要乘以4.
#include<bits/stdc++.h>
using namespace std; typedef long long ll; const int maxn = 1e3 + ;
const int maxm = 1e6 + ;
const int mod = 1e9 + ; unsigned dp[maxn][maxn][][];
int a[maxn]; int main(){
int T, n, s;scanf("%d", &T);
while(T --) {
scanf("%d%d", &n, &s);
for(int i = ; i <= n; i ++) scanf("%d", &a[i]);
memset(dp, , sizeof(dp));
dp[][a[]][][] = ;
dp[][a[]][][] = ;
dp[][][][] = ;
dp[][][][] = ;
for(int i = ; i <= n; i ++){
for(int j = ; j <= s; j ++) {
int tmp = j + a[i];
if(tmp <= s)
for(int k = ; k <= ; k ++){
dp[i][tmp][][k] = (dp[i][tmp][][k] + dp[i - ][j][][k]) % mod;
dp[i][tmp][][k] = (dp[i][tmp][][k] + dp[i - ][j][][k]) % mod;
dp[i][tmp][][k] = (dp[i][tmp][][k] + dp[i - ][j][][k]) % mod;
dp[i][tmp][][k] = (dp[i][tmp][][k] + dp[i - ][j][][k]) % mod;
dp[i][tmp][][k] = (dp[i][tmp][][k] + dp[i - ][j][][k]) % mod;
}
for(int k = ; k <= ; k ++){
dp[i][j][k][] = (dp[i][j][k][] + dp[i - ][j][k][]) % mod;
dp[i][j][k][] = (dp[i][j][k][] + dp[i - ][j][k][]) % mod;
dp[i][j][k][] = (dp[i][j][k][] + dp[i - ][j][k][]) % mod;
dp[i][j][k][] = (dp[i][j][k][] + dp[i - ][j][k][]) % mod;
dp[i][j][k][] = (dp[i][j][k][] + dp[i - ][j][k][]) % mod;
}
}
}
long long ans = ;
for(int i = ; i <= s; i ++)
ans = (ans + dp[n][i][][]) % mod;
printf("%lld\n", ans * 4LL % mod); }
return ;
}
To My Girlfriend (DP)的更多相关文章
- hdu 5800 To My Girlfriend + dp
传送门:hdu 5800 To My Girlfriend 题意:给定n个物品,其中i,j必选,l,m必不选,问组成体积为s的方法一共有多少种 思路:定义dp[i][j][s1][s2],表示前i种物 ...
- hdu5800 To My Girlfriend dp 需要比较扎实的dp基础。
To My Girlfriend Time Limit: 2000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) ...
- HDU5800 To My Girlfriend(DP)
题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=5800 Description Dear Guo I never forget the mom ...
- HDU5800 To My Girlfriend 背包计数dp
分析:首先定义状态dp[i][j][s1][s2]代表前i个物品中,选若干个物品,总价值为j 其中s1个物品时必选,s2物品必不选的方案数 那么转移的时候可以考虑,第i个物品是可选可可不选的 dp[i ...
- HDU 5800 To My Girlfriend(单调DP)
[题目链接]http://acm.hdu.edu.cn/showproblem.php?pid=5800 [题目大意] 给出一个容量上限s,f[i][j][k][l][m]表示k和l两个物品不能选,i ...
- 2016暑假多校联合---To My Girlfriend
2016暑假多校联合---To My Girlfriend Problem Description Dear Guo I never forget the moment I met with you. ...
- POJ3211 Washing Clothes[DP 分解 01背包可行性]
Washing Clothes Time Limit: 1000MS Memory Limit: 131072K Total Submissions: 9707 Accepted: 3114 ...
- HDU 5800 (DP)
Problem To My Girlfriend (HDU 5800) 题目大意 给定一个由n个元素组成的序列,和s (n<=1000,s<=1000) 求 : f (i,j,k,l, ...
- HDU 5800 To My Girlfriend 背包
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5800 To My Girlfriend Time Limit: 2000/2000 MS (Java ...
随机推荐
- Android系统文件目录路径说明
系统数据存储路径,如下:其中应用程序包名为:com.spt ContextWrapper类中,包含以下方法: 1. getFilesDir() --> 内部存储 @Override public ...
- JavaScript(七)
类型转换 1.直接转换 parseInt() 与 parseFloat() alert('12'+7); //弹出127 alert( parseInt('12') + 7 ); //弹出19 ale ...
- (82)Wangdao.com第十六天_JavaScript 异步操作
异步操作 单线程模型 指的是,JavaScript 只在一个线程上运行 也就是说,JavaScript 同时只能执行一个任务,其他任务都必须在后面排队等待 注意,JavaScript 只在一个线程上运 ...
- 根据屏幕自适应宽度:@media
@media screen and (min-width: 1490px){ .w1224{ width: 1400px !important; }}@media screen and (max-wi ...
- JMeter参数化中存在逗号的解决方法
在Jmeter中通过CSV Data Set Config进行参数化时,如果参数化数据中存在逗号(,)我们可以通过一下方式进行设置 如何存在中文乱码,可以设置file encoding:gb2312
- css3 属性
1.css 面试题: css 组成: css 样式组成 规则:选择器+声明块 声明块:css属性+css属性值 2.css 解析规则: 从右往左 3.文字超出省略号显示: 1.元素不是内联块 2.ov ...
- js, Date.parse firefox 兼容
Date.parse(dateVal); 这个方法很常用,parse() 方法可解析一个日期时间字符串,并返回 1970/1/1 午夜距离该日期时间的毫秒数. 可以验证输入日期是否窜在,不存在则返回N ...
- 爱奇艺直播 - 春晚直播业务API架构
小结: 1.服务熔断策略 在网关服务中经常会对后端不同api接口做服务聚合,比如A服务 -> B服务 -> C服务 ,如果C服务出现问题,那么在调用C服务之前需要做熔断.而在设计熔断器的时 ...
- CSIS 1119B/C Introduction to Data Structures and Algorithms
CSIS 1119B/C Introduction to Data Structures and Algorithms Programming Assignment TwoDue Date: 18 A ...
- Mybatis+Mysql逆向工程
目录结构: pom文件: <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&quo ...