—————— 树 ——————
文章平均质量分 72
everlasting__
'-'
展开
-
bzoj 1232: [Usaco2008Nov]安慰奶牛cheer
→题目链接←读题就可以看出肯定用最小生成树只按照边权找到最小生成树后,计算最后的时间是Σ边权*2+Σ点权*出度+我们要选的过夜的点的权值然后发现,如果只按照边权找最小生成树是不正确的因为我们正常跑kruskal的时候每次会将边权*2+两边点的点权加进答案所以我们可以在排序前把每条边两边点的点权都加进这个边权之中,并且把原边权*2这样再跑kruskal就每原创 2017-10-04 23:02:24 · 256 阅读 · 0 评论 -
bzoj 3943: [Usaco2015 Feb]SuperBull
→题目链接←又是一道水题,又是一道翻译及其坑人的题翻译里每个数是1~230...原文是1~2^30太差劲了暴力建边然后跑最大生成树代码:#include#include#include#include#define ll long long using namespace std;struct node{ int s,t,le原创 2017-09-07 20:30:20 · 210 阅读 · 0 评论 -
bzoj 3390: [Usaco2004 Dec]Bad Cowtractors牛的报复
→题目链接←裸的最大生成树写了两种算法,算是模板吧kruskal:#include#include#include#include#include#define ll long longusing namespace std;struct node{ int s,t,len; friend bool operator < (node a,原创 2017-09-06 15:45:42 · 255 阅读 · 0 评论 -
bzoj 3479: [Usaco2014 Mar]Watering the Fields 最小生成树
→题目链接←裸的最小生成树...只会prim算法n^2暴力建边然后跑最小生成树学了这么长的时间终于第一次写最小生成树真棒啊代码:#include#include#include#include#includeusing namespace std;struct node{ int s,t; int len; node(int x,i原创 2017-09-02 18:00:34 · 302 阅读 · 0 评论 -
bzoj 3363: [Usaco2004 Feb]Cow Marathon 奶牛马拉松 树的直径
→题目链接←【想说的话】一开始以为还要像前面一题那样搞带权并查集然后我就不会了...后来突然发现我zz了最后一个方向没用了...直接建双向边然后跑树的直径就行了...幸亏这个题保证边不交叉,要不然就彻底不会了【题解】建双向边然后跑树的直径找树的直径:随便从一个点跑bfs,找到距离它最远的那个点,再从那个点跑bfs,最长路就是树的直径原创 2017-10-11 14:29:06 · 553 阅读 · 0 评论 -
bzoj 3364: [Usaco2004 Feb]Distance Queries 距离咨询 LCA
→题目链接←【想说的话】TLE了3遍后我深刻的认识到了....跑最短路果然不可行...【题解】显然是裸的LCA【代码】#include#include#include#include using namespace std;struct node{ int to,len; node(int x,int y){to=x,len=原创 2017-10-12 11:22:49 · 297 阅读 · 0 评论 -
bzoj 3251: 树上三角形 暴力
→题目链接←【想说的话】啊啊啊啊,搬完博客的第一篇博客md新博客调了一天,头都大了【题解】想一想,可以发现如果答案为no,在int范围内最多只可能同时存在46个数所以找到lca,判断下路径上的点的个数,如果大于46个就输出Yes,否则暴力判断【代码】#include#define MAXN 100010typedef long lon原创 2017-12-12 20:33:24 · 277 阅读 · 0 评论 -
bzoj 4034: [HAOI2015]树上操作 树链剖分
新博客链接:https://www.everlasting.wang/archives/210原创 2017-12-24 20:42:57 · 300 阅读 · 0 评论