![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
其他 STL
文章平均质量分 62
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 · 580 阅读 · 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 · 450 阅读 · 0 评论 -
IndiaHacks 2016 - Online Edition (Div. 1 + Div. 2)-B - Bear and Compressing-暴力DP
http://codeforces.com/contest/653/problem/B给你n,qq是置换规则,每一个规则把2个字母置换成1个要求你构造出一个长度为n的字符串,使得满足:每次取最前两个字母进行置换,最终整个字符串能变成 一个字母a数据太小。暴力dp一下就好。。。初始化,dp[1][i]=1之前先把两个字母和一个字母映射起来,原创 2016-03-31 08:22:30 · 375 阅读 · 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 · 809 阅读 · 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 · 692 阅读 · 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 · 417 阅读 · 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 · 355 阅读 · 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 · 522 阅读 · 0 评论 -
cf#VK Cup 2015 - Qualification Round 2-D - Statistics of Recompressing Videos-优先队列模拟
http://codeforces.com/contest/523/problem/Dk个服务器,处理n个任务,每个任务有开始时间和过程时间。直接用一个优先队列维护处理器状态即可。。nlogn#include #include #include #include #include #include #include #include #include #i原创 2016-03-24 10:51:17 · 528 阅读 · 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 · 561 阅读 · 0 评论 -
codefocres#353-D - Tree Construction-构造
http://codeforces.com/contest/675/problem/D题意给你一个序列,按给出的顺序,构造二叉搜索树求最后的树里每个节点的父亲直接set模拟,显然对于任何一个点,插入之后,其父亲必然是按大小排序后的左边或右边的元素(端点的情况特判)所以直接在set找到左边右边的元素,然后判断 左边的右儿子是否可用,或右边的左儿子,哪边可用插哪边咯原创 2016-05-19 01:15:36 · 412 阅读 · 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 · 413 阅读 · 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 · 270 阅读 · 0 评论 -
hdu-2385-Stock-贪心
http://acm.hdu.edu.cn/showproblem.php?pid=2385n个股票流水,每天给你 x 份股票,每份可以在当天卖出y元,当天最多能卖z份股票可以当天不卖留着后面卖,求最大的利润:贪心 由于第1支股票可以在 1..n天卖, 第二支可在 2---n天卖,最后一支只能在第n天卖所以倒着卖,先卖最后一支,如果卖完还有剩余的份额,丢原创 2016-07-19 10:00:42 · 425 阅读 · 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 · 754 阅读 · 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 · 397 阅读 · 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 · 427 阅读 · 0 评论 -
C. New Year Snowmen --优先队列
要求一堆雪球选出半径完全不同的三个即可做成一个雪人 看最多能做多少个雪人先把雪球半径和对应个数统计好 打包(结构体) 进入优先队列(数量优先)每次pop出前三个,记录好,分别把对应雪球的个数减一(结构体) , 若个数为零,丢弃,否则继续进入队列直到queue.size#include #include #include #include #in原创 2015-07-29 02:53:14 · 620 阅读 · 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 · 484 阅读 · 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 · 671 阅读 · 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 · 477 阅读 · 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 · 422 阅读 · 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 · 518 阅读 · 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 · 446 阅读 · 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 · 810 阅读 · 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 · 500 阅读 · 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 · 606 阅读 · 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 · 489 阅读 · 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 · 643 阅读 · 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 · 363 阅读 · 0 评论 -
hdu 4864 Task 贪心+二分/set
题意:有n台机器,m个任务,每台机器有xi,yi,每个任务也有xj,yj,当一个任务可以被处理的条件是,xj<=xi 且 yj贪心的话,如果是遍历任务的话,那么我们希望尽可能做时间和level更高的任务,我们可以先按时间排,时间相同按level,递增排,机器也是按这个排。然后从最大价值的任务开始遍历,对于每一个任务,找到第一个大于等于任务【i】.x的机器,然后显然就是在包括原创 2016-03-21 16:27:35 · 400 阅读 · 0 评论