usaco
文章平均质量分 74
Spylft
这个作者很懒,什么都没留下…
展开
-
USACO 2012 March Gold Large Banner
Bessie is returning from a long trip abroad to the Isle of Guernsey, andFarmer John wants to mount a nice “Welcome Home” banner for her arrival. Farmer John’s field has integer dimensions M x N (1 <=原创 2016-09-13 16:42:15 · 622 阅读 · 0 评论 -
USACO2014Open Gold Cow Optics
Task: Farmer John’s cows would like to host a dance party in their barn, complete with a laser light show. Unfortunately, the only working laser they have found is located far away from the b原创 2016-09-19 14:35:19 · 930 阅读 · 0 评论 -
USACO2014Open Gold Fair Photography
Task: FJ’s N cows (1 <= N <= 100,000) are standing at various positions along a long one-dimensional fence. The ith cow is standing at position x_i (an integer in the range 0…1,000,000,000) a原创 2016-09-19 14:32:02 · 1063 阅读 · 0 评论 -
USACO2014Open Silver Fair Photography
首先我们有一个前缀和的思想,就是说我们定义一个sum为1到n的和,则当sum[i]==sum[j]时(i<=j),i到j的奶牛中黑白奶牛数相同.而既然我们能将白奶牛变成黑奶牛,那么只要求一段最长的连续序列,使白奶牛数量多于黑奶牛就行了,但有一点要保证,就是说奶牛数量要是偶数.那么我们不妨将白奶牛设为1,黑奶牛设为-1,这样,一段合法的区间就是sum[j]-sum[i-1]>=0(i<=j&&(j-i原创 2016-09-19 14:14:03 · 491 阅读 · 0 评论 -
USACO2014Open Silver Odometer
Task: Farmer John’s cows are on a road trip! The odometer on their car displays an integer mileage value, starting at X (100 <= X <= 10^18) miles at the beginning of their trip and ending at原创 2016-09-19 14:20:14 · 860 阅读 · 0 评论 -
USACO2014Open Silver Dueling GPSs
Task: Farmer John has recently purchased a new car online, but in his haste he accidentally clicked the “Submit” button twice when selecting extra features for the car, and as a result the ca原创 2016-09-19 14:17:32 · 537 阅读 · 0 评论 -
USACO 2006 Mar SkiLift
首先定义dp[i]为从1到i 最小的柱子数(i 也必须有柱子),我们还是用刷表法……(根本不会填表)dp[i] 可以刷到的区域为[i+1,i+l],而且也要满足题意,即缆线不能触碰山,即Hi与Hi+j连线不能与山接触,所以我们在向前for的同时记录现在需要的最小斜率(有坑),然后判断此时斜率是否大于这个斜率就好了.之前说斜率有坑是因为斜率的范围是[-1e9,1e9],然而又会有原创 2016-09-01 15:32:55 · 422 阅读 · 0 评论 -
USACO 2002 Feb CowCycling
定义dp[i][j][k]为还剩i头牛,跑了j圈,第k分钟,此时领头牛的最大电力,然后用刷表法dp[i][j][k]可以去转移dp[i][j+l][k+1],dp[i-1][j+l][k+1](l然后当j+l>=s时,输出i+1就行了#include#includeint dp[25][105][105];void check(int &x,int y){ i原创 2016-09-01 15:31:54 · 775 阅读 · 0 评论 -
USACO 2006 Dec TheFewestCoins
既然我们有了有的钱和张数,那么就可以预处理出到达每一个钱数的最小钱的张数(这里可以用二进制来优化,使复杂度从O(NCT)降到O(NTlogC)),然后再去处理老板的钱数所需最少张数(这里是一个完全背包,复杂度O(NT),那么答案就是min(dpC[k]+dpB[k-T]),(k>=T),总复杂度为O(NTlogC)#include#include#include#include#def原创 2016-09-01 15:27:26 · 513 阅读 · 0 评论 -
USACO 2009 Feb StockMarket
一只股票在A天买入,B天卖出,赚取C元.相当于在A天买入,A+1天卖出,再买入,再在后一天卖出......一直到B天.即可以对于一支股票只考虑它今天买入明天卖出的收益.那么我们定义dp[i]为这一天用i元钱可以得到的最大钱数,在每一天对每一件物品做一次完全背包,就能够得到那一天的dp数组.一天过后让m=dp[m],一直转移到最后一天就可以了.#includeint co[11][55],s,原创 2016-09-01 15:28:52 · 350 阅读 · 0 评论 -
USACO 2009 Mar CleaningUp
首先我们可以想到O(N^2)的做法:由于dp方程为dp[i]=min(dp[j]+cost[i][j]) (cost[i][j]为i到j+1间不同的食物的数量的平方,可以在向前 for 时同时计算)然后我们可以看出,dp数组是递增的,那么在一段没有出现新元素的时候,一定取最前面的来转移.那么我们就存一个b,c, b[j] 表示使从i 开始前面颜色数而且当颜色数多于sqrt(原创 2016-09-01 15:30:36 · 507 阅读 · 0 评论 -
USACO 2009 Mar CowFrisbeeTeam
既然是求和为F的倍数的方案数,我们定义dp[i][j]为第j 头牛时和为i 的方案数,这是很基础的,我们又很容易得到若使i 模上F,答案并不会有区别,我们就将所有数模上F,同时得到的和也模上F,那么最多就只有1000种和的可能性[0,F-1].然后就是很平常的DP了.(这么简单的题目连Chongkan也写得出来吧……)#include#include#define M 2005原创 2016-09-01 15:34:23 · 436 阅读 · 0 评论 -
USACO 2009 Dec Bobsledding
先把点按T排个序,再预处理一下,就是如果前一个点的速度减去与前一个点的距离都比这一个点的速度大,则将前一个点的速度改为这一个点的速度+两点距离.预处理完之后,我们有在上一个点的速度和下一个点的速度,先让他们两个速度一样,然后剩下l的时间,除以2加上现在速度v,更新一下答案就好.所以O(N)扫一遍就好了#include#include#include#include#原创 2016-09-01 15:35:13 · 653 阅读 · 0 评论 -
USACO 2009 Open SkiLessons
我们定义dp[i][j]为当能力为i,时间为j时滑过的最多的次数(也是个很显然的定义嘛)初值为dp[1][0]=0,然后对于每个时间,有上课,滑雪,看小说三个方法,相应的搞一下就好了.把课程捆起来放到vector里,滑雪的时间,我们可以得到一个在能力为i时,花的最少时间Ski[i](当然越少越好)就是以下代码了.#include#include#include原创 2016-09-01 16:15:38 · 296 阅读 · 0 评论 -
USACO2014Open Gold Code Breaking
Task: The cows keep getting in trouble by taking rides on Farmer John’s tractor, so he has hidden the keys to the tractor in a fancy new safe in his office. Undeterred, the cows have vowed to原创 2016-09-19 14:37:39 · 915 阅读 · 0 评论