stl
l
每天都要吃肉肉(●'◡'●)
绝不妄自菲薄
展开
-
【2015】优先队列的实现(没有思路。。)
题目描述 ADD N P:往队列里加入id为N的优先级为P的任务 NEXT:输出下一个最高优先级的任务的id,如果优先级相同输出id小的任务,若队列中没有任务输出-1 REMOVE N:移除id为N的任务 COUNT:输出队列中的任务数量 思路 用结构体数组充当优先级队列,记录队首和队尾的位置。 ADD()先将输入的结构体加入数组中,即挂在队尾。再按优先级大小排序,优先级大的放在队头,若优先级相等,按ID大小排序,ID小得结构体靠近队头。 NEXT()输入队头结构体的ID。 #inc..原创 2022-03-11 22:25:44 · 140 阅读 · 0 评论 -
【2013】字符串匹配
问题描述: 对于主串M和模式串P,找到P在M中出现的所有子串的第一个字符在P中的位置。P中第一个字符所在的位置为0。首行的数字表示有多少组字符串。 样例输入: 输入: 2 ababababa ababa aaa aa 输出: 0 2 4 0 1 思路: 从头在m中匹配p,找到匹配的第一个字符串pos,继续从pos+1开始下一次匹配 string知识点: str.find(str1), 当str1是str的子串时,返回其在str中第一次出现的位置;如果不是,返回string::.原创 2022-03-11 22:18:44 · 164 阅读 · 0 评论 -
【2016】字符串的哈夫曼编码长度(优先队列)(没思路)
优先队列priority_queue知识点总结: 只能用top()访问元素,常用函数有top/push/pop/empty/size 优先级设置 思路: 字符出现的频率则为其权值 哈夫曼树的编码长度等于各个叶节点权值与路径长度乘积之和,同时这个值等于非叶节点之和 #include<iostream> #include<functional> //支持greater #include<string> #include<queue> #incl..原创 2022-03-08 21:07:34 · 227 阅读 · 0 评论 -
【2016】后缀表达式求值(栈)(简单)
#include<iostream> #include<stack> #include<string> using namespace std; int main() { string str; stack<int> s; cin >> str; for (int i = 0; i < str.length(); i++) { if (str[i] >= '0'&&str[i] <= '9'...原创 2022-03-08 18:07:42 · 91 阅读 · 0 评论 -
【2018】求众数(map)
题目: 众数就是一个序列中出现次数最多的数字。 如果不唯一,则输出小的那个值。 给定第一个代表有几个数字。1<=n<=10^5 每个数字在 int 范围内 输入,(第一个代表有几个数字)8 10 3 8 8 3 2 2 2输出 2 题很简单,但要注意用10^5做数组下标,开不了那么大,故用map map要点: 如果是字符串到整型的映射,必须使用string而不是char数组 访问方式:(1)直接用下标访问:mp['s'];(2)迭代器访问:键it->fi...原创 2022-03-07 21:00:13 · 329 阅读 · 0 评论 -
【2018工研】求交集并集(set的用法)
题目 第一题,输入两个集合,分别求其交集和并集中元素的个数,每个集合中可能存在相同的元素,而最终的交集和并集中应该不存在。 输入: 4 5 3 4 7 3 4 6 3 2 6 输出: 2 5 这道题看着简单却花了很长时间,因为除了集合之间有重复,集合内部也有重复,我的处理方法是设立A,B两个数组,A控制集合之间的重复元素,B控制第二个集合内部的重复元素 #include<iostream> using namespace std; const int maxn = 1原创 2022-03-07 19:27:36 · 232 阅读 · 0 评论