http://www.lydsy.com/JudgeOnline/problem.php?id=1486 二分答案 dfs版spfa判负环 #include<queue> #include<cstdio> #include<cstring> #include<iostream> #define N 3001 #define M 10001 using namespace std; int n; int tot,front[N],nxt[M],to[M]; d…
BZOJ1486 HNOI2009 最小圈 Description 应该算是01分数规划的裸板题了吧..但是第一次写还是遇到了一些困难,vis数组不清零之类的 假设一个答案成立,那么一定可以找到一个环使得其边权和大于等于边数∗ans. 可以发现答案是具有二分性的,二分出一个临时答案ans′,并且用ans′对每条边进行约束,再用深搜SPFA判断一下负环,如果有负环说明当前解可行,继续二分就好了. 注意题目要求保留到小数点后八位,多开一点二分次数防止精度不够啊 /******************…
http://www.lydsy.com/JudgeOnline/problem.php?id=4823 讨厌的形状就是四联通图 且左右各连一个方块 那么破坏所有满足条件的四联通就好了 按上图方式染色之后,任意满足要求的四联通块一定可以是 黑色-->紫左-->紫右-->白色 只要破坏三个箭头中的一个即可 所以可以构建最小割模型 1.源点向黑色格连流量为格子代价的边 2.黑色格向相邻的紫色格连inf边 3.与黑色格相邻的紫色格向与白色格相邻的紫色格连 流量 为 两个紫色格较小代价 的边 4…
https://www.lydsy.com/JudgeOnline/problem.php?id=2561 考虑Kruscal算法求最小生成树的流程 如果 u和v之间的长为L的边能出现在最小生成树里,说明<L的边不能时u和v联通 即求图中只存在<L的边时,u和v的最小割 如果 u和v之间的长为L的边能出现在最大生成树里,说明>L的边不能时u和v联通 即求图中只存在>L的边时,u和v的最小割 #include<cstdio> #include<queue> #…
http://www.lydsy.com/JudgeOnline/problem.php?id=1185 题解去看它 http://www.cnblogs.com/TheRoadToTheGold/p/8253800.html 精度真是卡的我醉生梦死,w(゚Д゚)w    O(≧口≦)O bzoj改成long double 就过了 洛谷仍处于 输出x.99999,答案输出x+1.00000 输出-0.00000,答案输出0.00000 救命啊~~~~(>_<)~~~~ 来自大佬的建议:输出do…
http://www.lydsy.com/JudgeOnline/problem.php?id=4519 最小割树 #include<queue> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; #define N 900 #define M 9000 const int inf=2e9; int n; ;…
http://www.lydsy.com/JudgeOnline/problem.php?id=2229 最小割树介绍:http://blog.csdn.net/jyxjyx27/article/details/42750833 http://blog.csdn.net/miaomiao_ymxl/article/details/54931876 #include<queue> #include<cstdio> #include<cstring> #include<…
http://www.lydsy.com/JudgeOnline/problem.php?id=4826 吐槽一下bzoj这道题的排版是真丑... 我还是粘洛谷的题面吧... 提供p1的攻击力:i,j 位置的数是区间[i,j]的最大值和次大值 提供p2的攻击力:i,j位置的数有一个是区间[i,j]的最大值,另一个不是次大值 记录L[i].R[i] 分别表示i左右第一个大于k[i]的位置 p1的贡献: 1.点对(L[i],R[i])    2.点对(i,i+1) p2的贡献: 1.点对(L[i],…
http://www.lydsy.com/JudgeOnline/problem.php?id=4592 注意操作1 先挖再补,就是补的范围可以包含挖的范围 SHOI2015 的题 略水啊(逃) #include<cstdio> #include<iostream> #define N 200001 using namespace std; #define max(x,y) ((x)>(y) ? (x) : (y)) #define min(x,y) ((x)<(y)…
http://www.lydsy.com/JudgeOnline/problem.php?id=3779 有一棵树,初始每个节点有不同的颜色 操作1:根节点到x的路径上的点 染上一种没有出现过的颜色 操作2:操作1后把x换成根 操作3:定义点x的点权为x到根节点路径上不同颜色的数量,查询x的子树点权和 LCT+线段树+dfs序 dfs一遍得到每个点的dfs序, 以及每个点子树的dfs序范围,记点x的子树dfs序范围为 [Lx,Rx] 线段树以dfs序为顺序维护 操作1就是access, 一条Pr…