hdu 5800
来源:互联网 发布:全球淘宝下载 编辑:程序博客网 时间:2024/06/07 13:51
#include <iostream>#include <cstdio>#include <string.h>#include <algorithm>#include <map>#include <queue>#include <stdlib.h>#include <cmath>#include <vector>#include <stack>#define clr(x) memset(x,0,sizeof(x))#define clr2(x) memset(x,INF,sizeof(x))#define clr3(x) memset(x,-INF,sizeof(x))#define INF 0x3f3f3f3f#define MAXN 1001#define MAXM 1001#define pb(x) push_back(x)#define ll long long#define ull unsigned long longusing namespace std;int w[MAXN],dp[MAXN][MAXN][3][3];int n,s;const int mod=1e9+7;void solve(){ scanf("%d%d",&n,&s); for (int i=1;i<=n;i++) scanf("%d",&w[i]); dp[0][0][0][0]=1; for (int i=1;i<=n;i++) for (int j=0;j<=s;j++) for (int s1=0;s1<=2;s1++) for (int s2=0;s2<=2;s2++) { dp[i][j][s1][s2]= dp[i-1][j][s1][s2]; if (j-w[i]>=0) { dp[i][j][s1][s2]+= dp[i-1][j-w[i]][s1][s2]; dp[i][j][s1][s2] %=mod; } if (s1-1>=0 && j-w[i]>=0 ) { dp[i][j][s1][s2]+= dp[i-1][j-w[i]][s1-1][s2]; dp[i][j][s1][s2] %=mod; } if (s2-1>=0) { dp[i][j][s1][s2] += dp[i-1][j][s1][s2-1]; dp[i][j][s1][s2] %=mod; } } ll ans=0; for (int j=0;j<=s;j++) ans+=dp[n][j][2][2]; ans*=4; ans%=mod; printf("%lld\n",ans);}int main(){ int T,Case=0; scanf("%d",&T); while (T--) solve(); return 0;}
0 0
- hdu 5800
- hdu 5800 计数dp
- HDU 5800 Family View
- hdu
- hdu
- HDU
- hdu ()
- hdu
- hdu
- HDU
- HDU
- hdu
- hdu
- HDU
- Hdu
- hdu
- hdu-
- hdu
- 回答阿里社招面试如何准备,顺便谈谈对于Java程序猿学习当中各个阶段的建议
- qos实现之tc流量控制
- matcaffe错误:Invalid MEX-file: caffe.mexa64,x86_64-linux-gnu/libstdc++.so.6
- 常见Android面试题及答案(详细整理)
- 快速排序-Java实现
- hdu 5800
- Python脚本在crontab定时任务中无法运行,但是对应脚本手动执行成功
- HTTP长连接和短连接原理浅析
- Android Upload File to Server
- 集合总结[java]
- 设计模式-装饰者模式
- hdu 5794
- git 排错 fatal: 'git status --porcelain' failed in submodule abi/cpp
- java之HttpClient 使用[get/post]