STL
WinJourn
Stay hungry stay foolish
展开
-
STL优先队列详解
优先队列 优先队列是一种抽象数据类型(Abstract Date Type,ADT),行为和队列类似,但是先出队的元素不是先进队列的元素,而是队列中优先级最高的元素。 STL的优先队列定义在头文件和 (队列一样),用"priority_queuepq"来声明;最基本的用法 定义:priority_queuepq;原创 2015-05-03 10:11:15 · 4856 阅读 · 1 评论 -
lower_bound upper_bound的简单实现(STL)
1. lower_bound 指的是 返回第一个 ”大于等于 value“ 的元素位置。 另一种解释是 可插入”元素值为 value“且 ”不破坏有序性“的 第一个 位置2. upper_bound 指的是 返回第一个 “大于 value ” 的元素位置; 另一种解释是 可插入”元素值为 value“且 ”不破坏有序性“的 最后一个 位置举个例子: 1 2 2 3 4 5value = 2: 则 lower_bound 返回的位置是 第 1 个位置;(从第0个位置开始)原创 2015-09-10 17:30:21 · 2502 阅读 · 0 评论 -
hdu 1027 全排列函数next_permutation运用
Ignatius and the Princess IITime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 5511 Accepted Submission(s): 3236Problem DescriptionN原创 2015-04-26 22:22:09 · 614 阅读 · 0 评论 -
ACdream1115 (数学题+stl枚举)
题目链接:http://acdream.info/problem?pid=1115题目定义了“完美的数”,初始的完美的数是1,3;对于任意完美的数 a,b 有2+a*b+2*a+2*b也是完美的数例如 a=1 ,b=1 ; 2+1*1+2*1+2*1=7 7也是完美的数;每组样例输入一个数,判断其是否为完美的数;数据范围 1-1e9;Salmon And Cat原创 2015-05-06 21:35:22 · 1031 阅读 · 2 评论 -
CodeForces 527C(set大法好)
题目链接:CodeForces 527C题目大意: 一块w*h的玻璃 对其进行n次切割 每次切割都是垂直或者水平的 输出每次切割后最大单块玻璃的面积。第一行输入 w h n , 剩下n行每行一次cut , H 代表水平切, V 代表竖直切。Input4 3 4H 2V 2V 3V 1Output8442原创 2015-10-13 11:24:37 · 1321 阅读 · 0 评论 -
FZU 2203 单纵大法好 (二分+贪心 && set)
老S最近喜欢上某个搜集战舰的游戏,这个游戏中很重要的一个内容是能编排自己的战舰,通过出击完成任务来获取资源或新的战舰。大家都说老S是一个“直男”,所以他喜欢把战舰排成一条直线。目前老S正准备完成某个新的任务--“困难级丹麦海峡”,可以将地图视为1*N的一列方格(下标为1,2,...,N),老S有K列战舰,每列战舰长度为A。老S可以将自己的战舰布局在地图中的任意位置,但是两列战舰之间至少要有一个空格子,并且显然战舰是不能重叠放置的。老S通过内部人员率先知道了敌军的炮弹将会打向那些位置,老S希望使自己的舰队尽量原创 2015-10-13 11:07:19 · 1008 阅读 · 0 评论 -
HDU1540 Tunnel Warfare(线段树+set)
题目链接:HDU 1540题意:题意是一条线上的点,D x是破坏这个点,Q x是表示查询以x所在的最长的连续的点的个数,R是恢复上一次破坏的点。最近在做线段树的专题,碰巧做到了这题,自己没有想出思路,百度出来的题解也没有认真看。。这次回来又想了一下,查询最长连续点的个数,也就是查询其左右两边最近的破坏点的坐标,然后求差就是所求个数了。直接将破坏的数储存在数组二分不就出来原创 2016-01-01 23:07:43 · 681 阅读 · 0 评论 -
ACM中好用的SET
Set 集合百度百科中的对集合特性的描述集合中的元素有三个特征:1.确定性(集合中的元素必须是确定的) 2.互异性(集合中的元素互不相同。例如:集合A={1,a},则a不能等于1) 3.无序性(集合中的元素没有先后之分。)STL中封装的set保证了元素的确定性,互异性(没用重复元素),而且神奇的是STL中的set中的元素是有序的!在STL中,卓越的前辈们在c++里为我们封装好了原创 2016-01-22 15:43:29 · 1630 阅读 · 0 评论 -
hihoCoder 1383 : The Book List
参考代码:http://blog.csdn.net/xzxxzx401/article/details/52662869编码能力,STL灵活运用,递归。用Map构造层次结构,构建了类似链表的结构,Map每一层有一个set,只储存了层次结构中倒数第二个节点后面的节点当前能用Map存的,用Map存下了,剩下的丢到了set里#include #include #i原创 2016-09-28 12:44:48 · 681 阅读 · 0 评论 -
HDU5961(bitset,暴力)
竞赛图的性质a -> b b -> c 则 a ->c多画几个样例就可以总结出了 edge[a] & edge[b] = edge[b]a连得边的集合 交上 b连的边的集合 = b连得边的集合。处理集合的交集就用bitset就好了。#includeusing namespace std;const int maxn = 2022;const int maxm = ma原创 2016-11-08 09:57:41 · 1007 阅读 · 0 评论 -
HDU 4268 Alice and Bob(lower_bound)
算法思想贪心思想, 对于每一个h从小到大的Alice的牌,我们去覆盖所有Bob.h<=Alice.h中的Bob.w最大的那个,当然w也要满足小于等于 Alice.w。每次将满足小于等于Alice.h的Bob.w加入set中,利用set的自动排序功能,及lower_bound函数来找满足的 Bob.w.之前对 lowwer_bound 及 upper_bound 的理解有所偏差。lower_bound()函数返回一个迭代器,指向键值>=key的第一个元素。upper_bound()函数返回原创 2015-09-10 15:58:35 · 663 阅读 · 0 评论 -
HDU 4288 Coder(vector + upper_bound, lower_bound)
给你一个空set ,有三种操作,add x set中加入一个元素x (题目保证set中之前没有x)del x 删除元素 x (题目保证set中一定有x)sum (set 中元素 为 a1 a2 a3...... an 求所有下标为i , 且 i%5==3 的 元素的和)你要确保输入的元素在set中是有序的。乍一看直接用set做了, 然而数据规模有 1e5,超时。比赛的时候偶然听到有人说用vector , 才来了灵感,用lower_bound找到元素的位置再进行插原创 2015-09-04 19:00:32 · 791 阅读 · 0 评论 -
hdu1026 Ignatius and the Princess I(BFS+优先队列)
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1026Ignatius and the Princess ITime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 13944原创 2015-05-03 11:12:35 · 939 阅读 · 0 评论 -
poj 3096 Surprising Strings(stl map的使用)
第二道map的应用原题链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=17090题意就是给你一个字符串,例如ZGBG,有一种称谓叫D-unique这个字符串 在D=0时, 有三个子串 ZG GB BG,因为这三个都不同,也就是unique,所以ZGGB是 0-unique;同理原创 2015-05-05 22:44:29 · 700 阅读 · 0 评论 -
hdu 1058 Humble Numbers 丑数(set,优先队列应用)
题目要求,如果一个数的素因数(因数中的素数),只有2,3,5,7,那么这个数称为丑数,输入一个数n,求第n个丑数题目给出了前20个丑数 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, 25, 27里面没有 11,因为11的 因数11是素数,而且11不属于 2,3,5,7; 所以不是丑数;我们从小到大生成丑数,原创 2015-05-05 20:26:51 · 1107 阅读 · 0 评论 -
uva156 Ananagrams (stl map的使用)
这个题目是刘汝佳的算法竞赛入门经典上的例题,为了加深印象来写题解了~题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19294输入一些单词,找出所有满足如下条件的单词:该单词不能通过字母重排,得到输入文本中的另外一个单词。在判断是否满足条件时,字母不区分大小写,但在输出的时候保留输入时的大小写,按字典序进行排原创 2015-05-05 22:14:31 · 631 阅读 · 0 评论 -
铁轨Rails UVA514(stack运用)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19641题目大意:某地有一个火车站,如图,有n节车厢从A驶向B,n节车厢编号1~n,你的任务是能否让他们按照你输入的顺序进入到B方向的铁轨(有点像詹天佑的之字形铁轨)完全符合栈的后进先出(LAST IN FIRST OUT) 例如出栈顺序54123不可原创 2015-05-16 16:37:06 · 1343 阅读 · 0 评论 -
山东省第六届ACM竞赛 Lowest Unique Price(set+map)分析,总结
题目链接:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=3252题意不难理解:每个人依次竞价投标 有三种操作 b 投标, c 撤销投标, q查询;每次查询的结果是 Lowest Unique Price 也就是 “最小的独一无二的数”,如果没有输出 “none”;比赛的时候我给队友讲完这原创 2015-05-17 15:05:48 · 1177 阅读 · 2 评论 -
hdu 1216 (vector || 打表)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1216Assistance RequiredTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 1468 Accepted原创 2015-06-16 08:28:19 · 858 阅读 · 0 评论 -
STL中的sort,和qsort的使用和区别
qsort和sort学习与比较1.qsort函数:原 型: void qsort(void *base, int nelem, int width, int (*fcmp)(const void *,const void *));功 能: 使用快速排序例程进行排序参 数:1 待排序数组首地址2 数组中待排序元素数量3 各元素的占用空间大小4 指向函数的指针,用于转载 2015-05-05 17:08:32 · 518 阅读 · 0 评论 -
poj2431 Expedition (优先队列) 挑战程序设计竞赛
题目链接:http://poj.org/problem?id=2431ExpeditionTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 9148 Accepted: 2673DescriptionA group of cows grabbed原创 2015-08-05 07:51:44 · 1008 阅读 · 0 评论 -
hdu5036(bitset求并集)
//bitset 求并集加速。i - > j , j - > k 处理出 i > k 可以直接这样,前提数组的值为0 或 1 //注意循环顺序。 for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ if(vis[j][i]){原创 2016-11-09 10:49:09 · 525 阅读 · 0 评论