Problem 魔法森林 (NOI2014) 题目大意 给n个点,m条边的无向图,每条边有两个权值a,b。 求一条从1-->n的路径,使得这条路径上max(a)+max(b)最小。输出最小值即可。 解题分析 将边按照权值a从小到大排序后,依次加边,用lct维护一棵最小生成树。 具体做法是如果所加边u ...
分类:
其他好文 时间:
2016-09-01 22:55:34
阅读次数:
203
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #define maxn 150005 #define maxm 100005 #define pi pair ...
分类:
其他好文 时间:
2016-05-17 22:32:11
阅读次数:
193
【题目链接】
一开始写了个二分a+最短路b,骗了65分,然后改成二分b+最短路a,骗了70分。。发现二分是不对的之后,给答案取min,骗到了90分。出题人太不负责任了。
正解是枚举a,用LCT维护b的最小生成树。
/* Telekinetic Forest Guard */
#include
#include
#include
using namespace std;...
分类:
其他好文 时间:
2016-05-12 12:23:37
阅读次数:
193
本博客主要讲述了BZOJ3669这题的分析与实现,并分享了代码
分类:
其他好文 时间:
2016-01-16 09:41:40
阅读次数:
223
记得去年模拟赛的时候好像YY出二分答案枚举a,b的暴力,过了55欸然后看正解,为了将两维变成一维,将a排序,模拟Kruskal的加边过程,同时维护1到n的最大值,加入一条边e(u,v,a,b)时有以下两种情况:1) 若u,v已连通,则找出u->v上最大的b',若bn,因为去掉b'所在边时1,n一定不...
分类:
其他好文 时间:
2015-05-12 00:03:17
阅读次数:
216
在一个魔法森林中,有n个节点(n<=50000),m条边(m<=100000),每个节点有两个值ai,bi,1<=ai,bi=ai,B>=bi,求min(A+B)。
本题目的标准解法是LCT(link-cut-tree),这里讨论一种基于搜索算法的解决方法,其编程复杂性和理解难度略优于LC...
分类:
其他好文 时间:
2015-04-08 15:07:55
阅读次数:
155
优化: 1 . 不对dist数组进行更新(单调性保证)(否则狂TLE)
2 . 随a权值递增而加边,同时在函数外让点入队 (否则狂WA)
3 . 对a权值排序然后进行枚举。(否则有可能常数TLE)
以下为非必须优化:
4 . 对边进行边权排序,加边时可以保证线性时间复杂度
5 . 对SPFA(Dijsktra)进行优先队列优化(堆优化)。(因...
分类:
其他好文 时间:
2014-09-02 17:56:45
阅读次数:
1010
题目大意:
给定一个无向图,每条边有两个权值ai和bi,从1走到N,设路径上a权的最大值为A,b权的最大值为B,求A+B的最小值
首先这题如果只有一个权值就是水题无误……但是多了个权值之后我们就要好好考虑一下了
我们对a排序,枚举a,对于每一次枚举求b权最大值的最小值即可
跑M遍SPFA肯定超时无误 网上很多人写了LInk-Cut-Tree维护动态最小生成树 我的LCT没写明白 就去写了S...
分类:
其他好文 时间:
2014-09-01 14:06:53
阅读次数:
1733
3669: [Noi2014]魔法森林Time Limit:30 SecMemory Limit:512 MBSubmit:226Solved:127[Submit][Status]Description为了得到书法大家的真传,小E同学下定决心去拜访住在魔法森林中的隐士。魔法森林可以被看成一个包含个...
分类:
其他好文 时间:
2014-08-31 10:29:31
阅读次数:
1048