摘要:
嘟嘟嘟 就这么建。 ——— #include<cstdio> #include<iostream> #include<cmath> #include<algorithm> #include<cstring> #include<cstdlib> #include<cctype> #include<ve 阅读全文
摘要:
"嘟嘟嘟" 首先这题虽然不是很难,但是黄题是不是有点过分了……好歹算个蓝题啊。 手玩样例得知,这哥们儿瞬移到的城市$A$一定是这些被攻击的城市构成的树的一个叶子,然后他经过的最后一个城市$B$和$A$构成的链一定是这棵新构成的树的直径(突然想到虚树)。 别激动,这题根本不用虚树。 我们只用求一遍树的 阅读全文
摘要:
"嘟嘟嘟" 这题有点意思。 手玩得知,连上一条边后,形成的环只用走一次,剩下的还要走两次。 因此$k = 1$就是求树的直径。 $k = 2$怎么办咧?也是先求一遍树的直径,然后我就想,连上端点后就变成了一个基环树,我们要在这个基环树上再连一条边,使(新形成的环的长度) (与原环相交长度)尽可能大。 阅读全文
摘要:
嘟嘟嘟 这题思路和[SCOI2007]修车以及POJ3686 The Windy's都一样,只不过数据是加强版。 从$n$盘菜变成了$p$盘菜,暴力拆点建图就不好用了,所以得优化。 这个优化我觉得比较难想,因为网络流一般都是考建图,对算法本身并没有什么考察。但这个优化却得用到费用流的性质。 费用流的 阅读全文
摘要:
嘟嘟嘟 看$n$那么小,就知道是网络流。然后二分,按时间拆点。 刚开始我看成所有航班一天只能起飞一次,纠结了好一会儿。但实际上是每一个航班单独考虑,互不影响。 建图很显然,拆完点后每一个点的第$i$天向和他相连的点的第$i + 1$天连边,同时自己的第$i$天也要向第$i + 1$天连边。 刚开始数 阅读全文