topsort
wtcl
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Misha and Forest(拓扑排序)
题意:给出一棵树每个节点的相邻节点个数a和相邻节点异或和b。求数的边数和每条边的两个节点。 思路: 应用拓扑排序的思路,由于是棵树所以一定有只和一个点相邻的点,这样的点a[i]是1,b[i]是和这个点相邻的点。在改变点b[i]的a[b[i]]和b[b[i]] 代码: #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<queue> us原创 2020-06-28 14:12:21 · 236 阅读 · 0 评论 -
Almost Acyclic Graph(拓扑排序)
题意:给定一个有向图,问最多删除图中一条边,图中能否不含有环。 思路: 1.枚举删除每条边会超时,我们枚举每个点将其入度减一,看图中是否存在环。这样相当于删除的该点在拓扑排序时的最后一条边。 2.拓扑排序会改变入度数组,多次调用拓扑排序函数是一定要注意入度数组的恢复。 代码: #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<queue&g原创 2020-06-27 23:06:31 · 325 阅读 · 0 评论 -
Frame Stacking(拓扑排序+dfs)
思路: 1.因为每个字母的四个边至少有一个点,所以就可以确定每个字母的边界 2.看每个字母(i)的四个边上如果有其他的字母(j),说明j在i上,可以从i到j建立一条边(反过来见图也是一个正确的拓扑序,但由于有多个答案时要按照字母顺序输出,而且是从下往上输出,所以答案的顺序会有问题) 3.由于多个答案是要全部输出,所以用dfs 代码: #include<cstdio> #include<cstring> #include<iostream> #include<algo原创 2020-06-27 15:14:40 · 290 阅读 · 0 评论 -
Sorting It All Out(拓扑排序)
1.当存在多个入度为0的点时,一定没有确定的顺序,但也有可能出现矛盾。 2.加入到队列中的点小于n是,一定存在矛盾。 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<queue> #include<functional> using namespace std; int in[100],out[100];int n,m;原创 2020-06-25 11:49:39 · 357 阅读 · 0 评论 -
可达性统计
bitset topsort #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> #include<bitset> #include<queue> using namespace std; int deg[30010]; int...原创 2019-11-21 12:47:34 · 220 阅读 · 0 评论 -
道路与航线
1.dij与topsort 2.有多个队列时注意变量 #include<cstdio> #include<cstring> #include<iostream> #include<queue> #include<algorithm> using namespace std; int head[50010],ne[200010],ver[2...原创 2019-11-14 12:08:08 · 222 阅读 · 0 评论
分享