
其他 STL
文章平均质量分 65
yuhong_liu
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
The kth great number-优先队列的k维护
http://acm.hdu.edu.cn/showproblem.php?pid=4006 题意:题目会给出n个数,求第k大的数. 输入:第一行输入两个整数n 和 k 接下来有n行数据,输入的数据分为两种. 输入I 和 一个数字x 表示写入数字x 输入Q 表示进行一次询问 询问当前第k大的数是多少并输出这个数. (1= 数据范围可以用优先原创 2015-08-07 23:34:56 · 616 阅读 · 0 评论 -
cf#243-div1-A. Sereja and Swaps-暴力枚举+multiset+优先队列
http://codeforces.com/problemset/problem/425/A 题意:给你n个数,给你k(n 让你至多交换k对数,使得该序列的最大连续区间和最大 思路: n比较小,直接枚举这个最大连续区间和的两端i,j。 (n^2) 对于每次枚举,我直接把i到j的元素丢到multiset,然后把两边剩余的求到优先队列里,做k次,每次从multiset取最小的,从原创 2016-03-07 00:40:19 · 490 阅读 · 0 评论 -
IndiaHacks 2016 - Online Edition (Div. 1 + Div. 2)-B - Bear and Compressing-暴力DP
http://codeforces.com/contest/653/problem/B 给你n,q q是置换规则,每一个规则把2个字母置换成1个 要求你构造出一个长度为n的字符串,使得满足: 每次取最前两个字母进行置换,最终整个字符串能变成 一个字母a 数据太小。暴力dp一下就好。。。 初始化,dp[1][i]=1 之前先把两个字母和一个字母映射起来,原创 2016-03-31 08:22:30 · 412 阅读 · 0 评论 -
cf#345-C - Watchmen-map离散化
http://codeforces.com/contest/651/problem/C 给你n个点,要求有多少对点满足 |xi - xj| + |yi - yj|.=. 也就是 这两个点 在平行于x或y轴的直线上 x,y的范围太大 1e9,但是n只有2e5 我们把点离散化后,看遍历所有与X轴平行的直线(当然就是只看出现过的x值),看上面有多少个点,如果有X个点,显然 X原创 2016-03-07 22:18:28 · 865 阅读 · 0 评论 -
2007-2008 Winter Petrozavodsk Camp, Andrew Stankevich Contest 30-G - Pulp Fiction-贪心+优先队列
http://codeforces.com/gym/100345/problem/G 题意:两兄弟要合作写n本书 接下来有n对 ri,pi,表示这本书在第ri天被弟弟构思完成,需要花pi天被哥哥写完 哥哥写正在写A书时,可以跳去写B书,然后再回来写A书(也可以再跳去写C书) 每本书写完的时间是Ci。最ci之和最小值 思路: 如果要写n本数,那么前面不管顺序原创 2016-04-02 09:42:25 · 760 阅读 · 0 评论 -
HDU 5289-B - Assignment-贪心
题意要求选出 连续区间且区间内的最大最小值之差小于k 的区间个数, 用贪心,枚举左端点,从a[1]开始,接下来如果a[2]、a[3]合法,就放到set里,每次放之前与set的最大最小值比较,直到无法放入为止,然后计算当前set的size,即为a[1]为左端点所有符合条件的区间个数,然后就丢弃a【1】,以a[2]为左端点继续放元素进去set,之前计算a[1]的时候放进去set的元素,必然也对于a原创 2015-08-15 09:19:19 · 445 阅读 · 0 评论 -
hdu 4941 Magical Forest 离散化 +模拟 /(map应用)
非常不开心。。这么简单的题都实现错了。。。。唉。。 题意: 给你n行,m列,的矩形,k个水果 每个水果属性,x,y,v,表示在x行y列 t次查询 每次 q=1把 a,b行互换 q=2把a,b列互换 q=3查询 mp[a][b]是否存在果子,存在则输出对应的v,否则输出0 显然对于行列互换操作,只需要用一个数组记录 row[i]最终指向的行,每次交换只需要把row[i],row原创 2016-03-19 23:13:26 · 392 阅读 · 0 评论 -
codeforces#331-C - Wilbur and Points-set/贪心乱搞
http://codeforces.com/contest/596/problem/C 题意: 给n个点,保证只要点(x,y)出现了,所有x' 现在要求给n个点编号,要求满足一个条件【美丽序】: 对点(x,y),只要有x'>=x&&y'>=y ,则(x',y')的编号一定不小于点(x,y)的编号。 定义一个点的value=y-x, 并且最后给出一个w[]数组,要求你给n原创 2016-04-03 01:52:57 · 566 阅读 · 0 评论 -
cf#VK Cup 2015 - Qualification Round 2-D - Statistics of Recompressing Videos-优先队列模拟
http://codeforces.com/contest/523/problem/D k个服务器,处理n个任务,每个任务有开始时间和过程时间。直接用一个优先队列维护处理器状态即可。。nlogn #include #include #include #include #include #include #include #include #include #i原创 2016-03-24 10:51:17 · 557 阅读 · 0 评论 -
hdu-4544-湫湫系列故事——消灭兔子-贪心+stl
http://acm.hdu.edu.cn/showproblem.php?pid=4544 先排序直接贪心判断是否能杀死所有兔子 然后 按降序遍历兔子的生命值 把大于等于当前兔子生命值的箭都丢进优先队列or set 然后每次贪心选最小的即可 #include #include #include #include #include #include #include原创 2016-04-27 00:25:58 · 605 阅读 · 0 评论 -
codefocres#353-D - Tree Construction-构造
http://codeforces.com/contest/675/problem/D 题意给你一个序列,按给出的顺序,构造二叉搜索树 求最后的树里每个节点的父亲 直接set模拟,显然对于任何一个点,插入之后,其父亲必然是按大小排序后的左边或右边的元素(端点的情况特判) 所以直接在set找到左边右边的元素,然后判断 左边的右儿子是否可用,或右边的左儿子,哪边可用插哪边咯原创 2016-05-19 01:15:36 · 440 阅读 · 0 评论 -
cf#362-C. Lorenzo Von Matterhorn
http://codeforces.com/contest/697/problem/C 给你一个完全二叉树 两个操作 1: u,v,w 把u到v上的路都加w权值 2:u,v 查询u到v的权值和 uv最多1e18,log一下也就是60层左右 那么直接用map模拟即可 mp[i]表示的是 i到其父亲的这条路的权值 类似倍增算法模拟一下即可 #include原创 2016-07-17 12:50:49 · 454 阅读 · 0 评论 -
HDU 4268-Alice and Bob-贪心
典型的双关键字排序咯。。 A,B分别排好序 从大到小遍历B,每次遍历到Bi时,确保 所有第一关键字大于Bi的 Aj都要在一个set里候选,即可保证贪心正确 #include #include #include #include #include #include #include #include #include #include using nam原创 2016-07-21 20:21:26 · 297 阅读 · 0 评论 -
hdu-2385-Stock-贪心
http://acm.hdu.edu.cn/showproblem.php?pid=2385 n个股票流水,每天给你 x 份股票,每份可以在当天卖出y元,当天最多能卖z份 股票可以当天不卖留着后面卖,求最大的利润: 贪心 由于第1支股票可以在 1..n天卖, 第二支可在 2---n天卖,最后一支只能在第n天卖 所以倒着卖,先卖最后一支,如果卖完还有剩余的份额,丢原创 2016-07-19 10:00:42 · 467 阅读 · 0 评论 -
UVALive 2965-Jurassic Remains (Mitm)中途相遇法+bitmask
http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=34853 题目大意:给出N个字符串,字符串里面的字符全是大写字母,要求你在N个字符串中选出M个字符串,使这M个字符串的每个字符出现的个数为偶数,求M的最大值 把字符串压缩到一个int的26位。要求一个字符串子集中 所有字符出现个数为偶数,也就是所原创 2016-03-30 16:51:02 · 790 阅读 · 0 评论 -
VK Cup 2016 - Round 1 (Div. 2 Edition)-B - Bear and Displayed Friends-STL(维护前k大)
http://codeforces.com/contest/658/problem/B 题意 给n,k,q; 就是让你维护一个kmax的集合 q次操作 操作1 把 节点v加入kmax集合, 操作2 查询v是否在集合里 直接用multiset。就好了。。 #include #include #include #include #include #inc原创 2016-03-29 13:07:11 · 430 阅读 · 0 评论 -
cf-edu#5-D - Longest k-Good Segment-map+贪心维护
http://codeforces.com/contest/616/problem/D 直接扫一遍 当kind超过m则去掉最前面的元素,并且更新map, 否则map[元素]++ #include #include #include #include #include #include #include #include #include #include u原创 2016-01-12 01:58:46 · 465 阅读 · 0 评论 -
C. New Year Snowmen --优先队列
要求一堆雪球选出半径完全不同的三个即可做成一个雪人 看最多能做多少个雪人 先把雪球半径和对应个数统计好 打包(结构体) 进入优先队列(数量优先) 每次pop出前三个, 记录好,分别把对应雪球的个数减一(结构体) , 若个数为零,丢弃,否则继续进入队列 直到queue.size #include #include #include #include #in原创 2015-07-29 02:53:14 · 661 阅读 · 0 评论 -
A - Tea-drinking-Gym 100703A-优先队列/最小生成树
http://codeforces.com/contest/567/problem/C 题意是 n个数 找出 3个数,构成公比为k的一个 等比数列, 能找出多少 种这样的长度为3的等比数列。 数的范围是 ( - 109 ≤ ai ≤ 109) n and k (1 ≤ n, k ≤ 2·105), 看的是rank1爷的代码,后来自己敲了一遍 #include #inc原创 2015-08-06 04:10:45 · 515 阅读 · 0 评论 -
H - The Child and Toy-CodeForces 437C-水题
这题看懂了直接 输出一条边中比较小的那个点的权值即可。。。当时没想到,一股脑就当成图去贪心了,所以复杂多了 #include #include #include #include #include #include #include using namespace std; // 邻接表vector实现 struct node { int val; int原创 2015-08-05 01:38:32 · 705 阅读 · 0 评论 -
J - Erasing and Winning UVA 11491
Juliano is a fan of the TV show Erasing and Winning, where participants are selected in a draw andreceive money for taking part in the show.In the show, the presenter writes a number of N digits in a原创 2015-07-22 23:20:13 · 512 阅读 · 0 评论 -
L - Alternating Current -链表贪心
表示看不太懂题目,但我是把成对的符号去掉,判断最后的结果即可 即++ --要去掉 最后list的size为0 即可以解开 size!=0 就是不可以解开 #include #include #include #include #include #include #include #include #include using namespace std;原创 2015-07-29 01:12:43 · 455 阅读 · 0 评论 -
UVa - 11997 K Smallest Sums(优先队列多路归并)
题意是k个数组,每个数组k个元素,每个数组取一个元素,共k个数之和成为一个参考值,求出k^k个参考值中最小的k个 ... 方法就是先 对每个数组排序, 然后由于k个之和最小和 2个之和最小是一样的,那么每次处理两个数组就可以了。。。。 对数组A,B 求前k小的A[i]+B[i] 方法是不断取尽可能小的放到优先队列,然后直接取前K个就行了 第一次我的取法是原创 2015-09-04 15:51:48 · 565 阅读 · 0 评论 -
CF#310-A-Case of the Zeros and Ones-链表模拟
删除相邻的 01 直到无法继续删除,直接stl的list模拟一发就好了 #include #include #include #include #include #include #include #include #include #include using namespace std; list sb; list ::iterator it,nx; int mai原创 2015-09-28 13:52:25 · 482 阅读 · 0 评论 -
codeforces#326-C-Duff and Weight Lifting-map应用
给出n, 给出n个数,分别是a1,a2,a3,a4....an; 每次操作可以 选择k个数删掉,前提是2^a1+ 2^a5 + 2^ak (k个数 的2次方之和| 可以不可连续)得到的和,也是2的x次方 问最少删除次数; 思路:直接贪心 我们可以知道 对于 2^k、2^k,是可以看作 2^(k+1)的(因为删除他们的步数都是1) 显然我们得先排个序; 并且把每个元素映射进原创 2015-10-16 15:34:14 · 890 阅读 · 0 评论 -
Codeforces#305-C-Soldier and Cards-暴力模拟-deque
题意: 就是用个deque模拟游戏操作 。。n太小。。直接暴力就过了 #include #include #include #include #include #include #include #include #include #include using namespace std; int t1[15]; int t2[15]; deque s原创 2015-10-14 00:22:03 · 526 阅读 · 0 评论 -
cf#304-B. Soldier and Badges-暴力贪心
题意: 给n, 给n个是数, 要求最终n个数 都要 各不相同, 你可以通过对某些数(+1)这个操作 使得他们符合要求; 每次消耗一个硬币, 求达到目的的最少消耗。 思路: n只有3000.... 贪心: 先用vis数组标记掉 出现过的 把没出现过的数 插到一个set, 然后每次 对出现过1次以上的数i,在set里找到一个最接近的,把他删除,表示填掉,然后vis[i]原创 2015-10-14 00:16:23 · 652 阅读 · 0 评论 -
Codeforces Round #340 -C - Watering Flowers-暴力+set
http://codeforces.com/contest/617/problem/C 题意:给你n个点,2个圆心, 让你选择半径r1,r2使得两个圆能完整覆盖所有点,并且要求 r1*r1+r2*r2最小 思路: val1 : 点x到圆心1的距离 val2:点x到圆心2的距离 先把n个点 放入一个 按照 val2排序递减的set 把n个点按val1递增排序原创 2016-01-24 02:41:06 · 523 阅读 · 0 评论 -
CF#310-E - Case of Chocolate-(set+贪心)/(线段树+离散化)/(隐式线段树)
看了官解 是用2个线段树,一个维护横坐标,一个维护纵坐标(要离散化).......还有后面的隐式线段树还没看 后来看到另一种方法、仔细分析下题目的操作,其实很简单。 用两个set维护 横纵坐标、分别叫row(水平方向)、high(竖直) 分析两种情况: 对于(xi,n+1-xi),若是向上吃,能够影响它的操作(xj,n+1-xj)一定是右边第一个点, 若点i右边有点: 如果原创 2015-09-30 03:12:56 · 697 阅读 · 0 评论 -
cf#AIM Tech Round -B. Making a String-贪心/set
n个字母,每个最多出现A[I]次,每个字母出现次数必须是唯一的,问这个字符串最长多长 set判重。排个序,显然从最大的开始选,如果不能选,则减减后再判断,直到为零 #include #include #include #include #include #include #include #include #include #include using namesp原创 2016-02-05 23:07:40 · 388 阅读 · 0 评论 -
hdu 4864 Task 贪心+二分/set
题意: 有n台机器,m个任务,每台机器有xi,yi,每个任务也有xj,yj,当一个任务可以被处理的条件是,xj<=xi 且 yj 贪心的话,如果是遍历任务的话,那么我们希望尽可能做时间和level更高的任务,我们可以先按时间排,时间相同按level,递增排,机器也是按这个排。 然后从最大价值的任务开始遍历,对于每一个任务,找到第一个大于等于任务【i】.x的机器,然后显然就是在包括原创 2016-03-21 16:27:35 · 444 阅读 · 0 评论