hdoj 4901 多校联合4 1005
来源:互联网 发布:mac怎么用html5看视频 编辑:程序博客网 时间:2024/05/16 17:09
计数DP,思路还是很清晰的。只要有点DP基础,或者做过类似问题的,应该都能看出来是DP,可惜当时我没有做这个题。一直被那个线段树困着。
也希望以后能把线段树种活。这个题的思路就是设f[i][j]为 前i个数(从中选若干个数)异或值为j的集合数。h[i][j]为从第i个数开始到n(选若干个数),相与值为j的集合数。
最后两层循环(f[i][j]-f[i-1][j])*h[i+1][j]的累加和就是结果,之所以要减去f[i-1][j]是要去除重复的集合数。
代码如下:
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define MAX 1111#define MOD 1000000007__int64 f[MAX][MAX],h[MAX][MAX];int n,T;int a[MAX];int main(){ int i,j; scanf("%d",&T); while(T) { memset(f,0,sizeof(f)); memset(h,0,sizeof(h)); scanf("%d",&n); for(i=1;i<=n;i++) scanf("%d",&a[i]); for(i=1;i<=n;i++) { f[i][a[i]]++; for(j=0;j<1024;j++) { if(f[i-1][j]) { f[i][j]+=f[i-1][j]; f[i][j]%=MOD; f[i][j^a[i]]+=f[i-1][j]; f[i][j^a[i]]%=MOD; } } } for(i=n;i>=1;i--) { h[i][a[i]]++; for(j=0;j<1024;j++) { if(h[i+1][j]) { h[i][j]+=h[i+1][j]; h[i][j]%=MOD; h[i][j&a[i]]+=h[i+1][j]; h[i][j&a[i]]%=MOD; } } } __int64 ans=0; for(i=1;i<n;i++) for(j=0;j<1024;j++) ans=(ans+((f[i][j]-f[i-1][j]+MOD)%MOD*h[i+1][j])%MOD)%MOD; printf("%I64d\n",ans); T--; } return 0;}
0 0
- hdoj 4901 多校联合4 1005
- hdoj 4939 2014多校联合7 1005
- HDOJ多校联合第六场
- HDOJ多校联合第四场
- HDOJ多校联合第五场
- HDOJ 5763 (2016多校联合训练 Training Contest 4) Another Meaning
- HDOJ 5775 (2016多校联合训练 Training Contest 4) Bubble Sort
- HDOJ 5773 (2016多校联合训练 Training Contest 4) The All-purpose Zero
- HDOJ/HDU 3864 多校联合 D_num 数论
- HDU/HDOJ 3875 Euclidean Algorithm 多校联合第四场
- HDU/HDOJ R(N) 多校联合1
- HDU/HDOJ 3836 Equivalent Sets 多校联合1
- HDU/HDOJ 3908 Triple 多校联合7
- HDU/HDOJ 3903 Trigonometric Function 多校联合7
- HDU/HDOJ 3902 Swordsman 多校联合7
- HDU/HDOJ 3923 2011 BJTU多校联合 波利亚原理
- HDU/HDOJ 3944 DP? 多校联合11 电子科大 lucas定理
- HDU/HDOJ 3988 2011 WHU多校联合 Harry Potter and the Hide Story
- 无线路由器与modem的IP冲突问题剖析及解决(家庭上网)
- LightOJ 1221 Travel Company(贝尔曼最短路判负环)
- centos6.5安装虚拟机和win系统后共享文件
- 安捷伦今日正式拆分 是德科技正式开始运营
- zoj 1076 Gene Assembly
- hdoj 4901 多校联合4 1005
- Row
- 翻译的国外大牛的教程【fatal error C1083: 无法打开包括文件:“SDKDDKVer.h”】亲测有效!
- PO BO VO DTO POJO DAO概念及其作用(附转换图)
- ABAP Objects: Overriding (Redefinition)
- POJ 3613 Cow Relays floyd+快速幂
- DB-DAY 5 JavaScript的disabled属性
- SVN update: 'skipped' message
- 读HandlerMapping子类RequestMappingHandlerMapping源码