2016年1月3日

摘要: orz CYZ。。。。我们考虑模仿kruskal的建造过程:将边排序,考虑到这样一个性质:在一个建到一半的最小生成树中,两点直接连的边的距离一定严格大于它们在最小生成树上的路径边权最大值(反之就不能连最小生成树的那条边),因此我们只要用一个并查集体现kruskal的过程,再维护每个子树的size,然... 阅读全文

posted @ 2016-01-03 19:30 ziliuziliu 阅读(270) 评论(0) 推荐(0) 编辑

摘要: 考虑到数据范围不小。。。采用双端队列优化:如果当前距离小于队列头,则将当前结点push到队列头。再考虑判负环。。。其实入队次数貌似比较迷?反正多加几次可能问题不大。#include#include#include#include#define inf 12345678#define maxv 200... 阅读全文

posted @ 2016-01-03 16:03 ziliuziliu 阅读(208) 评论(1) 推荐(0) 编辑

摘要: 这题卡空间,只好用dfs。。。加个最短路优(乱)化(搞):当前距离与下一个点的距离与下一个点到终点的最短路之和大于ans则直接剪掉。#include#include#includeusing namespace std;int n,map[20][20],ans=12345678;int d[20]... 阅读全文

posted @ 2016-01-03 15:19 ziliuziliu 阅读(267) 评论(0) 推荐(0) 编辑

摘要: 参见之前的vani和cl2捉迷藏。。代码都是一样的。#include#include#include#include#include#define maxv 205#define maxe 3005#define inf 12345678using namespace std;struct edge... 阅读全文

posted @ 2016-01-03 11:48 ziliuziliu 阅读(131) 评论(0) 推荐(0) 编辑

摘要: 可以裸最小费用最大流。只要相应人,机连边即可。#include#include#include#include#include#define maxv 805#define maxe 200005using namespace std;struct edge{ long long v,f,c,nxt... 阅读全文

posted @ 2016-01-03 11:45 ziliuziliu 阅读(143) 评论(0) 推荐(0) 编辑

摘要: 这个有贪心,题中所要求的点一定在最小生成树的最长链上。代码长度。。。。hhd#include#include#include#include#include #include#define maxv 100005#define maxe 200005using namespace std;struc... 阅读全文

posted @ 2016-01-03 10:58 ziliuziliu 阅读(301) 评论(0) 推荐(0) 编辑

摘要: 由题意,每条路径上只能选一个点,也就是求最小路径法覆盖=节点数-最大匹配。为了保证联通,我们需要做一个闭包,也就是floyd。#include#include#include#include#include#define maxv 205#define maxe 3005#define inf 12... 阅读全文

posted @ 2016-01-03 09:26 ziliuziliu 阅读(191) 评论(0) 推荐(0) 编辑