当前搜索:

bzoj 4756: [Usaco2017 Jan]Promotion Counting

→题目链接← 【想说的话】 没有写过树状数组... 这算是我 树状数组初体验 ? 【题解】 先按能力值从大到小排序,然后找到每个牛的名次 之后一边dfs,一边用树状数组统计 【代码】 #include #define MAXN 100010 using ...
阅读(65) 评论(0)

bzoj 4094: [Usaco2013 Dec]Optimal Milking 线段树

→题目链接← 【想说的话】 再次手误... 【题解】 对于每个区间维护四种最大值 1、选左端点不选右端点 2、选右端点不选左端点 3、两个端点都选 4、两个端点都不选 然后用线段树搞一搞就好了 注意下pushup的转移 【代码】 #include ...
阅读(50) 评论(0)

bzoj 1782: [Usaco2010 Feb]slowdown 慢慢游

→题目链接← 【想说的话】 总是因为一些手误导致调半天... 【题解】 按dfs序建线段树,然后每次先单点查询再区间加1 【代码】 #include #define inf 1000000000 #define MAXN 100010 using names...
阅读(55) 评论(0)

bzoj 3391: [Usaco2004 Dec]Tree Cutting网络破坏

→题目链接← 【想说的话】 果然我还是比较喜欢树 【题解】
阅读(45) 评论(0)

bzoj 3372: [Usaco2004 Feb]Moo University -- Financial Aid 财政补助 二分

→题目链接← 【想说的话】 期中考试gg了,,, 写发水题压压惊 【题解】 用两个数组,一个按分数从小到大排序,一个按价格从小到大排序 在按分数排序的数组上进行二分,把它当作中位数,然后在另一个数组中扫一遍找到两边的数,判断是否合法 复杂度O(nlogn) 【代码】 #include ...
阅读(60) 评论(0)

bzoj 1827: [Usaco2010 Mar]gather 奶牛大集会

→题目链接← 【想说的话】 没有什么想说的=.= 周末没什么事不刷题感觉不太好 【题解】 两遍dfs(树形dp) 将点1当作根 第一遍dfs计算出每个点子节点总数,还有将它作为集会地点时它的子树中的点满足条件需要的代价 第二遍计算出答案,点1的答案就是dfs1时处理...
阅读(86) 评论(0)

bzoj 3364: [Usaco2004 Feb]Distance Queries 距离咨询 LCA

→题目链接← 【想说的话】 TLE了3遍后我深刻的认识到了.... 跑最短路果然不可行... 【题解】 显然是裸的LCA 【代码】 #include #include #include #include using namespace std; str...
阅读(75) 评论(0)

bzoj 3363: [Usaco2004 Feb]Cow Marathon 奶牛马拉松 树的直径

→题目链接← 【想说的话】 一开始以为还要像前面一题那样搞带权并查集 然后我就不会了... 后来突然发现我zz了 最后一个方向没用了...直接建双向边然后跑树的直径就行了... 幸亏这个题保证边不交叉,要不然就彻底不会了 【题解】 建双向边然后跑树的直径 找树...
阅读(86) 评论(0)

bzoj 3362: [Usaco2004 Feb]Navigation Nightmare 导航噩梦 带权并查集

→题目链接← 【想说的话】 一道带权并查集好(水)题 以前觉得带权并查集挺屌的... 但是写过才发现就是正常的并查集顺便维护点什么东西... 好像我写的有点暴力啊...跑的好慢啊 【题解】 做并查集的过程中找根时不做路径压缩 然后对于每个点保存它到它的父亲节点需要在...
阅读(95) 评论(1)

bzoj 1230: [Usaco2008 Nov]lites 开关灯

→题目链接← 正解是线段树... 然而暴力能过为什么要费劲呢=.= 代码: #include #include #include #include #include using namespace std; bool f[100010]; int main(){ ...
阅读(78) 评论(0)

bzoj 1232: [Usaco2008Nov]安慰奶牛cheer

→题目链接← 读题就可以看出肯定用最小生成树 只按照边权找到最小生成树后,计算最后的时间是 Σ边权*2+Σ点权*出度+我们要选的过夜的点的权值 然后发现,如果只按照边权找最小生成树是不正确的 因为我们正常跑kruskal的时候每次会将边权*2+两边点的点权加进答案 所以我们可以在排序前把每...
阅读(76) 评论(0)

bzoj 3368: [Usaco2004]Farmer John's View 约翰看山

→题目链接← 我觉得这个题主要就是要处理好每个山的边界问题 对于横跨0°的要特殊处理 我是把它拆成两段,最后一定是每个山的端点都是秒数从小到大的 然后以左端点从小到大排序,再乱搞一搞统计答案就好了,具体看代码吧 代码: #include #include #includ...
阅读(90) 评论(0)

bzoj 3359: [Usaco2004 Jan]矩形

→题目链接← 先令所有的矩形的x,y都是x 再以x为第一关键字,y为第二关键字,从小到大排序 然后就变成了找一个二维的最长上升子序列 n *注意两个矩形全等不算包含 代码: #include #include #include #include #include u...
阅读(94) 评论(0)

bzoj 3383: [Usaco2004 Open]Cave Cows 4 洞穴里的牛之四

→题目链接← 一眼最短路 但是建边是问题,n^2建边一定是不可行的 所以我们以高度为关键字排下序,然后对于每个点,只需要向两边扫,能建边就建边,直到高度相差超过2 注意:建边要建双向边 代码: #include #include #include #include #i...
阅读(93) 评论(0)

bzoj 3381: [Usaco2004 Open]Cave Cows 2 洞穴里的牛之二

→题目链接← 裸线段树 查询最小值 代码: #include #include #include using namespace std; struct node{ int l,r,Min; }tree[30000*4]; void build(int num,in...
阅读(83) 评论(0)

bzoj 3375: [Usaco2004 Mar]Paranoid Cows 发疯的奶牛

→题目链接← 最开始看到是USACO就想n^2搞,但是看到100000就虚了... 先以左端点从小到大为第一关键字,右端点从大到小为第二关键字排序 这样就会保证,当我们从扫到 i 时,如果MaxRight大于等于 i 的right,那么 i 一定是不可行的 所以如果碰到这样的状况,就令an...
阅读(91) 评论(0)

bzoj 3361: [Usaco2004 Jan]培根距离

→题目链接← 双向边! 然后就从1开始跑SPFA 最后对于每个点的dis值取max 代码: #include #include #include #include #include #include #define inf 233333333 using namesp...
阅读(101) 评论(0)

bzoj 3385: [Usaco2004 Nov]Lake Counting 数池塘

→题目链接← 从左上角开始扫,扫到一个W时就开始dfs 把经过的地方W都变成. 只要有W在周围就接着dfs 然后这么一次dfs下来就找到了一个池塘 最后统计下数量 代码: #include #include #include #include using names...
阅读(70) 评论(0)

bzoj 3386: [Usaco2004 Nov]Til the Cows Come Home 带奶牛回家

→题目链接← 终于从silver进化成gold啦! 裸的最短路居然WA了两发... 第一次没看到是无向边... 第二次没看到这道题n m居然是反的... 裸的SPFA →我的板子← 代码: #include #include #include #includ...
阅读(127) 评论(0)

bzoj 1579: [Usaco2009 Feb]Revamping Trails 道路升级

→题目链接← 一眼分层图... 然而我还是写挂了好几次qwq 代码: #include #include #include #include #include using namespace std; struct node{ int to,len; }; stru...
阅读(175) 评论(0)
    个人资料
    持之以恒
    等级:
    访问量: 5万+
    积分: 1825
    排名: 2万+
    最新评论