HDU 4901 The Romantic Hero(二维dp)】的更多相关文章

题目大意:给你n个数字,然后分成两份,前边的一份里面的元素进行异或,后面的一份里面的元素进行与.分的时候依照给的先后数序取数,后面的里面的全部的元素的下标一定比前面的大.问你有多上种放元素的方法能够使得前面异或的值和后面与的值相等. dp[x][y] 表示走到第x步,得到y这个数字一共同拥有多少种方法. 可是须要注意这里得分一下,不能直接用dp数组存种数,你须要分一下从上一层过来的次数,和这一层自己能够到达的次数.然后取和的时候前后两个集合的种数进行乘法,注意边乘边取余. 顺便给一组数据: 4…
The Romantic Hero 题目链接: http://acm.hust.edu.cn/vjudge/contest/121349#problem/E Description There is an old country and the king fell in love with a devil. The devil always asks the king to do some crazy things. Although the king used to be wise and b…
The Romantic Hero Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 1675    Accepted Submission(s): 705 Problem Description There is an old country and the king fell in love with a devil. The de…
The Romantic Hero Time Limit: 3000MS   Memory Limit: 131072KB   64bit IO Format: %I64d & %I64u Description 开头背景介绍无用 There is an old country and the king fell in love with a devil. The devil always asks the king to do some crazy things. Although the k…
题目链接 题意 :给你一个数列,让你从中挑选一些数组成集合S,挑另外一些数组成集合T,要求是S中的每一个数在原序列中的下标要小于T中每一个数在原序列中下标.S中所有数按位异或后的值要与T中所有的数按位与的值相同,问能找出多少符合要求的组合. 思路 :比赛的时候有点没有头绪,后来二师兄想出了状态转移方程,YN又改了很多细节,最后才A的.总之是个别扭的DP..... 一开始是 _xor[i][j^a[i]] += _xor[i-1][j] :j 的下一个状态 就是异或上a[i],这个数组所代表的意思…
https://vjudge.net/problem/HDU-4901 题意 给n个数,构造两个集合,使第一个集合的异或和等于第二个集合的相与和,且要求第一个集合的元素下标都小于第二个集合的元素下标.问方案数 分析 dp来做.dp1[i][j]表示0~i的元素异或和为j的个数.dp2[i][j]表示i~n-1的元素相与和为j的个数.注意状态转移时要同时计算第i个数参与或不参与的情况,且dp1的第一维不能取到n-1,类似的,dp2的第一维不能取0.统计最终答案时需要合并,那么怎么才能防止重复呢?这…
题目链接 题意:给一个数组a,从中选择一些元素,构成两个数组s, t,使s数组里的所有元素异或 等于 t数组里的所有元素 位于,求有多少种构成方式.要求s数组里 的所有的元素的下标 小于 t数组里的所有的元素的下标. 分析:比赛的时候,刚开始脑子很乱,后来想了一下思路也敲了,发现自己的程序结果不对 自己一点一点计算后发现自己的程序有一部分计算重复了,其实还是dp的思路不够清晰. d[i][j]代表第i个数 新产生的结果为数字 j 的个数. AC代码: #include <iostream> #…
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5234 Problem Description Today is Gorwin’s birthday. So her mother want to realize her a wish. Gorwin says that she wants to eat many cakes. Thus, her mother takes her to a cake garden. The garden…
题目: ​ 思路: 二维dp,完全背包,状态转移方程dp[i][z] = max(dp[i][z], dp[i-1][z-a[j]]+b[j]),dp[i][z]表示在杀i个怪,消耗z个容忍度的情况下获得的最大的经验值. 刚看到这个题一直把思维限制在一维dp中,总是不能表达全部的条件,然后想到二维dp.因为目的是升级,所以dp表示的就要是最大的经验,下标自然就是剩下的条件忍耐度和杀怪的个数了.理清了这些,却死在设计程序上,,,,,,,,,终归是dp做的太少了. 代码: #include <ios…
今天不BB了,直接帖原题吧  地址>>https://www.luogu.org/problem/show?pid=1732<< 题目描述 香穗子在田野上调蘑菇!她跳啊跳,发现自己很无聊,于是她想了一个有趣的事情,每个格子最多只能经过1次,且每个格子都有其价值 跳的规则是这样的,香穗子可以向上下左右四个方向跳到相邻的格子,并且她只能往价值更高(这里是严格的大于)的格子跳. 香穗子可以从任意的格子出发,在任意的格子结束, 那么她最多能跳几次? 输入输出格式 输入格式: 第一行n,m,…