
图论
orz11111111
这个作者很懒,什么都没留下…
展开
-
51nod 80 路径定向 欧拉路径
题意:n点m条边的有向图,操作:改变某条边(u,v)的方向.n<=1e5,m<=3e5. 可以操作任意次.问入度等于出度的点最多有多少个,并输出改变边的方案.先把边看成没有方向的,那么如果一个点的度数为奇数,则它的入度不可能等于出度.那么在奇数点之间连边不会对任意一个方案造成影响.因为奇数点的个数为偶数个.两两连边后,所有点都为偶数度,跑一遍欧拉路径时,保存边的方向即可.O(E).#i...原创 2018-07-09 13:56:49 · 182 阅读 · 0 评论 -
NCPC 16 Artwork 正难则反(删除点->添加点),并查集
题意:初始n*m个白块.一个白块可以走到相邻4个白块中.Q次操作.某次横着或者竖着将若干个白块变为黑块.n,m<=1e3, Q<=1e4.每次操作过后,问白块的连通分量个数为?每次若干个白块变为黑色. 相当于在图中删除若干个点以及它的边.然后在求连通分量.O(nmQ)TLE.正难则反.:从后往前.删点变为加点.每次加入一个点u,看点u相邻的4个连通分量是否和u所在的联通分量...原创 2018-11-04 00:31:54 · 194 阅读 · 0 评论 -
NCPC 16 B Bless Your AutoCorrect 建图,Trie,BFS
题意:按照出现频率由大到小给出n个单词,操作1:输入一个字符或者删除当前字符.操作2:根据现在所输入的字符串s,自动联想到字典中前缀为s并且出现频率最大的单词.n,m<=1e5 总的字符数<=1e6.m次询问,每次给出一个单词,问输入该单词最少需要多少次操作. 操作次数最多为单词的长度,一次操作2会输入若干个字符 可能会减少操作次数.建图:先对字典中的单词建立T...原创 2018-11-04 00:31:35 · 190 阅读 · 0 评论 -
CF Manthan 18 E Trips 逆向思维(删边,添边),set
题意:n个点,m次操作,第i次操作添加边(u,v).每次操作后询问:最多可以选出多少个点? 要求:被选出的点组成的子图 任意一个点的度>=k.n,m<=2e5.添加边没思路,考虑反着来.初始先加入m条边,从后往前考虑删除一条边时答案产生的变化.se维护二元组(deg[u],u).每次先把度数<k的点u删除.若u的相邻点v在集合内,并且边(u,v)没有被删除过. 则更新...原创 2018-11-03 22:41:37 · 230 阅读 · 0 评论 -
NCPC 14 A Amanda Louges 建图,二分图染色
题意:n个白点.有m个条件(u,v,x).(u,v,x) x=0表示u,v两点都不能变为黑色.(u,v,x) x=1表示u,v两点正好有一点要涂成为黑色.(u,v,x) x=2表示u,v两点都要涂成黑色.n,m<=2e5. 问最少要把多少个点涂成黑色才能满足m个条件.无解输出-1.建图:先把所有(u,v,x=1)的 (u,v)连接一条边.(u,v,x=2)的点mk标记为tru...原创 2018-11-03 22:16:32 · 264 阅读 · 0 评论 -
CF 508E. Maximum Matching 建图,欧拉路径,并查集
题意:n个三元组(c1,v,c2). 可以把(c1,v,c2) 变为(c2,v,c1).若c2[i]==c1[i+1] 则可以把i放在j的左边.从n个三元组中选出若干个排成一个序列的价值为:所选的v之和.n<=100. 1<=c<=4. 问最大价值为多少?由于三元组可以翻转.以三元组为顶点建图没有意义.以颜色为顶点.若存在三元组(c1,v,c2) 则在(c1,c2...原创 2018-11-04 00:33:25 · 395 阅读 · 1 评论 -
NCPC 14G. Outing 图论(出边),DP
题意:[1..n].n个人.如果想要邀请第i个人 则必须要邀请第a[i]个人.1<=k<=n<=1000. 邀请的人数不超过k时. 最多能邀请多少个人?先建图,连接有向边(i,a[i]) 若邀请x 则要邀请以x为起点遍历的联通分量.因为每个点只有一个出边. 所以每个联通分量都是以 一个环 + 若干个分支(tributary)组成.选择该联通分量任意一点 都要把环选上 ,...原创 2018-11-03 22:14:49 · 419 阅读 · 0 评论 -
HDU 6311 Cover 欧拉路径,覆盖
题意:n点m条边的无向图,问最少用多少条路径覆盖整张图,要求任意两个路径都不能有公共边. 并输出这些路径.n,m<=1e5.假如原图为欧拉图,那么显然只需要用一条回路.一条路径中,最多只会包含两个奇数点,那么答案>=odd/2 (odd为奇数点的个数.)现在可以构造该答案.将奇数点两两连上虚拟边.总共odd/2条边.在新的图上跑一次欧拉回路,回溯时不标记这些虚拟边,则回路被...原创 2018-10-26 17:18:37 · 216 阅读 · 0 评论 -
51nod 80 路径计数 容斥+建图
题意:n点m条边的有向无环图,定义一条路径的价值为:该路径上所有边权的最大公约数.n,w<=100,Q<=500,m<=5e4.Q次操作:修改一条边的权值,并询问价值为1的路径数量?因为边权最大为100.可以拆成100个子图.第x个子图的路径值只能为x的倍数.设g[i]为第i个子图的路径个数.容易容斥算出f[i],价值为i的路径总个数因为为DAG,dp[u][x]以u为起点的价值...原创 2018-07-15 22:57:54 · 179 阅读 · 0 评论 -
51nod 80 破坏道路 思维,图论
题意:n点m条边的无向联通图.给出(s1,t1,l1),(s2,t2,l2)1<=n<=3000. n-1<=m<=min(3000,n*(n-1)/2). 问最多删除多少条边,使得s1到t1长度不超过l1,s2到t2长度不超过l2.边最多只有3000条.删除边最多,保留的边尽量少.假如p1,p2为(s1,t1),(s2,t2)的路径 并且长度都符合要求.则保留的边个数为 ...原创 2018-07-06 15:03:29 · 257 阅读 · 0 评论 -
CodeChef DEC14 Course Selection 最小割,建图,割边
题意: n门课程,m个学期. 同一门课可能在多个学期中都有开设a[i][j]表示在第j个学期修第i门课的成绩. a[i][j]=-1表示第j个学期没有开设第i门课.k个修课条件(u,v) 表示要修第v门课 必须先修完第u门课.n,m,k,a[i][j]<=100. 问修完n门课的最多平均分为多少? 分母n为固定的,总得分越大,平均分也越大. 反着考虑,总的扣分尽量小(从...原创 2018-11-01 10:50:52 · 288 阅读 · 0 评论