给出N行英雄的比较,每一行包含两个英雄的名字,代表第一个英雄比第二个英雄更受欢迎。英雄的数目不超过16个。问有多少种可能的受欢迎程度的序列满足N行英雄的比较。由于只有英雄数目不超过16个,可以用二进制来解决。x的的位表示还有哪些点没有处理。在这些点中选择一个入度没零的点,求剩下的点可能排列的数目。 ...
分类:
其他好文 时间:
2015-03-04 22:33:44
阅读次数:
147
题目大意:给定一张图,要求从第一个点出发,按照某个拓扑序遍历2~k+1的所有节点,然后到达n,求最短路径
首先将所有关键点之间的最短路用SPFA求出来 然后状压DP
令f[state][p]表示已经走过的点集为state,将要走到p点的最短路
记忆化搜索就行了- -
标准卡时过- -
#include
#include
#include
#include
#define M 20...
分类:
其他好文 时间:
2015-01-20 15:45:01
阅读次数:
147
题目大意:定义半连通子图为一个诱导子图,其中任意两点(x,y)中x可到达y或y可到达x,求最大半连通子图的大小以及方案数
不就是个缩点之后拓扑序DP求最长链么 这题意逗不逗233333
注意缩点后连边不要连重复了 判重边那里我用了set。。。
#include
#include
#include
#include
#include
#define M 100100
using na...
分类:
其他好文 时间:
2015-01-19 21:11:11
阅读次数:
204
题意:
给两个串,问有多少长度大于等于K的公共子串(位置不同也算一对)
题解:
后缀自动机DP
对第一个串建立后缀自动机,然后做一些预处理,
然后拿第二个串在后缀自动机上跑,到每个节点加一次贡献。
但是这样需要每个点往parent树上跑一遍,会TLE,所以可以加个lazy。
然后代码中有两次运用到拓扑序来从子向父推DP值。
呃,说得乱糟糟的。
Orz No_stop
不...
分类:
其他好文 时间:
2015-01-14 15:35:14
阅读次数:
209
题意:
一个木板上被分成了很多区域,每个区域要涂上一种特定的颜色,当涂一个区域的时候,它上方与它有重合部分的区域必须之前要涂好。求最少需要拿几次画笔(拿一次画笔可以涂颜色相同的多个区域)。
分析:
上方与它有重合部分的区域必须之前要涂好这个限制可以用拓扑序来描述,每次涂有很多种可以涂的颜色,dfs就可以了。dfs的状态空间维数定为拿笔的次数,每次枚举可以涂的颜色。要注意的是dfs过程中要慎用...
分类:
其他好文 时间:
2015-01-11 09:37:41
阅读次数:
129
题意:
给一个俄罗斯方块的游戏截图,其中每个输入块都用字母A-Z标志出,求输入块的字典序最小的输入顺序。
分析:
即求字典序最小的拓扑序。
代码:
//poj 2530
//sep9
#include
using namespace std;
char map[54][32];
int g[32][32];
int d[32];
int vis[32];
int main()
{
i...
分类:
编程语言 时间:
2015-01-07 18:48:33
阅读次数:
385
#include
#include
using namespace std;
int tp[11][11],visit[11];
int main()
{
int n,m,i,j,k,s,o,c;
int flag,count,a,b;
while(cin>>n>>m)
{
s=1;
o=0;
count=0;
memset(tp,0,sizeof(tp));
m...
分类:
其他好文 时间:
2014-12-20 23:30:09
阅读次数:
216
有向拓扑排序的应用 首先输入n个点,表示有向图中有n个顶点,接下来n行, 每行输入几个数字,第i行的数字表示它们是顶点i的后继节点,输出要求保证该行的编号要在这几个数前面,当数字为0时,表示i点没有后继节点了。 就是要求输出这个有向图的拓扑序列。[输入输出]:[样例]: Sample Input50...
分类:
编程语言 时间:
2014-12-20 22:03:48
阅读次数:
203
http://www.lydsy.com/JudgeOnline/problem.php?id=1097首先还是我很sb。。。。想到了分层图想不到怎么串起来,,,以为用拓扑序搞转移,,后来感到不行。。。QAQ这种数据那么小,有明确的依赖性为嘛我想不到状压。。。(准确的说是没想到状压和分层图一起做。。...
分类:
其他好文 时间:
2014-12-13 13:21:48
阅读次数:
376