STL
成龙大侠
这个作者很懒,什么都没留下…
展开
-
一维vector简单操作
#include <cstdio>#include <vector>#include <algorithm>using namespace std;void print( vector<int> a, int n );int main(){ vector<int> num; //定义一个一维数组 int number;...原创 2018-04-07 21:52:57 · 552 阅读 · 0 评论 -
What Is Your Grade? HDU - 1084
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1084解题思路:直接暴力也可以,不过暴力也是可以讲技巧的。因为原题按输入的顺序输出,所以先将需要读入的数据存两份。然后对其中一个按照题目所给规则排序。然后根据邻接表的思想将解题数5 4 3 2 1 0 的人分开存放。最后遍历没有排序的数组,到存放对应的解题数的vector中查找所在位置,判断得分。...原创 2019-04-10 20:41:23 · 262 阅读 · 0 评论 -
lower_bound 和 upper_bound 的实现
lower_bound()返回的是要查找的数的最小下标,upper_bound()则返回的是最大下标两者都是用二分查找,需要先排序。两者相减得到的则是一共有多少个要查找的数的个数减一#include <cstdio>#include <algorithm>using namespace std;const int MAXN = 1000;int n, k...原创 2019-03-27 21:23:49 · 1189 阅读 · 0 评论 -
STL string map vector set 的使用方法
不再详细介绍,直接用代码展示用法。具体的介绍建议去官方一点的网站看,我在网上搜罗了一大堆,大多都写的不全面,有的还有错误。建议去这个网站看,虽然是英文的但能看懂:http://www.cplusplus.com/reference/stl/string code:#include <cstdio>#include <algorithm>#include...原创 2019-03-20 11:26:13 · 680 阅读 · 0 评论 -
C++ STL next_permutation and prev_permutation introduction
我们经常会遇到这样的问题。example:我们有三个数 1 2 3,要求输出他们的全排列并按照字典序的顺序。 123 132 213 231 312 321通常的做法是写个函数然后递归解决。这次我来介绍两个函数 next_permutation 和 ...原创 2019-02-24 20:37:14 · 158 阅读 · 0 评论 -
Replace To Make Regular Bracket Sequence ( CodeForces )
用这道题来说明一下c++比g++有更深的堆栈先来看一下提交情况,都是一份一模一样的代码(详见下文)。GNU C++C++然后顺便说一下题目的思路。定义一个栈从左到右扫面一遍仅左括号进栈,遇到右括号就与栈顶的括号对比一下,能配对就弹出这个栈顶元素。题目:You are given string s consists of opening and closing b...原创 2018-09-18 22:19:34 · 295 阅读 · 0 评论 -
字符消除 和 substr()函数用法
首先说一下 substr() 的用法。如果我们定义一个string字符串并初始化string str = "ABCDEFG";str1 = str.substr(1, 5); 表示的是从下标1开始往后截取长度为5的字符串即str1 = "BCDEF";str2 = str.substr(3); 表示的是从下标3开始截取后面所有的字符即str2 = "DEFG";题目:小Hi...原创 2018-09-07 08:46:45 · 711 阅读 · 0 评论 -
归并排序求逆序数
归并排序是一种稳定排序。想要知道什么是归并排序要先知道就要先了解分治与递归的思想。参考我的博客:click here !!!归并排序求逆序数的思想就是,利用递归不挺的将一列数分成两部分,然后cnt加上每一个被分开的部分中的逆序数,在不停的分治的时候也进行了排序。最后求出被分开的两部分中的总逆序数。例如 2 4 3 1 先分成 2 4 和 3 1然后2 4进一步分成 2 和 4,3 1...原创 2018-09-08 21:14:25 · 795 阅读 · 0 评论 -
风格不统一如何写程序(玄学bug) STL
其实呢对我来说这是一道很的水题了, 今天用C++ 的string类型写的时候一直提交不对,也没发现那里有错误,本以为又是玄学错误呢。(有次积分赛出现超级玄学问题, 一直觉得代码没错误,前前后后提交了20几遍,全给我返回的是wrong, 赛后向学长反应时,学长看了一下我的代码,以及输出结果,我靠,居然输出了一个乱码。那么问题来了,我在本地运行的时候是完全没问题的。还是最后会长说了句可能是从pdf上复...原创 2018-09-02 18:07:42 · 672 阅读 · 0 评论 -
数字反转(升级版)落谷P1553
题目描述给定一个数,请将该数各个位上数字反转得到一个新数。这次与NOIp2011普及组第一题不同的是:这个数可以是小数,分数,百分数,整数。整数反转是将所有数位对调;小数反转是把整数部分的数反转,再将小数部分的数反转,不交换整数部分与小数部分;分数反转是把分母的数反转,再把分子的数反转,不交换分子与分母;百分数的分子一定是整数,百分数只改变数字部分。整数新数也应满足整数的常见形式,即除非给...原创 2018-09-04 22:55:11 · 314 阅读 · 0 评论 -
风格不统一如何写程序
小Hi写程序时习惯用蛇形命名法(snake case)为变量起名字,即用下划线将单词连接起来,例如:file_name、 line_number。 小Ho写程序时习惯用驼峰命名法(camel case)为变量起名字,即第一个单词首字母小写,后面单词首字母大写,例如:fileName、lineNumber。 为了风格统一,他们决定邀请公正的第三方来编写一个转换程序,可以把一种命名法的变量...原创 2018-04-12 16:11:02 · 310 阅读 · 0 评论 -
STL练习总结二
点击跳转到目标网址,密码HPUACM2018 F题有很较强的技巧性,将每一个单词拆分成所有可能的前缀,并且这些前缀每次出现其作为键对应的值就加一,当所有的单词都这样操作过后,map中就记录了所有可能的键对应的值。例如 banana会被拆分为 banan bana ban ba b.#include <bits/stdc++.h>using names...原创 2018-07-22 10:08:44 · 211 阅读 · 0 评论 -
STL练习总结
点击跳转到目标网址,密码HPUACM2018 C题就是两个集合相加,然后去除掉重复的元素。本题可以利用STL中的set来解决,将两个集合中的元素分别插入到set定义的新集合中,自动去重。程序结束时不要忘记清空,同时下面程序段里有一个最后一个数的末尾没有空格的技巧。for( int i=0; i<numa; i++ ) { scanf("%d", &nu...原创 2018-07-22 09:28:47 · 491 阅读 · 0 评论 -
STL set的基本用法
1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435363738394041424344#include <iostream> #include <set>using namespace std;...原创 2018-04-09 22:38:46 · 179 阅读 · 0 评论 -
STL map用法及其常用函数介绍
1 2 3 4 5 6 7 8 910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667...原创 2018-04-09 21:56:07 · 539 阅读 · 0 评论 -
堆栈stack的基本操作
/*栈的模板可以用数组,单链表,以及stack堆栈来实现 *//*建议电脑查看*/ #include <cstdio> #include <stack> /*堆栈*/using namespace std;void print( stack<int> a, int n );void clear( stack<int> b ); /*清空...原创 2018-04-07 21:56:24 · 2380 阅读 · 0 评论 -
队列的基本操作
#include <cstdio>#include <queue> /*队列queue头文件*/ #include <algorithm>using namespace std;void print( queue<int> a, int n ); //自定义遍历输出函数 void is_empty( queue<int> d ...原创 2018-04-07 21:54:28 · 328 阅读 · 0 评论 -
二维vector简单操作
#include <cstdio> #include <vector>#include <algorithm>using namespace std;int main(){ vector< vector<int> > arry; //写成arry(5) 可理解为设定大小5行 vector<int> d; /...原创 2018-04-07 21:49:12 · 3003 阅读 · 0 评论 -
牛客:毕业生的纪念礼物(优先队列 || STL嵌套)
题目链接:https://ac.nowcoder.com/acm/contest/948/G题意:中文题,不在描述。分析:每次优先从个数最多的三种各取一个,然后再重新找出最大三种的。优先队列设为数值越大,权值越重就好,然后每次取出对手的三个,然后各建议,如果不为0再重新放入队列。STL嵌套则是先用map读入输入,然后把map嵌套进vector种然后根据second的值重大到...原创 2019-07-27 21:02:19 · 242 阅读 · 0 评论