码迷,mamicode.com
首页 >  
搜索关键字:状压    ( 1865个结果
poj 3311 状压DP
经典TSP变形 学到:1、floyd  O(n^3)处理任意两点的最短路     2、集合的位表示,我会在最后的总结出写出。注意写代码之前一定设计好位的状态,本题中,第0位到第n位分别代表第i个城市,1是已经走过,0没走过 那么DP方程  :dp[s][i]--当前在城市i,状态为s(s存储的是走过了那些城市)             3、最后要求形成回路,那么就是min(...
分类:其他好文   时间:2014-08-06 12:01:44    阅读次数:234
codeforces 453 B Little Pony and Harmony Chest (状压dp)
题意:求一个b数组,b数组中的所有数互质,和a数组对应下标的数的差的绝对值最小。 考虑a数组中的所有数范围为[1,30]则,b数组取值只有可能为[1,59),因为如果取到59及其以后,肯定可以取1,59-30=30-1;而且1可以取多次,1与任何数互质。 然后首先需要把[2,59)之间的素数取出来,总共16个。然后状压,1代表那一位的素数因子是否存在。 d[i][s][0]表示递推到第i个位...
分类:其他好文   时间:2014-08-05 19:34:22    阅读次数:271
[BestCoder Round #3] hdu 4909 String (状压,计数)
String Problem Description You hava a non-empty string which consists of lowercase English letters and may contain at most one '?'. Let's choose non-empty substring G from S (it can be G = S...
分类:其他好文   时间:2014-08-05 19:29:50    阅读次数:240
POJ3254 状压DP入门
题目:http://poj.org/problem?id=3254 因为&运算写成&&--导致调试了快一个小时代的代码没有搞定 关于建图: 1、题目中是1表示可以放牧,0表示不可以放牧,但是建图的时候,可以放牧的位用0表示,不可以放牧的位用1表示。原因如下: 假设可以放牧的位用1表示,不可以放牧的位用0表示,那么假设当前行状态时1010   想要放置1001 ,&运算的结果...
分类:其他好文   时间:2014-08-05 11:10:19    阅读次数:242
HDU 4352 XHXJ's LIS 数位DP + 状压
由LIS的nlogn解法 可以得出最后统计数组中数的个数即为LIS的长度 这样就可以状压了#include #include #include #include #include #include #include #include #include #include #include #inclu...
分类:其他好文   时间:2014-08-05 00:19:18    阅读次数:221
POJ 3311 Hie with the Pie (状压DP)
状态压缩DPdp[i][j]表示在i状态(用二进制表示城市有没有经过)时最后到达j城市的最小时间转移方程dp[i][j]=min(dp[i][k]+d[k][j],dp[i][j]) d[k][j]是k城市到j城市的最短距离 要先用flody处理#includeusing namespace std...
分类:其他好文   时间:2014-08-04 21:14:48    阅读次数:263
SPOJ BALNUM Balanced Numbers 状压+数位DP
一开始想了一个用二进制状压的方法,发现空间需要的太大,光光memset都要超时 = = 其实不用每次都memset也可以用三进制,一开始直接打表出所有的状态转移就好#include #include #include #include #include #include #include #incl...
分类:其他好文   时间:2014-08-04 17:10:47    阅读次数:259
HDU 4909 String 统计+状压
因为连续异或满足区间减法性质,所以可以状压之后用异或来判断是否为符合条件的单词并且存储次数一开始用map,一直超时。虽然直接用开1#include #include #include #include #include #include #include #include #include #inc...
分类:其他好文   时间:2014-08-04 13:51:17    阅读次数:188
hdu 4909 String (map + 状压)
题目大意: 给定一个可能含‘?’的字符串。然后问这个字符串有多少个子串是含有所有的字符都只出现两次。 其中'?' 可以被替换成任意字符,也可以被remove... 思路分析: 这是bestcoder的round #3的第三题。 这道题的做法和 4908 的做法差不多。 我们把 ‘?’ 左右两边的状态分别处理出来。 然后用map 计数。然后枚举左边的状态。同时枚举? 对应的字符...
分类:其他好文   时间:2014-08-04 11:12:17    阅读次数:233
uva 1323 - Vivian's Problem(梅森素数)
题目链接:uva 1323 - Vivian's Problem 题目大意:给定N个数,然后为每个数添加一个幂ei,最后N项垒乘的结果为M,要是得M的所有因子的和可以写成2x,求x的最大值,如果没有条件满足,输出NO 解题思路:若一个数可以写成若干个不同的梅森素数的乘积,那么这个数的所以因子和可以写成2x. 232?1的范围内只有8个梅森素数,所以可以用状压处理。 梅森素数...
分类:其他好文   时间:2014-08-04 11:08:47    阅读次数:234
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!