拓扑排序
morejarphone
这个作者很懒,什么都没留下…
展开
-
HDU4324(拓扑排序)
#include using namespace std;#define maxn 2111#define maxm 8111111int t, n;char mp[maxn][maxn];struct node { int from, to, next;}edge[maxm];int head[maxn];int cnt;bool vis[maxn];int in原创 2015-10-23 15:18:30 · 344 阅读 · 0 评论 -
HDU 5695 (拓扑排序 优先队列)
Gym ClassTime Limit: 6000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 402 Accepted Submission(s): 141Problem Description众所周知,度度熊喜欢各类体育活动。原创 2016-05-21 20:27:53 · 847 阅读 · 0 评论 -
HDU 5811 (拓扑排序 LIS)
题目链接:点击这里题意:给定n个人之间的强壮关系(没有传递性),分成两个组,首先判断每一组是否能够通过某种排列使得前面的人都比后面的人强壮。如果可以,最多能从2组中选几个人到1组使得1组通过排列仍然使得前面的人都比后面的人强壮。因为是个竞赛图,只要没有环就行(DAG),所以直接拓扑如果出队列数刚好等于节点数就可以,在拓扑的时候顺便记下拓扑序给先前的两组按照拓扑序排完。至于最多能够扔过去的点,本来想的原创 2016-08-12 23:20:32 · 399 阅读 · 0 评论 -
codeforces 512A (拓扑排序)
题目链接:点击这里题意:给出n个字符串,问有没有一种字符的替换方案使得所有的字符串按照字典序递增排列。只要使得任意连续的两个有序即可,如果字符a必须比字符b字典序小就建一条a到b的有向边,然后通过一边拓扑排序输出结果即可。#include <bits/stdc++.h>using namespace std;#define maxn 33int in[maxn];int g[maxn][max原创 2016-10-20 21:24:10 · 407 阅读 · 0 评论 -
Kattis taboo (AC自动机 拓扑排序 DP)
题目链接:点击这里题意:给出n个01串,要构造一个最长的串使得这个串不包含所有出现过的串,无解输出-1.首先把所有的点扔进自动机,因为出现过的串不能在我们构造的串中出现,所以事先把某些”坏点”标记,坏点指的就是每个串的结束节点以及沿着结束节点fail指针走下去的节点. 如果剩下的图中能够沿着根走出一个环那么必然就无解了, 判环可以用一遍拓扑确定. 排除无解情况剩下就是一个DAG了, 用dp[i][j原创 2016-11-17 20:18:26 · 1009 阅读 · 0 评论