
拓扑排序
二分抄代码
去了18ec没资格去19ec的反向训练选手
展开
-
codeforces1388D. Captain Flint and Treasure
https://codeforces.com/contest/1388/problem/D拓扑排序,如果a[u]>0,说明先拿a[u]再拿a[v]会大一些,如果a[u]<0,那么就先把v所在的集合拿完,再拿u所在的集合,才能让a[u]不使得a[v]变小所以先拓扑排序顺便用并查集合并,然后把每一个集合里的元素输出顺序先拓扑排序存起来,然后把拓扑排序过程中的反向边连起来,得到集合的输出顺序。其实有更短一些的写法就是直接建反向边,然后dfs从底向上反向转移求得答案,这样输出方案十分方便原创 2020-07-31 01:34:14 · 233 阅读 · 0 评论 -
codeforces1344C Quantifier Question
https://codeforces.com/contest/1344/problem/C这题没考虑顺序问题,比赛完以后才测出来WA5。。。首先,对所有ji->ki,连边,再同时建立他的反向图,然后有环的话,由于边是表示<,所以有环无解那么我们依次考虑每一个i,如果他已经在正向图或者反向图中被访问过了,说明他跟x[1]-x[i-1]中某个数有大小关系,则说明他只能选E,如果...原创 2020-05-07 01:35:59 · 413 阅读 · 0 评论 -
2019年湖南省赛G 字典序
省赛血炸,shl一个点分治写了2小时没过样例就tm离谱,我一个dfs找了半天错误找不到,byf重写一遍过了。结果这题没写,数位DP那题没写,太惨了,18一等,19二等,反向训练选手石锤这题我们知道对于每一相邻两行的比较,所有上面>下面的位置一定在某一个上面<下面的位置后面,于是我们建图,设左边m个点为m列元素,右边n-1个点为每一相邻两行,对于上面<下面的,左边连到右边,...原创 2020-01-15 20:20:06 · 200 阅读 · 0 评论 -
牛客2018多校第四场 J Hash Function
考场上队友写的据说是nlogn,然而并是超时,赛后听说题解是线段树区间优化建图,感觉挺神奇的特地写了一蛤。题意是模拟hash按顺序插数字,顺序寻址法,告诉你最后插完后的hash表,问你插入数字的顺序的最小字典序。于是对于每个插入的数字,算一蛤他原本的位置是在哪里,那么从原本的位置到他的上一个位置,都必须在他之前插入,于是我们想到了拓扑排序,但是由于他原本的位置距离他很远,直接连边会导致复杂度为n^...原创 2018-07-29 20:25:06 · 468 阅读 · 0 评论 -
codeforces 1213F Unstable String Sort
https://codeforces.com/problemset/problem/1213/F对 p,q建图u->v表示s[u]<=s[v]如果形成了一个环,那么这个环中所有点的值必须相同于是强联通分量缩点,每一个强连通分量的大小必须相同,所以直接拓扑排序,然后看最多能安排多少个字母(卧槽写错一点好气 啊,我安排到z后面一个字母去了,<写成了<=,再次...原创 2019-08-31 01:05:34 · 528 阅读 · 0 评论 -
codeforces 1217D Coloring Edges
https://codeforces.com/problemset/problem/1217/D如果无环,那么就是1如果有环,答案就是2,对于u<v的边,颜色是1,u>v的颜色是2,这样就不会有同色环了#include<bits/stdc++.h>#define maxl 300010using namespace std;int n,m,ans,c...原创 2019-09-06 00:51:18 · 431 阅读 · 0 评论