数据结构-------------
文章平均质量分 63
Spylft
这个作者很懒,什么都没留下…
展开
-
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 评论 -
Poi2010 Railway
Task: A railroad siding consists of two (dead-end) sidetracks 1 and 2. The siding is entered by track A, and left by track B (see figure below). There are cars on track A, numbered from to原创 2016-10-02 15:06:46 · 922 阅读 · 0 评论 -
POI2014Salad Bar
POI2014 Salad Bar这道题的大意就是给你一个字符串,里面只含有p和j,求一个最长的子串,使得从左边开始,p的个数一直比j多,从右边开始也一样.这道题的话,一开始想歪了,就先对每个字符,算出来以它为起点往右最多能在哪里,然后再算出来以它为起点往左最多能走到哪里,这样的话,一个满足条件的子串一定满足R[l]>=r,L[r]<=lR[l]>=r,L[r]<=l,然后按照左边小的排一下序,然后原创 2016-11-04 20:02:41 · 401 阅读 · 0 评论 -
POI2014Bricks
POI2014 Bricks正解的话是贪心,就是先把剩下最多的放到现在这个地方来,如果有多个最多的,那么就把颜色与最后一个颜色相同的取出来,不然就随便放一个.然后用堆来维护这个信息,所以正解是O(nlogn)O(nlogn)的.#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include<queu原创 2016-11-07 15:26:00 · 374 阅读 · 0 评论 -
POI2014Little Bird
首先要想到dp,那么定义dp[i]为走到第i棵树时的最少劳累值.那么dp转移的时候就要考虑到两点之间的高度大小关系,所以要分类讨论.那么这样的dp就是O(n2)O(n^2)的了.所以考虑优化,因为我们发现一个点的dp值只可能够由它的前k个来转移,所以想到使用单调队列来优化dp.然后什么样的值才是最优的呢?首先dp值小的一定更优!因为dp值只能够一个一个地发生变化,所以无论高度差如何,只要dp值小1,原创 2016-11-08 19:24:16 · 540 阅读 · 0 评论 -
POI2014Card
这道题的话,想法感觉也是很奇怪的…首先一个想法是如果有了第一个值,那么就可以贪心地去选取数字了,每次都选能选的最小的,这样肯定最优.那么我们就去确定这个数,即可以讨论而得出一段区间右端点最小是什么.我们可以看出,一段区间的左端点,要么是左边的第一个数,要么是左边的第二个数,然后对于一段没有被修改过的区间,它们定下来左端点后,右端点的最小值是固定的.然后用线段树来优化它,每次进行单点更新,区间查询,就原创 2016-11-07 18:30:37 · 529 阅读 · 0 评论 -
Codeforces Round #376 (Div. 2)
这次还好吧,总算进紫名了(25分比了3场才加上去...也是可以),而且还在这个晚上写完了所有题. 话说这次也太水了,F题和它的难度不成正比,所有题的代码都短的可以,除了WA了两次的D题. E题没看太亏了,几乎一模一样的题都做过… 好了好了开始讲题目… A:Night at the Museum Task: 给你一个转盘,以及一个字符串,一开始的转盘指向’a’,然后求若要输出此字原创 2016-10-17 07:44:17 · 632 阅读 · 5 评论 -
Codeforces Round 371 C Sonya and Problem Wihtout a Legend
Task: 给你一个长度为n的序列,每次操作能使序列中的数+1或-1,求最少的操作数,使得序列严格递增. Sample Input 5 5 4 3 2 1 Sample Output 12 Hint 1<=n<=3000Solution: 首先我们先明白一件事:我们有A[i]<A[i+1]A[i]<A[i+1],也就可以转化为A[i]−i<=A[i原创 2016-09-20 13:26:43 · 598 阅读 · 0 评论 -
Codeforces Round 371 D Animals and Puzzle
Task: 给你一张01图,以及t个询问,每个询问为(x1,y1,x2,y2),指在以(x1,y1)为左下角,以(x2,y2)为右下角的矩形中,最大的全为1的矩形的大小. Sample Input 3 4 1 1 0 1 0 1 1 0 0 1 1 0 5 1 1 2 3 2 1 3 2 3 2 3 4 1 1 3 4 1原创 2016-09-21 22:18:19 · 443 阅读 · 1 评论 -
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 评论 -
POI2014 Solar Lamps
第一件要干的事就是把它给你的坐标用它给你的两个向量表示出来,事实上这件事就够令人发狂了…所以开始解方程.我们有 {a∗x1+b∗x2=Xa∗y1+b∗y2=Y\begin{cases}a*x1+b*x2=X\\a*y1+b*y2=Y\end{cases} 解得: ⎧⎩⎨a=X∗y2−Y∗x2x1∗y2−x2∗y1b=X∗y1−Y∗x1x2∗y1−x1∗y2\begin{cases}原创 2016-11-09 21:11:12 · 550 阅读 · 0 评论