题目大意:给你一个N*N的图让你到达所有的“.”点,“#”不能通过,有m组每组有一个入口,一个出口,入口可以传送到出口,不知道经过m组的先后顺序,让你求出走过所有的“.”的最小时间。
思路:先bfs出来所有的m之间的最短距离,然后dp[j][i] 表示,在j状态下开始第i步的最小路程,枚举找到一个最小的dp[1
Tunnels
Time Limit: 3000/1500 MS...
分类:
其他好文 时间:
2014-10-17 00:33:03
阅读次数:
271
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=4064
Carcassonne
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 857 Accepted Subm...
分类:
其他好文 时间:
2014-10-16 17:48:22
阅读次数:
269
题目地址:HDU 1074
这题攒了好长时间了。。。一直没写。。
简单状压DP。这题比较特别的地方是dp需要用结构体数组。
详细的请看kuangbin大神的模板。。传送门
代码如下:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#in...
分类:
其他好文 时间:
2014-10-16 16:36:42
阅读次数:
194
题目大意:给定n个数字,求这些数字的全排列中有多少数能被d整除
令f[i][j]为状态为i,余数为j的方案数
枚举最高位转移
小心爆int
#include
#include
#include
#include
using namespace std;
int n,d,ans,f[1<<10][1<<10],digit[1<<10],tens[10],cnt[10],factorial[1...
分类:
其他好文 时间:
2014-10-16 10:38:52
阅读次数:
131
给出一行字符串,每次可以删去一个回文子串,子串可以是不连续的,因此用状压比较好模拟,求删掉整个字符串需要的最少步数。
字符串的最大长度为16,因此不能逐行枚举状态,首先预处理出来所有的的回文子串,然后从第一步开始,依次状压第i步能到达的状态,如果能达到母串,跳出。
还有初始化不要用图省事用memset。。不优越的姿势+函数导致T了数发。
#include
#include
#includ...
分类:
其他好文 时间:
2014-10-16 00:09:27
阅读次数:
231
题意:
给n,m,k ,再给出m个单词
问长度为n的字符串,至少在m个单词中含有k个的组成方案有多少种。
思路:
由于m最大是10,所以可以采取状压的思想
首先建立trie图,在每个单词的结束节点标记一个mark=(1
然后需要注意的,对于每个节点,应该顺着fail指针遍历一遍,
把所有的mark取一个并集。
因为就是如果单词出现包含的话,比如 she和he 我拿了she,其实等于...
分类:
其他好文 时间:
2014-10-15 15:00:00
阅读次数:
176
http://acm.hdu.edu.cn/showproblem.php?pid=1074状压dp不是很懂,看着别人的代码写的,很长时间才看懂。 dp[i]记录(1 2 #include 3 #include 4 #define maxn 16 5 using namespace std; 6.....
分类:
其他好文 时间:
2014-10-15 00:04:39
阅读次数:
170
题目大意:有g种不同颜色的小球,b个袋子,每个袋子里面有若干个每种小球两人轮流取袋子,当袋子里面的同色小球有s个时,会合并成一个魔法球,并被此次取袋子的人获得成功获得魔法球的人可以再次取求二者都进行最优策略之后两人所得魔法球个数差分析:博弈,数据很小,自然想到了可以搜索所有状态然后从每一步的子状态中...
分类:
其他好文 时间:
2014-10-14 23:48:49
阅读次数:
172
感觉这道题目的数据比较水啊,程序的时间复杂度为1711^2*20竟然也可以过掉。。。。其他的就是状压了啊,注意需要滚动一下啊。。。。
方格取数(1)
Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 5701 Acce...
分类:
其他好文 时间:
2014-10-14 00:42:57
阅读次数:
303
题目大意:给定n*n的国际象棋棋盘,在上面放k个国王,要求国王之间互不攻击,求方案数
n
状压DP,将每一行的方案二进制压成一维,令f[i][j][k]为第i行用去j个国王状态为k的方案数,然后状态转移如下:
f[i][j][k]=Σf[i-1][j-digit[k]][l]
其中l&k=0,l>>1&k=0,l
暴力转移即可
记得开long long
#include
#inc...
分类:
其他好文 时间:
2014-10-13 16:30:09
阅读次数:
221