hdu 4906——Our happy ending
来源:互联网 发布:pdf文件朗读软件 编辑:程序博客网 时间:2024/06/05 22:46
题意:数组长度是n,最大元素是L,且数组中存在几个元素的和是T。求有多少个这样的数组。
思路:状态压缩。t最大就20。用一个int表示状态。在前i个数中,如果存在几个元素的加和为i,那么第i为就为1,否则为0.这样就把状态表示出来了。最后的答案是所有的第t位为1的状态的和。
没有优化空间导致MLE了一次。在求可以到达的状态的时候,一位一位来求没有直接一次位移解决TLE了一次。。。
代码如下:
#include<iostream>#include<cstring>#include<vector>#include<algorithm>#include<cstdio>#include<map>#include<cmath>#include<assert.h>#include<iomanip>#include<assert.h>using namespace std;typedef long long ll;const ll mod = 1000000007;ll dp[2][1<<21];int main(){// freopen("data.txt","r",stdin); int T; scanf("%d",&T); while(T--){ int n,K,L; scanf("%d%d%d",&n,&K,&L); memset(dp,0,sizeof(dp)); int now = 0; dp[0][1] = 1; now = 1; for(int i = 1;i<=n;++i){ memset(dp[now],0,sizeof(dp[now])); for(int j = 0;j<(1<<(K+1));++j){ if(dp[now^1][j]==0)continue; for(int k =0;k<=min(K,L);++k){ int s = j; s = s|(1<<k)|(j<<k); s = s & ((1<<(K+1))-1); dp[now][s] += dp[now^1][j]; dp[now][s] %= mod; } dp[now][j] += (dp[now^1][j]*(L-min(K,L)))%mod; dp[now][j] %= mod; } now = now^1; } ll ans = 0; for(int j = (1<<K) ;j<(1<<(K+1));++j){ ans += dp[now^1][j]; ans%=mod; } cout<<ans<<endl; } return 0;}
0 0
- hdu 4906——Our happy ending
- hdu 4906 Our happy ending
- HDU 4906 Our happy ending (状压DP)
- hdu 4906 Our happy ending(状压dp)
- HDU 4906 Our happy ending 状压DP
- HDU-4906 Our happy ending 状压DP
- HDU 4906 Our happy ending 状压DP
- hdu 4906 Our happy ending 状压dp
- HDU 4906 Our happy ending 解题报告(递推)
- hdu 4906 Our happy ending (状态压缩dp)
- hdu 4906 Our happy ending 状态压缩dp
- hdu 4906 Our happy ending 状态压缩dp 较难
- Our happy ending
- hdu 4906 Our happy ending 。神奇的状态转移方程,记录下
- hdu 4906 Our happy ending (多校第4场 )状压DP
- hdu4906 Our happy ending --- 状压dp
- hdu4906 Our happy ending,状态压缩DP
- hdu4906 Our happy ending 2014 Multi-University Training Contest 4
- Dynamics CRM 安装Microsoft Dynamics CRM Reporting Extensions
- PHP创建图片、绘制图片、并将图片输出到页面上
- 高性能、高可用的分布式架构体系
- 各种排序算法的稳定性和时间复杂度
- B+树(C++实现)
- hdu 4906——Our happy ending
- form元素认证
- python_getopt解析命令行输入参数的使用
- 最新Linux 内核 4.2 RC 获史上最大更新量
- HDU 1496 Equations
- android developers training 文档学习笔记(目录)
- java反射机制之基础
- 欢迎使用CSDN-markdown编辑器
- 几种流行的开源WebService框架Axis1,Axis2,Xfire,CXF,JWS比较