题目:

pid=1189" target="_blank">nyoj 1189 yougth和他的朋友们

这题目是14年北京赛区的原题。讲题的时候说有三种解法,我们是用dp做的当时。原题目链接:Happy Matt Friends

题意就不在说了。由于要求的是满足条件的种数。

我们定义状态dp【i】【j】:当我们把第 i 个数放进去之后得到 j 的种数是多少

那么我们能够得到状态转移方程:dp【i】【j^ a [ i ] 】 += dp【i-1】【j】

就是当前得到每一个 j ^  a [ i ] 有前 i-1 个数得到。整个dp一遍就是得到结果了。

还有注意这里数组比較大。直接开的话会超内存,所以要用滚动数组优化。



AC代码:

#include <cstring>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <queue>
#include <vector>
#include <map>
using namespace std;
typedef long long LL;
const int N = 1100100;
LL dp[3][N];
int a[50];
int main()
{
int n,m;
while(~scanf("%d%d",&n,&m))
{
memset(dp,0,sizeof(dp));
int ma = 0;
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
if(a[i]>ma)
ma = a[i];
}
dp[0][0] = 1;
for(int i=1;i<=n;i++)
{
memset(dp[i%2],0,sizeof(dp[i%2]));
for(int j=0;j<=ma;j++)
{
dp[i%2][j^a[i]] += dp[(i+1)%2][j];
dp[i%2][j] += dp[(i+1)%2][j];
if((j^a[i])>ma)
ma = (j^a[i]);
}
}
LL ans = 0;
for(int i=m;i<=ma;i++)
ans+=dp[n%2][i];
printf("%lld\n",ans);
}
return 0;
}

nyoj 1189 yougth和他的朋友们 (DP)的更多相关文章

  1. NYOJ 914 Yougth的最大化

    Yougth的最大化 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描写叙述 Yougth如今有n个物品的重量和价值各自是Wi和Vi,你能帮他从中选出k个物品使得单位重量的价 ...

  2. NYOJ 914 Yougth的最大化【二分/最大化平均值模板/01分数规划】

    914-Yougth的最大化 内存限制:64MB 时间限制:1000ms 特判: No 通过数:3 提交数:4 难度:4 题目描述: Yougth现在有n个物品的重量和价值分别是Wi和Vi,你能帮他从 ...

  3. 一个简单题,引发的思索 + nyoj 1189

    题目描述:第一行:给你两个数m和n,m表示有m个数,然后下一行输入m个数,每个数只能选择一次,统计共有多少种情况使得所选数的和大于等于n: 解决本题我想到了两种方法,(题目自己想的,先不考虑超时),第 ...

  4. NYOJ 18 The Triangle 填表法,普通dp

    题目链接: http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=18 The Triangle 时间限制:1000 ms  |  内存限制:6553 ...

  5. nyoj 1216——整理图书 CF 229D—— Towers——————【dp+贪心】

    整理图书 时间限制:3000 ms  |  内存限制:65535 KB 难度:5   描述 小明是图书鹳狸猿,他有很多很多的书堆在了一起摆在了架子上,每摞书是横着放的,而且每摞书是订好的 是一个整体, ...

  6. nyoj 214 单调递增子序列(二) 【另类dp】

    单调递增子序列(二) 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描写叙述 ,a2...,an}(0<n<=100000),找出单调递增最长子序列.并求出其长度 ...

  7. nyoj 17

    // nyoj 17        代码如上,用的是dp,总的来说就是对一个字符串 从末尾开始比较,设定一个数组,存放每个单调字串的最大长度,最后比较... //要注意的就是里面if语句对于每次字符比 ...

  8. [STOI2014]舞伴(dp)

    STOI是汕头OI...无聊翻到了去年的比赛题目,就写然后自己测了一下. 其实我很想吐槽为什么题目名是perm,perm好像和舞伴完全无关.. dp(x,s)=∑dp(x-1,s-{i}))(0< ...

  9. C语言积累一点点

        778. 水位上升的泳池中游泳https://leetcode-cn.com/problems/swim-in-rising-water/ 839. 相似字符串组 https://leetco ...

随机推荐

  1. JavaScript 获取小数任一小数点后的位数的小数

    用Javascript取float型小数点后两位,例22.127456取成22.13,怎样做? 1.这样的方法最不推荐: function get(){ var s = 22.127456 + &qu ...

  2. hdoj--3367--Pseudoforest(伪森林&&最大生成树)

    Pseudoforest Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) To ...

  3. caffe:使用C++来提取任意一张图片的特征

    0x00 关于使用C++接口来提取特征,caffe官方提供了一个extract_features.cpp的例程,但是这个文件的输入是blob数据,即使输入层使用的是ImageData,也需要在depl ...

  4. Python 加载数据

    1. numpy data = np.loadtxt('./data/txtdata.csv') ⇒ data 是 numpy.ndarray 类型

  5. 【NOI 2002】 银河英雄传说

    [题目链接] https://www.luogu.org/problemnew/show/P1196 [算法] 并查集 [代码] #include<bits/stdc++.h> using ...

  6. WebRTC开源项目一览之二

    .Kurento视频直播系统4.1  应用实例搞视频会议就会涉及一对多.多对多.广播.转码.混音.合屏.录制,这就需要用到流媒体服务器,而kurento就具有这些功能.他主要用来作为webrtc的流媒 ...

  7. 编译最新版webrtc源码和编译好的整个项目10多个G【分享】

    编译最新版webrtc源码和编译好的整个项目10多个G[分享] 参考https://webrtc.org/native-code/development/编译最新版webrtc源码: Git clon ...

  8. php的分页代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. 18.QT消息链筛选机制以及组合键

    mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> 5 #include <Q ...

  10. centos7安装mysql(转载)

    Centos7安装并配置mysql5.6完美教程 Centos7将默认数据库mysql替换成了Mariadb,对于我们这些还想使用mysql的开发人员来说并不是一个好消息.然而,网上关于Linux安装 ...