stl
l
每天都要吃肉肉(●'◡'●)
绝不妄自菲薄
展开
-
【2015】优先队列的实现(没有思路。。)
题目描述ADD N P:往队列里加入id为N的优先级为P的任务NEXT:输出下一个最高优先级的任务的id,如果优先级相同输出id小的任务,若队列中没有任务输出-1REMOVE N:移除id为N的任务COUNT:输出队列中的任务数量思路用结构体数组充当优先级队列,记录队首和队尾的位置。ADD()先将输入的结构体加入数组中,即挂在队尾。再按优先级大小排序,优先级大的放在队头,若优先级相等,按ID大小排序,ID小得结构体靠近队头。NEXT()输入队头结构体的ID。#inc..原创 2022-03-11 22:25:44 · 160 阅读 · 0 评论 -
【2013】字符串匹配
问题描述:对于主串M和模式串P,找到P在M中出现的所有子串的第一个字符在P中的位置。P中第一个字符所在的位置为0。首行的数字表示有多少组字符串。样例输入:输入:2ababababaababaaaaaa输出:0 2 40 1思路:从头在m中匹配p,找到匹配的第一个字符串pos,继续从pos+1开始下一次匹配string知识点:str.find(str1), 当str1是str的子串时,返回其在str中第一次出现的位置;如果不是,返回string::.原创 2022-03-11 22:18:44 · 204 阅读 · 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 · 249 阅读 · 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 · 111 阅读 · 0 评论 -
【2018】求众数(map)
题目:众数就是一个序列中出现次数最多的数字。 如果不唯一,则输出小的那个值。 给定第一个代表有几个数字。1<=n<=10^5 每个数字在 int 范围内 输入,(第一个代表有几个数字)810 3 8 8 3 2 2 2输出 2题很简单,但要注意用10^5做数组下标,开不了那么大,故用mapmap要点:如果是字符串到整型的映射,必须使用string而不是char数组 访问方式:(1)直接用下标访问:mp['s'];(2)迭代器访问:键it->fi...原创 2022-03-07 21:00:13 · 387 阅读 · 0 评论 -
【2018工研】求交集并集(set的用法)
题目第一题,输入两个集合,分别求其交集和并集中元素的个数,每个集合中可能存在相同的元素,而最终的交集和并集中应该不存在。输入:4 53 4 7 34 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 · 272 阅读 · 0 评论