zoj 3471Most Powerful】的更多相关文章

题意:给n个atom(原子),每两个原子相碰会产生能量,不过每次碰撞会消失一个原子,而且不同原子碰撞,消失的原子不同,产生的能量也会不同,给出不同原子相碰撞产生的能量,求出能产生的最多能量. 状态DP 状态s表示n个原子的状态. 每次碰撞只消失一个原子,最后会剩下一个原子不消失,最终的答案是max(dp[(1<<n-1)^(1<<i)]),i 表示最后剩下的原子. 状态转移方程是: i 是 s 中消失的原子,j 是没有消失的原子 dp[s]=max(dp[s^(1<<i…
题目链接:zoj 3471 Most Powerful  作者:jostree 转载请说明出处 很经典的状态dp,使用i的二进制位表示粒子的状态,0表示存在,1表示不存在.dp[i]表示在状态i的情况下能够释放的最大的能量,注意自身不能够发生碰撞.例如4个粒子的状态1100表示第0个和第1个粒子不存在,第2.3个粒子存在则可以转移到状态1110或1101.最终遍历只剩下一颗粒子的情况下的所有能量中的最大值. 代码如下: #include <cstdio> #include <cstdli…
Recently, researchers on Mars have discovered N powerful atoms. All of them are different. These atoms have some properties. When two of these atoms collide, one of them disappears and a lot of power is produced. Researchers know the way every two at…
题意:n个原子,两两相撞其中一个消失,产生能量,给出任意两原子相撞能产生的能量,求能产生的最大能量. 分析:dp[i]表示情况为i时产生的最大能量 /*#include <map> #include <set> #include <list> #include <cmath> #include <queue> #include <stack> #include <cstdio> #include <vector>…
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4257 题目大意:有 n(2<=n<=10) 个原子,每两个原子(假设为i.j)碰撞会导致一个原子(假设为 j)消失,并产生巨大的能量(假设为 A[i][j]),现在给你所有的 A[i][j],问能够产生的最大能量是多少 Sample Input 20 41 030 20 112 0 11 10 00 Sample Output 422 分析:假设一个数,第i位表示…
题目链接 题意 \(N\)种气体,\(i\)气体与\(j\)气体碰撞会: 产生\(a[i][j]\)的威力: 导致\(j\)气体消失. 求产生威力之和的最大值. 思路 和前几题找图上路径的题不一样,该题如果抽象成图上的问题,则为: 在有向连通图中找一棵树,对于每一对\((parent,child)\)关系对,\(parent\)相当于这里的气体\(i\),\(child\)相当于这里的气体\(j\),要使得树上的边权值最大. 但状态的表示倒是仍然可以借鉴. 状态:\(1\)表示消失了的气体,\(…
题意: 有n个原子,每当两个原子碰撞时就会产生能量,并且消耗其中一个原子.已知每两个原子碰撞时消耗其中指定一个原子所产生的能量,问最多能产生多少能量? 思路: 一开始以为是找一个有序序列,使得能量最大,但是一个原子可能一直和别的原子碰撞且留到最后,所以序列是不行的. 我们只需要知道消耗的是谁就行了,而不需要管到底是谁碰撞到这个被消耗的原子,那么状态转移就更方便了,每次找到两个还没有碰撞的,碰掉其中1个,然后转移. //#include <bits/stdc++.h> #include <…
题目大意:有n种原子,两种原子相碰撞的话就会产生能量,当中的一种原子会消失. 问这n种原子能产生的能量最大是多少 解题思路:用0表示该原子还没消失.1表示该原子已经消失.那么就能够得到状态转移方程了 dp[state | (1 << i)] = max(dp[state | (1 << i)], dp[state] + power[j][i]) 上面的方程表示的是在state的情况下.用j原子去碰撞i原子,i原子消失所能得到的最大能量 注意这题:产生的能量有可能是负的 #inclu…
上来直接一波敲键盘,直接套Tsp问题的代码 然后WA 发现貌似这道题没有连续性. Tsp问题是一条路径,一个点到另一个点,多了一个限制,所以就需要加多一维 而这道题没有限制,也就是说那一维不需要加,我加了还WA 然后要搞清楚状态,在纸上可以写,写清楚了再敲代码 这道题一开始都是存在,初始状态是0000--所以就用0表示存在,1表示不存在 #include<cstdio> #include<cstring> #include<algorithm> #define REP(…
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2112 The Company Dynamic Rankings has developed a new kind of computer that is no longer satisfied with the query like to simply find the k-th smallest number of the given N numbers. T…