HDU - 5119 Happy Matt Friends(dp)
题意:n个数,你可以从中选一些数,也可以不选,选出来的元素的异或和大于m时,则称满足情况。问满足情况的方案数为多少。
分析:本来以为是用什么特殊的数据结构来操作,没想到是dp,还好队友很强。
定义dp[i][j]为在前i个数里选一些数的异或和为j的方案数,边计算边统计,
#include <iostream>
#include <cstdio>
#include <cstring>
typedef long long ll;
const int maxn=(<<);
using namespace std;
int dp[][maxn];
int a[]; int main()
{
// freopen("da","r",stdin);
int t;
scanf("%d",&t);
for(int kase=;kase<=t;kase++){
ll ans=;
int n,m;
memset(dp,,sizeof(dp));
scanf("%d%d",&n,&m);
for(int i=;i<n;i++) scanf("%d",&a[i]);
dp[][]=;
if(m==) ans++;
for(int i=;i<=n;i++){
for(int j=;j<maxn;j++){
if(dp[i-][j]==) continue;
dp[i][j]+=dp[i-][j];
int t=j^a[i-];
dp[i][t]+=dp[i-][j];
if(t>=m) ans+=dp[i-][j];
}
}
printf("Case #%d: %lld\n",kase,ans);
}
return ;
}
HDU - 5119 Happy Matt Friends(dp)的更多相关文章
- HDU 5119 Happy Matt Friends(dp+位运算)
题意:给定n个数,从中分别取出0个,1个,2个...n个,并把他们异或起来,求大于m个总的取法. 思路:dp,背包思想,考虑第i个数,取或者不取,dp[i][j]表示在第i个数时,异或值为j的所有取法 ...
- HDU 5119 Happy Matt Friends(DP || 高斯消元)
题目链接 题意 : 给你n个数,让你从中挑K个数(K<=n)使得这k个数异或的和小于m,问你有多少种异或方式满足这个条件. 思路 : 正解据说是高斯消元.这里用DP做的,类似于背包,枚举的是异或 ...
- HDU 5119 Happy Matt Friends (背包DP + 滚动数组)
题目链接:HDU 5119 Problem Description Matt has N friends. They are playing a game together. Each of Matt ...
- HDU 5119 Happy Matt Friends (14北京区域赛 类背包dp)
Happy Matt Friends Time Limit: 6000/6000 MS (Java/Others) Memory Limit: 510000/510000 K (Java/Oth ...
- HDU 5119 Happy Matt Friends(2014北京区域赛现场赛H题 裸背包DP)
虽然是一道还是算简单的DP,甚至不用滚动数组也能AC,数据量不算很大. 对于N个数,每个数只存在两个状态,取 和 不取. 容易得出状态转移方程: dp[i][j] = dp[i - 1][j ^ a[ ...
- HDU 5119 Happy Matt Friends ——(背包DP)
题意:有最多40个数字,取任意个数字他们的异或和>=k则是可行的方案,问有多少种可行的方案. 分析:dp[now][j]表示当前这个值的种类数,那么转移方程为dp[now][j] = dp[pr ...
- HDU 5119 Happy Matt Friends(递推)
http://acm.hdu.edu.cn/showproblem.php?pid=5119 题意:给出n个数和一个上限m,求从这n个数里取任意个数做异或运算,最后的结果不小于m有多少种取法. 思路: ...
- HDU 5119 Happy Matt Friends
Happy Matt Friends Time Limit: 6000/6000 MS (Java/Others) Memory Limit: 510000/510000 K (Java/Others ...
- 水题:HDU 5119 Happy Matt Friends
Matt has N friends. They are playing a game together.Each of Matt's friends has a magic number. In t ...
随机推荐
- MT【278】二次齐次化
对于$c>0$,当非零实数$a,b$满足$4a^2-2ab+4b^2-c=0,$且使$|2a+b|$最大时,$\dfrac{3}{a}-\dfrac{4}{b}+\dfrac{5}{c}$的最小 ...
- 面试---Python中的模块和包是什么?
python模块是: 自我包含并且有组织的代码片段为模块. 表现形式为:写的代码保存为文件.这个文件就是一个模块.sample.py 其中文件名smaple为模块名字. python包是: 包是一个有 ...
- pandas to_excel
报错:IllegalCharacterError 其原因是字段中包含了unicode字符. 解决方案: # 首先,安装python包xlsxwriter pip install xlsxwriter ...
- centos7/rhel7下安装redis4.0集群
相关介绍:Redis从3.0版本开始支持集群! 集群一般由多个节点组成,节点数量至少6个才能保证组成完整高可用的集群. 每个节点需要开启配置文件中的cluster-enabled yes,让Redis ...
- 存在重复元素 II
题目描述 给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k. 示例 1: 输入: n ...
- Python反转过程学习
Pyhon的反转过程的学习: #coding:utf-8 #反转过程.py """ def add(x,y): return x+y params=(1,2) add(* ...
- 编写高质量代码:改善Java程序的151个建议 --[78~92]
编写高质量代码:改善Java程序的151个建议 --[78~92] HashMap中的hashCode应避免冲突 多线程使用Vector或HashTable Vector是ArrayList的多线程版 ...
- Ubuntu下MySQL报错:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
在Ubuntu下 想要登录mysql数据库 root@JD:~# mysql -uroot -p 报错 ERROR 1045 (28000): Access denied for user 'root ...
- 第四篇-以ConstraintLayout进行Android界面设计
此文章基于第三篇. 一.新建一个layout.xml文件,创建方法不再赘述,在Design界面右击LinearLayout,点击Convert LinearLayout to ConstraintLa ...
- pytest 1.简单介绍一,安装和如何运行
一.pytest是一个接口测试框架,试用版起来比较轻便灵活.首先来介绍他的安装: 直接使用命令 : pip install -U pytest 通过命令 :pytest --version 来查看版 ...