HDU 5119 Happy Matt Friends(DP)
2017-07-22 19:47
330 查看
题意:有N个人,每个人有一个权值,挑选一些人并将他们的权值异或,求最后得到的值大于M的取法有多少种
思路:类似于背包,枚举的是异或的和,给定的数你可以选择放或者不放,dp[i][j]代表的是前
i 个数中选择k个异或的和为j。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll dp[2][1<<20];
int a[42];
int main()
{
int n, m, T;
scanf("%d", &T);
for(int kase = 1; kase <= T; kase++)
{
scanf("%d%d", &n, &m);
for(int i = 1; i <= n; i++)
scanf("%d", &a[i]);
memset(dp, 0, sizeof(dp));
dp[0][0] = 1;
ll ans = 0;
for(int i = 1; i <= n; i++)
for(int j = 0; j < (1<<20); j++)
dp[i%2][j] = dp[(i-1)%2][j] + dp[(i-1)%2][j^a[i]];
for(int i = m; i < (1<<20); i++)
ans += dp[n%2][i];
printf("Case #%d: %I64d\n", kase, ans);
}
return 0;
}
思路:类似于背包,枚举的是异或的和,给定的数你可以选择放或者不放,dp[i][j]代表的是前
i 个数中选择k个异或的和为j。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll dp[2][1<<20];
int a[42];
int main()
{
int n, m, T;
scanf("%d", &T);
for(int kase = 1; kase <= T; kase++)
{
scanf("%d%d", &n, &m);
for(int i = 1; i <= n; i++)
scanf("%d", &a[i]);
memset(dp, 0, sizeof(dp));
dp[0][0] = 1;
ll ans = 0;
for(int i = 1; i <= n; i++)
for(int j = 0; j < (1<<20); j++)
dp[i%2][j] = dp[(i-1)%2][j] + dp[(i-1)%2][j^a[i]];
for(int i = m; i < (1<<20); i++)
ans += dp[n%2][i];
printf("Case #%d: %I64d\n", kase, ans);
}
return 0;
}
相关文章推荐
- hdu 5119 Happy Matt Friends (dp)
- HDU - 5119 Happy Matt Friends(DP)
- HDU 5119 Happy Matt Friends(DP || 高斯消元)
- HDU 5119 Happy Matt Friends(DP)
- H - Happy Matt Friends HDU - 5119 (dp+位运算)
- HDU 5119 Happy Matt Friends(dp+位运算)
- HDU - 5119 Happy Matt Friends dp 滚动数组 异或和 (2014ACM/ICPC亚洲区北京站-重现赛(感谢北师和上交)
- HDU 5119 Happy Matt Friends(dp)
- [简单dp]H - Happy Matt Friends HDU - 5119
- HDU 5119 Happy Matt Friends(简单二维dp)
- hdu 5119 Happy Matt Friends(dp)
- HDU 5119 Happy Matt Friends (DP)2014ICPC 北京站现场赛
- HDU 5119 Happy Matt Friends(2014北京区域赛现场赛H题 裸背包DP)
- hdu 5119 Happy Matt Friends(DP)
- HDU 5119 Happy Matt Friends (14北京 类背包dp)
- HDU 5119 Happy Matt Friends(DP)
- HDU 5119 Happy Matt Friends(dp)
- HDU 5119 Happy Matt Friends(DP)
- hdu 5119 Happy Matt Friends【dp】
- HDU 5119 Happy Matt Friends - DP