
STL
qq_38232157
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
CH_0802 占卜DIY(算法竞赛进阶指南,stl,模拟)
算法竞赛进阶指南48页,stl,模拟 本题要点: 1、用 deque 来存放每一对扑克, 因为 deque 可以两头放数据。 用数字,表示扑克的大小,deque 2、4 条命,剩下的就是模拟运行过程。 3、题目要求的是,每堆牌, 4张都要正面朝上,因此,用数组 turn[i] 来存放 第 i 堆正面朝上的次数。 #include <cstdio> #include <cstring> #include <iostream> #include <vector>原创 2020-09-12 14:48:58 · 193 阅读 · 0 评论 -
CodeForces-1141D Colored Boots(stl, 水题)
stl, 水题 题目意思: 两条字符串,长度都是n。 现在把两个相同的字符配对在一起,其中 ‘?’ 可以配对任意字符。 问最多可以配对多少对字符对,要求写出任意 一组配对方式。 本题要点: 1、用 vector 来存每一个字符在 字符串出现的下标。 2、用 vector<pair<int, int> > ans; 来存每一组配对。 3、配对策略: 先把完全配对的处理了; 再处理第1 条字符串的 ‘?’ 和第 2 条字符串剩下的非 ‘?’ 字符, 同理处理第 1条字符串的 ‘?‘和原创 2020-09-11 20:22:17 · 105 阅读 · 0 评论 -
洛谷 P1003 铺地毯(模拟,stl,水题)
模拟,stl,水题 本题要点: 1、定义长方形ret, 左下角(x1, y1), 右上角(x2, y2); 对于要查找的坐标 (x, y) 暴力判断某个长方形是否与之有交集。 2、定义集合 set s1, s2, 分别存放 某个长方形 的横坐标范围(x1, x2) 与 x 有交集, 纵坐标 (y1, y2) 与 y 是否有交集。 注意,集合 s1 和 s2 存的是 长方形的下标。 3、判断连个集合交集中,下标最大的(也就是放在最上面的长方形) #include <cstdio> #includ原创 2020-09-11 17:59:32 · 182 阅读 · 0 评论 -
Codeforces 622C Not Equal on a Segment (stl, 二分查找)
stl, 二分查找 题目意思: 有一个整数数组 a(元素最多 n <= 2e5), 有 m 次查询 ,每次给出三个数 L, R, p; 要求在 坐标[L, R] 范围内,找到一个下标 k ,使得 a[k] != p 。每次输出k, 如果找不到,就输出 -1; 本题要点: 1、 vector v[MaxN]; 用 vector 数组a的每一个数 a[i] 在数组a中的下标。 v[a[i]].push_back(i); 然后 在 v[a[i]] 里面,存的所有下标是从小到大排序的。 有序后就可以二分了。原创 2020-09-07 17:00:30 · 123 阅读 · 0 评论 -
CodeForces-1287B Hyperset(stl)
stl 题目意思: 有 n个字符串,每个字符串长度 为k。 每个字符 只有三种形式 ‘E’, ‘T’, ‘S’。 现在问, 从 n 个字符串,选出三个, 使得这三个字符串满足以下条件: 相同位置的字符,要么相等,要么互补相等。 比如这三个字符串,“SETT”, “TEST”, “EEET”, 每个字符串都有4位。 第 0 位, 互补相等 第 1 位, 相等, 都是 ‘E’ 第 2 位, 互补相等 第 3 位, 相等, 都是 ‘T’ 本题要点: 1、首先,从 n个字符串选出两个 字符串,第三个字符串是唯一确定原创 2020-09-07 15:03:09 · 190 阅读 · 0 评论 -
HOJ 1276 士兵队列训练问题(stl, 水题)
stl, 水题 本题要点: 1、用 list 模拟即可。 2、题目可能的歧义的地方: 有两种选法, 选法1:每2个出列一个, 选法2:每3个出列一个。 结束条件,每完成一种选法后,如果剩下的数 <= 3, 则结束。 可能歧义的理解: 执行某种选法,执行过程中(还没结束), 当前的数的数量 <= 3, 此时就结束了。 #include <cstdio> #include <cstring> #include <iostream> #include <lis原创 2020-09-02 19:33:17 · 149 阅读 · 0 评论 -
UVA 246 10-20-30(算法竞赛入门经典,模拟,stl)
算法竞赛入门经典179页,模拟,stl 题目意思: 给52张的扑克堆,先从左往右发7张牌,之后连续不断从左往右发7张牌,如果有牌堆形成了以下3种情况(按顺序判断): 1、头两张+尾一张和为10或20或30 2、头一张+尾两张和为10或20或30 3、尾三张和为10或20或30 就把这三张牌拿走,放到总牌堆底(这步要不断执行直到不再满足条件或牌堆没了) 如果有一个牌堆因为这个操作被取完了,那么以后将不在这个位置发牌。 如果最后7个牌堆都可以消掉,那么赢,总牌堆用完,那么输,否则平(即不断循环) 问最后的输赢平原创 2020-09-02 10:40:08 · 161 阅读 · 0 评论 -
UVA 12504 Updating a Dictionary(算法竞赛入门经典,stl)
算法竞赛入门经典,stl 本题要点: 1、处理每一条字符串的时候,使用 字符串流stringstream 来处理,先把原来的字符串 中的字符 ‘{’, ‘}’, ‘,’ 替换为 空格 ’ ', 然后就好处理了。 2、使用 map<string, string> 来记录每一条字符串中对应 的 key 和 value 3、寻找第二天字符串新 增加的, 删除的, 修改的字符串,各自用一个 set 来存, 寻找一个 map 中,是否存在字符串 str , 用find函数。 #include<bi原创 2020-08-30 22:56:40 · 133 阅读 · 0 评论 -
UVA 12100 Printer Queue(算法竞赛入门经典,stl, 优先级队列)
算法竞赛入门经典,stl, 优先级队列 题目意思: 一台打印机,有一个打印序列,表示各个打印任务的优先级。然后,每次要打印当前任务时候,看看队列中 后面是否有任务的优先级更紧急,如有,就把当前的任务加入到队列的末尾。否则,打印当前的队列。 本题要点: 1、使用 队列 queue ,和 priority_queue 来模拟。用数组 prio_num[i] 表示优先级为i的有多少个 队列 queue 存放的是各个打印任务,priority_queue 存放的是所有的优先级, 然后堆顶 top 存放的都是最大的优原创 2020-08-30 18:41:19 · 219 阅读 · 0 评论 -
HOJ 1873 看病要排队(优先级队列 priority_queue, 巨水)
优先级队列 priority_queue, 巨水 本题要点: 1、定义一个结构体 person 来描述病人的信息, int enter_id; //进场顺序 int priority; //优先级 重写运算符< , 注意,先按 优先级从小到大,在按进场顺序从大到小。 2、3个医生,每个医生前面都有一条队列。 模拟医生看病顺序。 #include <cstdio> #include <cstring> #include <iostream> #include <原创 2020-08-30 18:37:31 · 169 阅读 · 0 评论 -
HOJ 1702 ACboy needs your help again!(stack 和 queue,巨水)
stack 和 queue,巨水 本题要点: 1、直接用stl的 stack 和 queue来模拟即可 #include <cstdio> #include <cstring> #include <iostream> #include <queue> #include <stack> using namespace std; int T, n, flag; char cmd[10]; void solve(bool flag) { queue&原创 2020-08-30 18:35:47 · 128 阅读 · 0 评论 -
HOJ 4841 圆桌问题(stl, 巨水)
stl, 巨水 本题要点: 1、用 vector 来模拟约瑟夫问题 2、注意输出格式,每50个字母就换行。每两个例子之间,有空行。 #include <cstdio> #include <vector> #include <cstring> using namespace std; const int MaxN = 33000; bool vis[MaxN]; int n, m; void solve() { vector<int> v; memset(原创 2020-08-30 18:34:14 · 130 阅读 · 0 评论 -
HOJ 4585 Shaolin(map, 迭代器)
map 的使用 题目意思:少林的和尚有两个属性,一个是id号,一个是战斗力。 一开始少林只有方丈,方丈 id = 1, 战斗力 = 10^9. 后来又很多和尚加入了少林,每个和尚都有一个唯一的id号,和一定的战斗力(战斗力可以相等)。 和尚是一个一个地加入少林的。加入的时候,必须已经加入少林的和尚中挑选一名和尚进行比武。 被挑选的和尚,条件是其 战斗力 和 新加入少林的和尚 的战斗力差值最小。 题目给出一个和尚的加入序列(id号,战斗力), 要求输出每次比武的老和尚 的 战斗力。 本题要点: 1、map 存原创 2020-08-19 23:33:50 · 121 阅读 · 0 评论 -
POJ 2028 Web Navigation (STL 水题)
题目意思: 模拟浏览器, 前进 ,后退,访问新的网页等功能。每一个命令,都要显示当前的网址。 注意: 1、 STL 水题, 用两个 vector 或者 stack 模拟即可 2、 vector v1, v2; v1 存放的是当前以及之前的 web(每次当前的网页 web 都要放在 v1 的最后一个位置) v2 存放的是 当前页面之后的 web #include <cstdio> #in...原创 2020-02-04 23:04:30 · 121 阅读 · 0 评论 -
POJ 3297 Open Source STL
题目意思: 有很多个项目(大写字母表示), 每个项目有很多学生报名,但是有效的报名是有规矩的。 如果有在多个项目下留名的,则此人无效;若一人在一项目下重复留名,只记一次。 题目最后要求输出,每个项目的项目名,以及有效的学生报名的人数。 本题要点: 1、这里,就是用map 暴力计算筛除 在多个项目报名的学生 2、最后输出结果,先按项目报名的学生人数从高到低,(如果相同)则按项目的字典序输出 #inc...原创 2020-02-03 16:11:30 · 194 阅读 · 0 评论