hdu 4628(状态压缩)】的更多相关文章

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4628 思路:首先把所有的回文找出来,如果当前状态为回文,则dp[state]=1,否则dp[state]=inf.然后就是枚举所有的状态:若当前状态为state,枚举子状态(substate=(substate-1)&state),则有dp[state]=min(dp[state],dp[substate^state]+dp[substate])(其中(substate^state)表示删除subs…
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1074 题目大意:有N个作业(N<=15),每个作业需耗时,有一个截止期限.超期多少天就要扣多少分.问最少被扣多少分,且按字典序输出做作业顺序. 解题思路: 集合上的DP问题.也就是状态压缩DP. 用二进制位表示做作业的顺序.总bit=1<<15. 对于状态i,枚举当前的作业j,如果i&(1<<(j-1)),则表示当前状态含有作业j. t^=(1<<(j-1)…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4739 思路:状态压缩. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<vector> using namespace std; struct Point{ int x,y; }point[]; <<)+]; int n;…
题目大意: 调整基因的顺序,希望使得最后得到的基因包含有最多的匹配串基因,使得所能达到的智商最高 这里很明显要用状态压缩当前AC自动机上点使用了基因的情况所能达到的最优状态 我最开始对于状态的保存是,针对基因的个数转化为最小的二进制个数保存,但是浪费了很多二进制位,比如8 -> 1000,那么之后的1001,1010...1111都没用到 就MLE了 然后自己只能在压缩 比如数量为2 , 3 , 4 , 5 那么jz[0] = 1 , jz[1] = 2+1 , jz[2] = 2*1+3*3+…
题意:给你一个矩阵,让你在矩阵中找一些元素使它们加起来和最大,但是当你使用某一个元素时,那么这个元素周围的其它八个元素都不能取! 分析:这是一道比较基础的状态压缩题,也是我做的第三道状态压缩的题,但是这个题目的输入确实让我很无语,开始的时候wa一次,后来改成了超时,最后还是参照别人的输入ac的! 代码实现: #include<cstdio> #include<cstring> #include<iostream> using namespace std; ][],dp[…
题意:容易理解. 分析:这是我做的状态压缩第二题,一开始超内存了,因为数组开大了,后来超时了,因为能够成立的状态就那么多,所以你应该先把它抽出来!!总的来说还是比较简单的!! 代码实现: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using namespace std; int n; ][(<<)+…
N皇后问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 23888    Accepted Submission(s): 10639 Problem Description 在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上.你的任务是,对于给定的N,求…
The Number of set Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1301    Accepted Submission(s): 795 Problem Description Given you n sets.All positive integers in sets are not less than 1 and n…
Minimal Ratio Tree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3899    Accepted Submission(s): 1196 Problem Description For a tree, which nodes and edges are all weighted, the ratio of it is…
/* 看别人的的思路 搜索搜不出来我太挫了 状态压缩枚举+好的位置 */ #include<stdio.h> #include<string.h> #define N 20 int lower[N]; char s[N]; int len; int judge(int deng,int l,int r) { int i,f1,f2; int sum1,sum2; f1=s[0]-'0'; sum1=0; for(i=1;i<deng;i++) {//根据状态求出左边的所有和…