题目大意:给定一个联通的无向图,求该图的一个生成树,使得边权最大的边最小。第一问的答案显然是N-1咯~第二问可以考虑二分答案,二分最大的边权再用并查集验证是否可行。但是实际上并不需要这么麻烦。因为有一个定理:一颗最小生成树必定是一颗最小瓶颈生成树(最小瓶颈生成树就是边权最大的边最小的生成树)。因此对...
分类:
其他好文 时间:
2015-12-05 17:28:04
阅读次数:
151
ANS明显是有二分性的二分答案,设二分值为b M(i,j)?m(i,j)j?i+k>b显然当lb?j?b?i+b?k 或 a[j]?a[i]>b?j?b?i+b?k 那么 (a[i]+b?i)?(a[j]+b?j)>b?k 或 (?a[i]+b?i)?(?a[j]+b?j)>b?k是一个单调队列的样...
分类:
Web程序 时间:
2015-12-03 23:17:31
阅读次数:
404
我们可以BFS出每个出口到每个人的最短距离, 然后二分答案, 假设当前答案为m, 把一个出口拆成m个表示m个时间, 点u到出口v的距离为d, 那么u->v的[d, m]所有点连边, 然后跑匈牙利去check就行了...其实这道题挺好想但是码量还是挺大的....--------------------...
分类:
其他好文 时间:
2015-12-02 22:27:01
阅读次数:
189
题意:
给出一棵n个结点的树,边上有权值;
对于每个点求离它第k小的距离;
n
题解:
正解似乎是树分治维护距离,然后二分答案啥的,时间复杂度O(nlog^3);
但是如果想不到树分治怎么办呢?那么就来写一个逗比做法吧!
考虑从一个点转移到另外一个点,这个转移过程对于一些点是增加这条边的权值,另一些是减少这条边的权值;
而投影到DFS序上,就是对于子树区间的加减修改;
从...
分类:
其他好文 时间:
2015-11-26 15:22:22
阅读次数:
428
以后似乎终于不用去学后缀数组的倍增搞法||DC3等blablaSXBK的方法了= =定义(来自关于后缀数组的那篇国家集训队论文。。)后缀数组:后缀数组SA是一个一维数组,它保存1..n的某个排列SA[1],SA[2],……,SA[n],并且保证Suffix(SA[i])#include#includ...
分类:
编程语言 时间:
2015-11-23 22:03:26
阅读次数:
259
题目传送门题意:凸多边形的小岛在海里,问岛上的点到海最远的距离。分析:训练指南P279,二分答案,然后整个多边形往内部收缩,如果半平面交非空,那么这些点构成半平面,存在满足的点。/************************************************* Author ...
分类:
其他好文 时间:
2015-11-10 16:15:06
阅读次数:
257
只想到二分答案,每次先用倍增将点推上去。。。推到根节点后就贪心,不能再走回去且这个点需要军队而且这个点剩余的时间是从这个节点推上来的节点中最小的就走回去(语文实在LJ。。。)实现起来貌似很难但代码不是很长第二次用到set了,做得比较慢。。。不学C艹真的会死得很惨。。。WA一个点不造是怎么回事。。 ....
分类:
其他好文 时间:
2015-11-04 21:25:42
阅读次数:
234
二分答案 + 2-SAT验证,判断正方形是否相交写起来有点烦,思路还是挺简单的。#include#include#include#include#include#includeusing namespace std;const int maxn=1005;struct Point{ doubl...
分类:
其他好文 时间:
2015-10-28 22:36:25
阅读次数:
267
bzoj1486 最小圈题目大意:求一个图内的某个环,使得sigma ai[i]/k(环上点数)最小。思路:二分答案,如果sigma ai[i]-k*mid>0说明mid可以更大,每次判断的时候给所有边-mid,就成了判断负环的问题。这里用spfa普通的判法会tle,所以要用深搜版的spfa来判断。...
分类:
其他好文 时间:
2015-10-28 01:16:00
阅读次数:
154