USACO
文章平均质量分 53
曹老师阿
这个作者很懒,什么都没留下…
展开
-
[USACO13OPEN]What's Up With Gravityp【最短路 / SPFA】
ProLuogu2208Sol做这道题把我给做颓废了,也做气了说实话,一开始我连题目都没弄明白,正好教练不在,而且就我一个人在机房,于是打算看题解把这道题的意思给看明白,但是题解看了半天,发现洛谷上三篇题解的脑洞真的无语,题解不好好写,一句话带过,但你最起码坐标系都不太一样得说一下吧,唉。题解里面的三篇废话了半天,都说的搜索但都没说明白,我们都知道考得搜索,你只做对了细节都不提的,...原创 2018-08-26 14:19:00 · 174 阅读 · 0 评论 -
[USACO14OPEN]Odometer【数位DP】
ProLuogu3107Sol哇哇哇,怎么办,完全不会数位DP了!!!今晚补坑。设fi,und,k,is0fi,und,k,is0f_{i,und,k,is0},表示到第iii位,undundund为前面的数是否为最大值,kkk为相同数字的个数,is0is0is0是有没有前导零。引用来自QwQ,侵删自然,可以枚举添加第i+1位数字,设为next。如果und = fa...原创 2018-08-25 14:52:02 · 327 阅读 · 0 评论 -
[USACO13NOV]Farmer John has no Large Brown Cow【状压 / 模拟】
ProLuogu3087Sol哇哇哇,昨晚调了一个小时没调出来,今天早上调了一会就出来了坑点不算很多,只是我比较粗心……拿到题,一眼肯定想到和排列组合有关的知识,其实用到的也不是太多,首先对于单词的存储,我们想方设法的把每一行和每一列的单词都分别存下来,以后都会调用到的。然后预处理出第iii列第jjj行后面有多少种可能性放到qcqcqc数组中,递推公式:qci,j=qc...原创 2018-08-28 08:37:42 · 368 阅读 · 0 评论 -
[USACO13OPEN]Luxury River Cruise【模拟】
ProLuogu3083Sol第一次做的时候没读懂题意,后来以为题目中的数据一定构成一个环,导致WAWAWA。其实不一定全部构成一个环,但是肯定是有环的,否则kkk这么大的取值范围难道去枚举???先处理出环来,借助visvisvis数组来表示这个环是从哪里开始哪里结束的。然后借助一个类似邻接表的东东,更新答案。对于这么大的kkk,第一感觉就是取模啦,取模之前一定要减去前面不是环的部...原创 2018-08-27 21:24:34 · 193 阅读 · 0 评论 -
[USACO13JAN]Painting the Fence【扫描线】
ProLuogu2205Sol表示自己独立想不到这个解法……所谓扫描线,就是不断地移动,移动到一条线段的左端点时+1+1+1,移动到右端点时−1−1-1。我们用nownownow表示覆盖的有多少条线段,把每一个区间按照坐标排好序之后,如果发现满足我们的条件,就直接加上两个点之间的点的数量。Code#include<iostream>#include&l...原创 2018-08-27 21:15:38 · 677 阅读 · 0 评论 -
[USACO13JAN]Square Overlap【模拟】
ProLuogu2202Sol这个题没什么技巧,跟着题目做就能过,主要是式子推的比较麻烦。两个地方需要推式子来算,就是判断是否重叠和计算重叠面积的时候。我们按照横坐标排序,每一次只取出可能与该点有重叠的矩形(左边界比当前矩形的右边界小的矩形),确定了横坐标再确定纵坐标,纵坐标分两种情况:右上方和右下方。自己根据两种情况手推出式子来,就能求解了。Code#includ...原创 2018-08-27 16:26:45 · 192 阅读 · 0 评论 -
[USACO13JAN]Party Invitations【模拟】
ProLuogu3068Sol这是一篇需要好多容器的题解:vectorvectorvector queuequeuequeue setsetset。我们用vectorvectorvector存下与iii有关的集合是多少,用setsetset存下每一个集合,用queuequeuequeue存下被邀请的奶牛。第一次就是111入队,然后循环vectorvectorvector,把循环...原创 2018-08-27 16:17:43 · 249 阅读 · 0 评论 -
[USACO13FEB]Perimeter【DFS / 深搜】
ProLuogu3072Sol这题的话,我就把我的想做当做反例给说一下。错误想法:很容易的发现,一个不规则的图形,我们可以通过转换为规则的矩形来求周长,可以平移一些边来求得,但是存在反例。如图,蓝色为草堆。如果我们按照边平移转换为规则的矩形求得话,答案就是161616,但我们会发现,那块空白的区域的两条边没有算进去,所以正确答案应该是181818。正解:既然只有一个...原创 2018-08-27 10:26:05 · 478 阅读 · 1 评论 -
[USACO13FEB]Tractor【二分 + BFS】
ProLuogu3073Sol好水的一道题啊……直接二分答案就可以过,不需要并查集的,二分加广搜,时间复杂度是O(n^2 logM),能过的。读完题,我们很容易的就能知道,答案满足单调性,也就是说,如果mid能够到达一半以上,那么>mid的所有的数都可以达到一半以上,于是就会有一个临界值是达到和达不到之间的,这个值就是我们最终的答案。经分析得,本题满足二分条件,可以二分。...原创 2018-08-27 10:17:27 · 264 阅读 · 0 评论 -
[USACO13FEB]Milk Scheduling【拓扑序】
ProLuogu3074Sol好水的一道拓扑题……第一次打的时候可以说是随便打的……(逃。样例过了就交了,也没检查, 结果606060分,xswlxswlxswl。改了改部分,加了点细节,就ACACAC了,总共耗时151515分钟……(好长)看到题目中存在先后关系,考虑拓扑,这样题目基本上很简单了。我们比平常的拓扑多维护了一个到目前为止已经的花费,因为这个是要更新答案的,所以,...原创 2018-08-26 21:19:52 · 306 阅读 · 0 评论 -
[USACO14OPEN]Fair Photography【前缀和】
ProLuogu3105Sol先考虑不修改的情况,把0看成-1,(好像差分),sumsumsum为前缀和,lastlastlast为sumsumsum头牛第一次出现的位置。以下引自黄学长(@hzwer)经典题。。。把0看成-1如果不考虑修改那么用last[x]记录前缀和为x的第一个位置然后扫一遍修改的处理,设当前位置pos,前缀和为x,则pos-last[x],...原创 2018-08-26 19:56:13 · 837 阅读 · 0 评论 -
[USACO13MAR]Poker Hands【贪心】
ProLuogu3078Sol既然是道水题,就把代码写的漂亮一点(逃重题:Luogu1969(看到这两个题的题解中有一篇一模一样的……)可能在USACOUSACOUSACO这里翻译的不是太好,可以去看重题的题意。每次删除肯定是一个区间删除,所以有人打线段树神马(比如xy大爷),其实可以用贪心来写,贪心策略是,如果后面的高度比现在存的高度要高,答案就加上高出来的那一块,更新存...原创 2018-08-26 19:44:27 · 399 阅读 · 0 评论 -
[USACO13MAR]Farm Painting【枚举】
ProLuogu3079Sol第一次打的时候,我认为是比较接近正解的,虽然正解是枚举吧,但是我感觉优化的一样啊!嗯,只是感觉。其实不然。因为我把很多可行的方案给剪下去了,所以答案就不一样了。正解:排序是肯定的,那么,对于排序后的每一个矩形来说,能判断另一个矩形是否在该矩形之内,可以先根据左下角点的横坐标确定一个区间,然后再在这个区间里面去枚举每一个矩形,判断一下是否可以就好。...原创 2018-08-26 19:36:12 · 187 阅读 · 0 评论 -
[USACO13NOV]Crowded Cows【暴力枚举】
ProLuogu3088Sol把所有牛的身高按照高度排序方便剪枝。从大到小枚举,如果枚举的这个点满足在范围内且是它的二倍的话,flagflagflag标记一下,记住一定要两个标记,因为范围是两边的,只有两个都满足,这头牛才是满足条件的。剪枝就是,因为我们是按照高度从大到小排序的,所以如果当前枚举到的这头牛不满足条件,后面的肯定不能是这头牛的二倍,这样就把后面多余的枚举给省去。...原创 2018-08-26 14:30:35 · 311 阅读 · 0 评论 -
[USACO13OPEN]Fuel Economy【贪心】
ProLuogu2209Sol贪心题。对于每一个加油站,我们可以根据这个加油站的坐标来确定如果在路过这个加油站之后加满油,最远可以到哪,而我们在求最远可以到哪的时候也可以求出路过的这些加油站中价钱最低的那个。如果存在价钱最低的,并且不是我们当前在的这个加油站的话,我们就花钱买正好能到达最便宜的加油站的油。但如果我们就在最便宜的地方,那么我们在这里加满油,到下一个最便宜的位置。这...原创 2018-08-26 14:26:19 · 421 阅读 · 0 评论 -
[USACO12OPEN]Unlocking Block【BFS / 广搜】
ProLuogu3053Sol真的只是一个BFSBFSBFS!!!一个氧气都救不了的程序(快读+快写还TLETLETLE了一个点)大体思路:对于每一种状态,我们枚举三个模块是否可以向左向右向上向下移动,如果可以移动,入队,继续搜索,队列中存整张图。处理方法:对于队列中的图,不需要每一个点都存储。在输入的时候,我们可以根据点之间的相对位置求出这个模块的形状,存起来,这样队列中只需...原创 2018-09-05 16:29:44 · 323 阅读 · 0 评论