栈 队列 STL...
morejarphone
这个作者很懒,什么都没留下…
展开
-
HDU 1027 STL
#include using namespace std;#define maxn 1111int a[maxn];int n, m;int main () { while (scanf ("%d%d", &n, &m) == 2) { for (int i = 0; i < n; i++) a[i] = i+1; m-原创 2015-11-22 10:14:11 · 353 阅读 · 0 评论 -
codeforces 731E (优先队列 DP)
题目链接:点击这里题意:给出n个数字,A和B两个人依次选中1−k(k≥2)1-k(k \geq2),把他们合并之后自己分数加上这些数的和。求两个人在最右策略下A最多领先B多少。当数字只剩下一个之后游戏马上结束。用dp[i][0/1]dp[i][0/1]表示前i个数字被合并,现在是A/B先手到最后游戏结束最多领先多少。故A要最大化后继状态的值,B要最小化后继状态的值,转移就很显然了: dp[i][0原创 2016-10-18 20:29:36 · 541 阅读 · 0 评论 -
HDU 5961 (bitset)
题目链接:点击这里题意:给出两个图,他们的并是竞赛图。判断这两图是不是同时是传递的。直接忽略竞赛图的性质暴力bitset。#include <bits/stdc++.h>#define Clear(x,y) memset (x,y,sizeof(x))#define FOR(a,b,c) for (int a = b; a <= c; a++)#define REP(a,b,c) for (i原创 2016-11-06 16:14:45 · 777 阅读 · 0 评论 -
codeforces 546C (队列)
题目链接:点击这里题意:给出两堆数,每次两人都取堆顶的数字比大小,大的人得到这两个数,并把对方的数先放到自己的堆底,再把自己的数放到自己的堆底。最后没有数字的人输,求出结束的步数以及赢家。因为数字最多只有10个,所以大概不同的状态有400W次。直接用双端队列模拟400W次看有没有结束即可。#include <bits/stdc++.h>using namespace std;#define ma原创 2016-10-21 11:53:53 · 452 阅读 · 0 评论 -
HDU 5695 (拓扑排序 优先队列)
Gym ClassTime Limit: 6000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 402 Accepted Submission(s): 141Problem Description众所周知,度度熊喜欢各类体育活动。原创 2016-05-21 20:27:53 · 837 阅读 · 0 评论 -
HDU 5360 (贪心 优先队列)
题意:每个人都有一个答应的区间,如果邀请他的时候答应的人数在区间内,他就会答应.求使得答应人数最多的邀请顺序.考虑这样的贪心:对于所有左区间满足的人中选择右区间最小的.这样就可以用一个优先队列维护可行的人了.最后把剩下的人放最后一起输出.#include using namespace std;#define maxn 111111struct node { int原创 2016-05-31 22:18:08 · 381 阅读 · 0 评论 -
HDU 5361 (优先队列 线段树)
In TouchTime Limit: 8000/4000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 1876 Accepted Submission(s): 510Problem DescriptionThere are n soda原创 2016-05-31 22:07:57 · 649 阅读 · 0 评论 -
HDU 2648 (map 水~)
题目链接:点击打开链接题意:每一个东西每天加一点钱,询问每天价格变化后memory的排名.用map随便搞,维护一下原来的价格和加完的价格.#include #include #include #include #include #include #include using namespace std;#define maxn 11111map mp;int n原创 2016-04-20 16:15:02 · 341 阅读 · 0 评论 -
codeforces 660D (STL map)
D. Number of Parallelogramstime limit per test4 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given n points on a pla原创 2016-04-10 16:09:25 · 323 阅读 · 0 评论 -
Codeforces 622C (vector 二分)
题目:点击打开链接题意:给出n个预处理每个数右边第一个不等于自己的下标,用向量存下每一个数字的出现的位置,然后对于询问的数字x,二分找[l,r]中第一次出现的x的位置p,如果p大于l或者不存在那么l就合理,否则判断l右边第一个不等于x的下标是不是#include using namespace std;#define maxn 1000005vector gg[max原创 2016-03-25 15:02:37 · 411 阅读 · 0 评论 -
Codeforces 653E (BFS set)
E. Bear and Forgotten Tree 2time limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputA tree is a connected undirect原创 2016-03-22 23:30:47 · 470 阅读 · 0 评论 -
codeforces 631B (STL set)
B. Print Checktime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputKris works in a large company "Blake Technolo原创 2016-03-05 23:53:16 · 612 阅读 · 0 评论 -
Codeforces 639A (set 水~)
A. Bear and Displayed Friendstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputLimak is a little polar bear.原创 2016-03-29 14:38:43 · 456 阅读 · 0 评论 -
POJ 3320 (尺取法 map)
Jessica's Reading ProblemTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 9293 Accepted: 3018DescriptionJessica's a very lovely girl wooed by lots of boy原创 2016-02-17 11:14:24 · 353 阅读 · 0 评论 -
HDU 5036 (STL之bitset)
ExplosionTime Limit: 6000/3000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 869 Accepted Submission(s): 303Problem DescriptionEveryone knows M原创 2016-02-15 17:31:18 · 458 阅读 · 0 评论 -
codeforces 601B (单调栈)
题意是给你n个数,和q个询问,每次都求出L到R中所有子区间的L(l, r)的和。首先L函数可以看成是两点之间的倾角或者俯角,在一个区间里倾角或者俯角最大的一定是两个相邻的点。证明:对于三个点i, j, k(i即(1),整理以后得到k*h[j] - k*h[i] - i*h[j] 得到,也就是j到k 的角度大于i到k的角度,这和假设产生了矛盾。当然如果(1)式的不等号后半部分分子原创 2015-11-25 17:33:13 · 440 阅读 · 0 评论 -
codeforces 602B (队列)
题意是给一个序列寻找最长的子区间使得子区间中最大元素和最小元素的差小于等于1用队列瞎搞,先把序列处理一下,把有相邻元素相同的合并,把每个元素依次放进队列里。如果队列是空,直接放进去;如果这个元素和队尾元素差大于1,就清空队列,计算一次区间长度;否则就用即将入队的元素和队次尾元素比较。(因为维护的队列里面的元素必定满足abababab型)#include using namespace原创 2015-11-25 11:08:21 · 717 阅读 · 0 评论 -
codeforces 512B (map DP)
题目链接:点击这里题意:给出一堆数字,每个数字有一个花费和长度,表示花费多少钱就可以走这样的长度。初始在坐标原点,问能够走到所有的坐标的最少花费。考虑取两个数,那么能够走到所有的点是两者gcd的倍数。所以只需要选择花费最少的数使得这些数的gcd=1。由于gcd数字比较大但是最多不会超过nlgn,所以直接用map记录每一种gcd的下标然后DP即可。#include <bits/stdc++.h>us原创 2016-10-20 21:33:06 · 385 阅读 · 0 评论