USACO
文章平均质量分 67
everlasting__
'-'
展开
-
bzoj 1671: [Usaco2005 Dec]Knights of Ni 骑士
题目链接题目背景:贝茜遇到了一件很麻烦的事:她无意中闯入了森林里的一座城堡,如果她想回家,就必须穿过这片由骑士们守护着的森林.为了能安全地离开,贝茜不得不按照骑士们的要求,在森林寻找一种特殊的灌木并带一棵给他们.当然,贝茜想早点离开这可怕的森林,于是她必须尽快完成骑士们给的任务,贝茜随身带着这片森林的地图,地图上的森林被放入了直角坐标系,并按x,y轴上的单位长度划分成了W×H(1≤原创 2017-07-07 14:06:10 · 471 阅读 · 0 评论 -
bzoj 2015: [Usaco2010 Feb]Chocolate Giving
→题目链接←从编号为1的点跑spfa,然后把两个点到1的距离加一起就好了大水题#include#include#include#includeusing namespace std;struct node{ int to,len; int now;};vectorv[50050];int n,m,b;bool vis[50050]={false};int原创 2017-07-22 16:32:56 · 343 阅读 · 0 评论 -
bzoj 3299: [USACO2011 Open]Corn Maze玉米迷宫 最短路
→题目链接←愚蠢的我犯了一个愚蠢的错误删了一个字符后就A了...一个非常水的最短路,每个点只能访问到一次,再次访问肯定不优所以从起点跑就好了,碰到传送点传送一下就行,只要走到了终点就是答案乱七八糟的代码:#include#include#include#include#includeusing namespace std;struct nod原创 2017-08-06 16:49:40 · 587 阅读 · 0 评论 -
bzoj 3408: [Usaco2009 Oct]Heat Wave 热浪 最短路
→题目链接←一个裸的最短路,很水的数据貌似怎么跑都行我用的SPFA...很弱的代码:#include#include#include#includeusing namespace std;struct point{ int to,len;};struct node{ int now,len;};int Min[2550];int n,m,s,原创 2017-08-07 15:53:24 · 378 阅读 · 0 评论 -
bzoj 1614: [Usaco2007 Jan]Telephone Lines架设电话线 二分+最短路
→题目链接←二分ans,小于等于ans的边的距离看作0,大于ans的看作1每次跑一下最短路,dis[n]代表有多少边是需要免费的所以如果dis[n]别忘了输出-1代码:#include#include#include#includeusing namespace std;struct node{ int to,len; int now;};v原创 2017-08-14 14:24:36 · 347 阅读 · 0 评论 -
bzoj 1632: [Usaco2007 Feb]Lilypad Pond SPFA
→题目链接←spfa的原理就是不断地找,如果找到更优的更新那个点目前的状态使它变得更优所以这个题一看就是spfa就是判断是否有更优时,需要分三个级别,每次更新的东西不一样比如碰到了添加荷叶一样时,就需要判断是否为最短路,如果路径长度还是一样,就要使路径数量+1注意:1、记录方案数的数组一定要用long long2、inf不要作死开的太小qwq代码:#in原创 2017-08-15 08:47:45 · 284 阅读 · 0 评论 -
bzoj 1711: [Usaco2007 Open]Dining吃饭 网络流
一个烂大街的题题解泛滥我来蹭点访问量+扩充博客文章由于我懒得算需要开多大数组就直接开大点然后就不管了...代码:#include#include#include#include#include #define ll long long#define inf 10000001 using namespace std; struct nod原创 2017-08-08 19:56:27 · 253 阅读 · 0 评论 -
bzoj 3403: [Usaco2009 Open]Cow Line 直线上的牛 暴力
→题目链接←非常非常的水为了方便+奇懒无比而用了deque真的非常的方便代码:#include#includeusing namespace std;dequev;int n;char c;int x,num=1;int main(){ scanf("%d\n",&n); for(int i=1; i<=n; i++){ c=getchar(原创 2017-08-07 19:55:14 · 293 阅读 · 0 评论 -
bzoj 2060: [Usaco2010 Nov]Visiting Cows 拜访奶牛
→题目链接←就是最经典的树形dp参考 没有上司的舞会#include#include#include#include #define MAXN 50050 using namespace std; int n;int dp[MAXN][2];bool f[MAXN];vectorv[MAXN]; void dfs(int x){ dp[x][1]=1原创 2017-07-23 21:22:58 · 368 阅读 · 0 评论 -
bzoj 3018: [Usaco2012 Nov]Distant Pastures
跑n*n遍的spfa每次最后取个max就好#include#include#include#includeusing namespace std;struct node{ int x,y; long long len;};int tox[4]={-1,0,1,0};int toy[4]={0,1,0,-1};int n,A,B;bool a[33][33];原创 2017-07-25 16:08:46 · 286 阅读 · 0 评论 -
bzoj 1749: [usaco2005 open]Landscaping 地形改造
→题目链接←这个题就是暴力找到山,然后每次删掉花费最小的山就好注意当你删掉一个山后有可能会使其他的山发生变化,每次重新扫一遍就好代码:#include#include#include#include#includeusing namespace std;struct hill{ int l,r; int h; int sum;};hill v[1原创 2017-07-14 09:41:52 · 443 阅读 · 0 评论 -
bzoj 2019: [Usaco2009 Nov]找工作 最长路
→题目链接←显然就是找一个最长路两个城市有路径就建一个权值为d的边如果有航线就建一个权值为d-z的边边的权值表示经过这个边可以获得多少钱最后从起点开始跑最长路就好,答案对于每个点取max有正环就是无解,跟判负环一样代码:#include #include #include #include #include #include #原创 2017-08-16 15:44:00 · 289 阅读 · 0 评论 -
bzoj 1733: [Usaco2005 feb]Secret Milking Machine 神秘的挤奶机 二分+最大流
→题目链接←二分答案,每次把边长小于mid的边放到图中,正反的边容量都为1,跑最大流然后用最大流和T判断一下,如果大于T返回true,否则false代码:#include#include#include#include#include #define ll long long#define inf 10000001 using namespace std;原创 2017-08-16 10:54:15 · 308 阅读 · 0 评论 -
bzoj 1720: [Usaco2006 Jan]Corral the Cows 奶牛围栏 二分
→题目链接←先按奶牛的横坐标排序,然后二分答案判断圈住多少奶牛暴力搞就好,N代码:#include#include#include#include#include#include#define inf 999999999using namespace std;struct point{ int x,y; friend bool operator <原创 2017-08-16 09:28:07 · 328 阅读 · 0 评论 -
bzoj 3889: [Usaco2015 Jan]Cow Routing SPFA
→题目链接←双键值最短路,SPFA代码:#include#include#include#include#define ll long long#define inf 0X3f3f3f3f3f3f3f3fllusing namespace std;struct node{ int to,len1,len2;};int s,e,m,n=0;v原创 2017-09-05 11:03:35 · 250 阅读 · 0 评论 -
bzoj 3358: [Usaco2004 Jan]洪水
→题目链接←保存每个高度有多少个如果目前剩的水的体积大于目前最矮的高度的数量,那么会使水面高度整体上升1,然后把目前的高度+1然后再判断下以前是否已经有了+1后的高度,如果有把这两堆合并,再推进优先队列直到最终高度后,只要初始高度小于等于最终高度,都加进ans最后输出 最终高度 和 ans代码:#include#include#include#in原创 2017-08-22 16:25:59 · 341 阅读 · 0 评论 -
bzoj 1624: [Usaco2008 Open] Clear And Present Danger 寻宝之路 SPFA
→题目链接←裸最短路代码:#include#include#include#include#include #define inf 90000000 using namespace std; int n,m;int a[110][110];int Min[110][110];int to[10010];queueq; int ma原创 2017-08-18 16:50:42 · 233 阅读 · 0 评论 -
bzoj 1709: [Usaco2007 Oct]Super Paintball超级弹珠
→题目链接←显然的是如果对于每个点都判断一次是否能打到所有的敌人是会TLE的所以我们可以换一种想法我们维护一个点可以打到多少敌人然后对于每个敌人,我们令所有能打到他的地方的值+1所以最后只要那个地方的值>=m,就一定是可行点代码:#include#include#include#includeusing namespace std;int原创 2017-09-04 09:20:51 · 250 阅读 · 0 评论 -
bzoj 3397: [Usaco2009 Feb]Surround the Islands 环岛篱笆
→题目链接←令人一看样例就不想做的题...题面说的很麻烦..但是仔细想一想就是问一个点到其它点距离的和的最小值用并查集将岛屿处理出来将每个岛屿看作一个点然后一边输入就能一边处理出岛屿间的距离最后暴力求和取min就好代码:#include#include#define inf 233333333using namespace std;in原创 2017-09-04 09:11:49 · 378 阅读 · 0 评论 -
bzoj 3396: [Usaco2009 Jan]Total flow 水流 网络流
→题目链接←看到题面后感觉可能有什么奇技淫巧...?但是懒得想数据辣么小直接网络流搞一搞就行了代码:#include#include#include#include#include #define ll long long#define inf 10000001 using namespace std; struct node{原创 2017-09-04 08:24:22 · 249 阅读 · 0 评论 -
bzoj 3412: [Usaco2009 Dec]Music Notes乐谱
→题目链接←维护前缀和,对于每次询问找到第一个大于它的数(也就是upper_bound)的下标,就是答案手写可以二分找用stl可以用upper_bound代码:#include#include#includeusing namespace std;int n,m;int sum[50050];int main(){ scanf("%d%d",原创 2017-08-25 14:15:54 · 415 阅读 · 0 评论 -
bzoj 1607: [Usaco2008 Dec]Patting Heads 轻拍牛头
→题目链接←纯暴力搞显然是过不了的我们记录下每个数的数量,然后算出这个数对其他的数的贡献最后输出时要减一,因为它算贡献时是算了自己的代码:#include#include#include#include#define inf 999999999#define ll long longusing namespace std;int n;int num原创 2017-08-15 09:23:19 · 290 阅读 · 0 评论 -
BZOJ1651--[Usaco2006 Feb]Stall Reservations 专用牛棚
1651: [Usaco2006 Feb]Stall Reservations 专用牛棚Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 849 Solved: 484[Submit][Status][Discuss]DescriptionOh those picky N (1 <= N <= 50,000) cows! T原创 2017-01-17 14:15:46 · 1015 阅读 · 0 评论 -
bzoj 4096: [Usaco2013 dec]Milk Scheduling 贪心
→题目链接←从后往前扫deadline,每次找到一个符合条件并且贡献最大的,就算进答案代码:#include#include#include#include#include#includeusing namespace std;struct node{ int g,d; friend bool operator < (node a,node b){ i原创 2017-08-14 11:46:13 · 414 阅读 · 0 评论 -
bzoj 3016: [Usaco2012 Nov]Clumsy Cows 栈
→题目链接←说是栈,其实就用一个变量记录下就好,我用的sum碰到(就++,碰到)就--当sum为负时一定是不合法的,这时候一定要改一下,所以ans++然后令sum等于1,因为把一个不合法的)改成了(最后如果sum大于0,就说明还要改sum/2次所以最后ans=ans+sum/2代码:#include#include#include#includ原创 2017-08-14 09:24:10 · 379 阅读 · 0 评论 -
bzoj 1649: [Usaco2006 Dec]Cow Roller Coaster 背包dp
→题目链接←dp[i][j]表示铁轨长度为i,花费为j时有趣指数最大值代码:#include#include#include#include#include#include#define inf 999999999#define ll long longusing namespace std;struct node{ int s,e,w,c;}a[1原创 2017-08-15 10:06:49 · 258 阅读 · 0 评论 -
bzoj 1731: [Usaco2005 dec]Layout 排队布局 差分约束
→题目链接←裸的差分约束对于两个有好感的牛,addedge(i,j,len);对于两个反感的牛,addedge(j,i,-len);最后还要addedge(i,i-1,0);之后跑最短路就行代码:#include#include#include#include#include#include#define inf 999999999using原创 2017-08-16 10:04:25 · 287 阅读 · 0 评论 -
bzoj 1669: [Usaco2006 Oct]Hungry Cows饥饿的奶牛 暴力
→题目链接←最长上升子序列暴力搞就能过,并且才140ms数据太水了。。。代码:#include#include#include#include#include#include#define inf 999999999#define ll long longusing namespace std;int n;int a[5050];int dp原创 2017-08-15 10:39:17 · 333 阅读 · 0 评论 -
bzoj 1687: [Usaco2005 Open]Navigating the City 城市交通 bfs
→题目链接←bfs时,对于每个点,显然最多只能访问一次,并且只要访问到了就一定是最短路径记录一下到达每个点的步数,最后从终点每次找周围步数比它小1的点,就可以找到我们需要的那个路径已经知道路径了,反着搞回去就可以了,每次判断一下行走方向是否改变就好懒得反着记录答案,所以用了个双向队列,真是方便啊代码:#include#include#include#inclu原创 2017-08-15 16:37:11 · 254 阅读 · 0 评论 -
bzoj 3310: [Usaco2013 Nov]Empty Stalls
→题目链接←看那个著名的“USACO被虐记”说的是按照题意搞一搞就好了但是无比之弱的我还是T了两发按照题意暴力搞什么的都是骗人的qwq不能每次都暴力处理没个牛先把所有的牛都安放在他喜欢的位置上然后从头到尾最多扫两边就好了因为保证牛的数量至多为n-1每次把多的牛往♂后♂搞一个很弱的代码:#include#includeusing name原创 2017-08-04 22:15:50 · 455 阅读 · 0 评论