hdu5119(递推+滚动数组)
来源:互联网 发布:先锋网络电视免费版 编辑:程序博客网 时间:2024/06/06 01:46
链接:点击打开链接
题意:有N个人,每个人有一个权值,挑选一些人人并将他们的权值异或,求最后得到的值大于M的取法有多少种
代码:
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <iostream>#include <algorithm>using namespace std;long long v[50],dp[2][(1<<20)+5];int main(){ long long n,m,i,j,t,cas,ans; scanf("%I64d",&t); for(cas=1;cas<=t;cas++){ //因为求的是大于等于m的 scanf("%I64d%I64d",&n,&m); //数目,因此需要先规定一 for(i=1;i<=n;i++) //个上界,这个上界就是2^20 scanf("%I64d",&v[i]); memset(dp,0,sizeof(dp)); dp[0][0]=1; //dp[i][j]表示状态是i时, for(i=1;i<=n;i++) //异或值是j时的数量,因此 for(j=0;j<(1<<20);j++) //很容易推出转移方程 dp[i%2][j]=dp[(i-1)%2][j]+dp[(i-1)%2][j^v[i]]; ans=0; //因为第二维特别大,因此用 for(i=m;i<(1<<20);i++) //滚动数组 ans+=dp[n%2][i]; printf("Case #%I64d: %I64d\n",cas,ans); } return 0;}
1 0
- hdu5119(递推+滚动数组)
- HDU5119-递推
- HDU-4477滚动数组+递推(整数分解)
- Burger - UVa 557 滚动数组 暴力 递推 打表
- HDU 5119 Happy Matt Friends(递推+滚动数组)
- OJ2755神器的口袋 普通递归+递推+递推滚动数组
- CF 590D Top Secret Task【dp递推+滚动数组】【好题】
- Pascal数组递推
- HDU5119(DP)
- hdu5119 DP
- Tri Tiling 递推数组解
- hdu 4455 Substrings(树状数组+递推)
- HDOJ 4455 Substrings 递推+树状数组
- 约瑟夫环问题-数组 / 递推 / 链表
- 滚动数组
- 滚动数组
- 滚动数组
- 滚动数组
- 配置Eclipse 注释
- Lucene从索引中搜索出Document
- table tr 移位排序 prev() before() next() after()
- Stanford 机器学习-Recommender Systems
- Activity设置android:windowIsTranslucent属性之后,点击按钮跳转到其他的Activity
- hdu5119(递推+滚动数组)
- 1230转化成十六进制
- KMP算法
- 关于oracle的监听响应速度过慢
- MySQL 开启FEDERATED 引擎
- u3d shader入门写法
- haskell之Functor、Applicative、Monad
- 自定义多行多列的RadioGroup
- 经典算法心得