随笔分类 -  图论

摘要:传送门 本来想做一下tarjan缩点再拓扑序dp的题。 突然发现原来做过的这道可以用这种方法解决(原来是两遍SPFA)。 那么就合着一起总结一下吧! 原来一眼看到这道题,咦这不是水题嘛。 直接bfs一下找出能够达到1和n的点,然后这些点的max - min就好了呀! 然后愉快地敲好了代码,交上去全w 阅读全文
posted @ 2019-11-13 19:54 yyys 阅读(241) 评论(0) 推荐(0)
摘要:传送门 先考虑如果只有一个栈,哪些情况是不合法的。 我们会发现这样的情况就是不合法的,因为前面那个一定会被中间那个高的抵住。 如果有这样的情况,那么中间那个数就不可以和前面那个数放在一个栈中。 可以预处理出一个后缀最小值,判断这样的i,j,然后二分图染色看是否会矛盾。 如果不矛盾的话我们还要输出如何 阅读全文
posted @ 2019-11-12 20:46 yyys 阅读(142) 评论(0) 推荐(0)
摘要:传送门 这是一道好题! 要求一张牌只能用一面,说明选了一面就不能选另一面(废话)。 这种限制关系我们可以用二分图的思想解决。 于是把每张牌的两面的值连边。 对于一条边只能选一个端点。 如果连出了环说明每个点都能被选到,如果连出的是树,说明一定有一个点是选不到的。 我们要求的顺子中如果包含了一棵树,那 阅读全文
posted @ 2019-11-01 20:54 yyys 阅读(196) 评论(0) 推荐(0)
摘要:传送门 此题第一问最短路即可。主要是第二问。 第二问求最小的删除边的方案使得1到n的最短路变大。 最小的删除让我们想到了最小割。 然而最小割是使得1到n不连通。 于是我们把最短路图抽出来跑最小割。 一条边(x,v)当dis[x]+val[i]==dis[v]时说明这是最短路图中的一条边。 #incl 阅读全文
posted @ 2019-10-18 14:49 yyys 阅读(139) 评论(0) 推荐(0)
摘要:传送门 好题!考察了对于SPFA的深刻理解。 对于每个怪,我们要么花费魔攻代价,要么花费普攻代价+消灭其儿子的代价。 看似像个一直递归下去的做法,仿佛可以用dp? 但是图中可能会存在环,就会有后效性。 假如我们用一个队列保存当前还需要消灭的怪。 我们每次提出队首,要么魔攻,要么普攻然后又压入一堆新出 阅读全文
posted @ 2019-10-18 11:39 yyys 阅读(141) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-10-11 19:19 yyys 阅读(1) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-10-10 20:30 yyys 阅读(2) 评论(0) 推荐(0)
摘要:差分约束系统用于解决N元一次不等式组。 之前感觉学的模模糊糊,现在理得比较清楚后做一个总结。 1.不等式怎么转换 先是a-b ≤ c 对于最短路,有这样的不等式:dis(u) ≤ dis(v) + val(v,u) 变形得:dis(u) - dis(v) ≤ val(v,u),与a-b ≤ c很相似 阅读全文
posted @ 2019-10-10 12:19 yyys 阅读(304) 评论(1) 推荐(1)
摘要:先给一道题: [SNOI2017]炸弹 我们发现,一个炸弹可能会影响左右的一些炸弹,然后左右的炸弹又会去影响其他的炸弹。 最暴力的做法当然是向每一个会影响到的炸弹连边。 边会达到n^2,显然无法承受。 然后我们就可以用到一个叫做线段树优化建图的技巧 图片摘自洛谷题解~ 这样边数优化到nlog。 这就 阅读全文
posted @ 2019-10-07 07:39 yyys 阅读(437) 评论(2) 推荐(2)
该文被密码保护。
posted @ 2019-10-04 20:40 yyys 阅读(0) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-10-04 15:28 yyys 阅读(0) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-09-26 18:23 yyys 阅读(0) 评论(0) 推荐(0)
摘要:传送门 一道神奇的网络流题目。 建议先做关于最大权闭合子图的题。 比如bzoj1497 #include<bits/stdc++.h> #define LL long long #define N 5003 #define M 500003 #define INF 2100000000 using 阅读全文
posted @ 2019-09-23 19:54 yyys 阅读(274) 评论(2) 推荐(0)
摘要:传送门 直接博弈论dfs可以得到75分(然鹅我博弈论学的很pie) #include<bits/stdc++.h> #define LL long long #define INF 10000 using namespace std; int read() { int x=0,f=1;char s= 阅读全文
posted @ 2019-09-12 19:27 yyys 阅读(241) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-09-06 20:49 yyys 阅读(1) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-08-31 16:44 yyys 阅读(1) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-08-30 18:32 yyys 阅读(1) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-08-28 17:07 yyys 阅读(0) 评论(0) 推荐(0)
摘要:传送门 题目求最少要多少支军队可以把所有城镇覆盖完(DAG的最小不相交路径覆盖) 军队只能向下走,所以建图时就往四个方向连边,最后跑一下最小路径覆盖即可(=点数 - 二分图最大匹配) #include<bits/stdc++.h> #define N 53 using namespace std; 阅读全文
posted @ 2019-08-27 21:45 yyys 阅读(150) 评论(0) 推荐(0)