
拓扑排序
SC.ldxcaicai
我很菜=_=
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
2018.08.29 NOIP模拟 table(拓扑排序+建图优化)
给出一个表格,N 行 M 列,每个格子有一个整数,有些格子是空的。现在需要你 来做出一些调整,使得每行都是非降序的。这个调整只能是整列的移动。 【输入】 第一行两个正整数 N 和 M。 接下来 N 行,每行 M 个整数,-1 表示这个格子是空的,其他的整数都在 [0, 10^9]范围,表示格子的数字。 【输出】 若无解,输出 -1; 否则输出任意一个解,即一行 M 个正整数 ...原创 2018-10-11 23:29:57 · 209 阅读 · 0 评论 -
2018.10.10 bzoj1565: [NOI2009]植物大战僵尸(最大权闭合子图+拓扑排序)
传送门 由题可以得出一些关系。 如果对于同一行的相邻两个格子(i,j),(i,j+1)(i,j),(i,j+1)(i,j),(i,j+1),那么前者是后者的后继。 如果对于两个格子A(a,b),B(c,d)A(a,b),B(c,d)A(a,b),B(c,d),如果AAA保护BBB,那么BBB是AAA的后继。 然后可以发现如果以这样的方式建图会产生环。 并且由条件知整个环都不能选。 因此我们先在...原创 2018-10-10 20:40:58 · 197 阅读 · 0 评论 -
2018.11.06 bzoj1093: [ZJOI2007]最大半连通子图(缩点+拓扑排序)
传送门 先将原图缩点,缩掉之后的点权就是连通块大小。 然后用拓扑排序统计最长链数就行了。 自己yyyyyy了一下一个好一点的统计方法。 把所有缩了之后的点都连向一个虚点。 然后再跑拓扑,这样最后虚点的答案就是要求的。 代码: #include<bits/stdc++.h> using namespace std; inline int read(){ int ans=0; char...原创 2018-11-06 12:09:15 · 204 阅读 · 1 评论 -
2018.11.02 洛谷P2661 信息传递(拓扑排序+搜索)
传送门 按照题意模拟就行了。 先拓扑排序去掉不在环上面的点。 剩下的都是简单环了。 于是都dfsdfsdfs一遍求出最短的环就行。 代码: #include<bits/stdc++.h> using namespace std; const int N=2e5+5; int n,du[N],nxt[N],ans=0x3f3f3f3f; bool vis[N]; inline int d...原创 2018-11-02 23:29:23 · 173 阅读 · 0 评论 -
bzoj5158 Alice&Bob(拓扑排序+贪心)
传送门 短代码简单题。 题意简述:对于一个序列XXX,定义其两个伴随序列a,ba,ba,b,aia_iai表示以第iii个数结尾的最长上升子序列长度,bib_ibi表示以第iii个数开头的最长下降子序列长度,现在给出aaa序列,问bbb序列所有数加起来最大值是多少。 思路:首先发现bbb序列就是把这个序列反过来之后得到的X′X&amp;amp;#x27;X′的aaa序列,因此贪心证明一波可以发现:对...原创 2019-01-20 14:55:08 · 245 阅读 · 0 评论