题意:求选中若干个数,满足和为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)的更多相关文章

  1. hdu 5800 To My Girlfriend + dp

    传送门:hdu 5800 To My Girlfriend 题意:给定n个物品,其中i,j必选,l,m必不选,问组成体积为s的方法一共有多少种 思路:定义dp[i][j][s1][s2],表示前i种物 ...

  2. hdu5800 To My Girlfriend dp 需要比较扎实的dp基础。

    To My Girlfriend Time Limit: 2000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  3. HDU5800 To My Girlfriend(DP)

    题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=5800 Description Dear Guo I never forget the mom ...

  4. HDU5800 To My Girlfriend 背包计数dp

    分析:首先定义状态dp[i][j][s1][s2]代表前i个物品中,选若干个物品,总价值为j 其中s1个物品时必选,s2物品必不选的方案数 那么转移的时候可以考虑,第i个物品是可选可可不选的 dp[i ...

  5. 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 ...

  6. 2016暑假多校联合---To My Girlfriend

    2016暑假多校联合---To My Girlfriend Problem Description Dear Guo I never forget the moment I met with you. ...

  7. POJ3211 Washing Clothes[DP 分解 01背包可行性]

    Washing Clothes Time Limit: 1000MS   Memory Limit: 131072K Total Submissions: 9707   Accepted: 3114 ...

  8. HDU 5800 (DP)

    Problem To My Girlfriend (HDU 5800) 题目大意 给定一个由n个元素组成的序列,和s (n<=1000,s<=1000) 求 :   f (i,j,k,l, ...

  9. HDU 5800 To My Girlfriend 背包

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5800 To My Girlfriend Time Limit: 2000/2000 MS (Java ...

随机推荐

  1. css margin使用技巧

    margin使用技巧: (1)设置元素水平居中:margin:x auto; (2)margin负值让元素位移及边框合并 水平居中:auto 代码: <!DOCTYPE html> < ...

  2. jmeter下TPS插件的安装

    1.下载插件http://pan.baidu.com/s/1mioVJni 2.解压下载的安装包: 将 jpgc-graphs-basic-2.0.zip 解压缩后只有一个 lib 目录,该目录下有一 ...

  3. ng7 设置http proxy

    看文档 proxy.conf.json { "/api": { "target": "http://localhost:5000", &qu ...

  4. laravel整合workerman做聊天室

    测试工具  http://www.blue-zero.com/WebSocket/ 2018年8月6日17:28:24 <?php namespace App\Console\Commands; ...

  5. LeetCode 70 - 爬楼梯 - [递推+滚动优化]

    假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数. 示例 1: 输入: 2输出: 2解释: 有两种方 ...

  6. linux中启动 java -jar 后台运行程序

    直接用java -jar xxx.jar,当退出或关闭shell时,程序就会停止掉.以下方法可让jar运行后一直在后台运行. 1. java -jar xxx.jar & 说明: 在末尾加入 ...

  7. 使用maxwell实时同步mysql数据到kafka

    一.软件环境: 操作系统:CentOS release 6.5 (Final) java版本: jdk1.8 zookeeper版本: zookeeper-3.4.11 kafka 版本: kafka ...

  8. 【Python基础】lpthw - Exercise 40 模块、类和对象

    一. 模块(module) 模块中包含一些函数和变量,在其他程序中使用该模块的内容时,需要先将模块import进去,再使用.操作符获取函数或变量,如 # This goes in mystuff.py ...

  9. AVL树的Java实现

    AVL树:平衡的二叉搜索树,其子树也是AVL树. 以下是我实现AVL树的源码(使用了泛型): import java.util.Comparator; public class AVLTree< ...

  10. 关于ico图标

    ico图标可以作为网页标签上显示的小logo,比如: 要获取一个网站的ico图标,只需要在url后输入/favicon.ico即可,比如   https://www.baidu.com/favicon ...