![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STL
深巷wls
平平无奇
展开
-
PTA 盲盒包装流水线 (25 分)
找不到原题了…题意:PTA有9种奖牌,编号为1-9,现在有N个盒子和一个流水线盲盒包装机,流水线上有盒子的时候,会从框里取出一个奖牌装进盒子里,框里奖牌用完的时候,会再补充一筐。人们想知道自己的盲盒里是什么种类的奖牌,但是盒子很多,人们记不住每个盒子里装的是什么种类的奖牌,请你写出一个程序,帮助人们判断。输入说明:第一行先给出N代表一共有N个盒子,再给出S代表框的容量。第二行再给出N个数,为盒子的编号;接下来N/S行(保证为整数),给出S个奖牌种类;接着给出K代表有K次询问,每次询问一个盒子原创 2022-04-17 20:53:07 · 3056 阅读 · 0 评论 -
L2-2 点赞狂魔 (25 分)(C/C++)
输入样例:5bob 11 101 102 103 104 105 106 107 108 108 107 107peter 8 1 2 3 4 3 2 5 1chris 12 1 2 3 4 5 6 7 8 9 1 2 3john 10 8 7 6 5 4 3 2 1 7 5jack 9 6 7 8 9 10 11 12 13 14输出样例:jack chris john思路:这题用set来存数据,自动去重很好用。其次是看出来到底是怎么怎么排序,标签出现次数平均值最小的,应该是.原创 2022-04-17 20:34:33 · 1622 阅读 · 0 评论 -
L3-029 还原文件 (30 分)(DFS)(C/C++)
输入样例:1795 70 80 97 97 68 58 58 80 72 88 81 81 68 68 60 8064 68 58 58 803 81 68 683 95 70 803 68 60 805 80 72 88 81 814 80 97 97 68输出样例:3 6 1 5 2 4a[i]存储第i个折线角点的高度;f[i]存储第i个纸条碎片的信息。通过DFS从没有切碎的纸片最左端开始尝试所有纸条碎片的匹配,now表示当前所需要匹配的碎片左侧在未碎纸片上的位置,..原创 2022-04-16 16:51:49 · 687 阅读 · 0 评论 -
L2-038 病毒溯源 (25 分)(C/C++)
输入样例:103 6 4 80002 5 901 71 202 3 1输出样例:40 4 9 1vis[i]中保存i可以变异出哪些病毒;in[i]数组用来记录i病毒是不是由其他病毒变异过来的,如果in[i]为0,则其为源头病毒;before[i]记录i的上级病毒;为了保证序列最小,在输入Edge[i]后可对其进行一次排序;然后通过BFS找到最多变异次数,过程中由maxl和ans标记最多变异次数量以及对应的病毒编号;最后通过before找回完整变异链,因为变异链..原创 2022-04-16 16:14:44 · 1383 阅读 · 0 评论 -
L2-4 哲哲打游戏 (25 分)(C/C++)
输入样例:10 113 2 3 41 63 4 7 51 31 92 3 53 1 8 51 92 8 1001 10 30 11 20 20 22 20 30 11 10 2输出样例:13910直接用二维数组会炸内存,所以用vector的一维数组当二维数组使用。用vector a[N] 数组来存放每个剧情点对应操作能跳到哪个剧情点。用int b[N]来存每个存档点对应的剧情点。然后直接模拟即可。#include<iostream&.原创 2022-04-16 10:48:01 · 3007 阅读 · 0 评论 -
L2-3 清点代码库 (25 分)(C/C++)
输入样例:7 335 28 74-1 -1 2228 74 35-1 -1 2211 66 035 28 7435 28 74输出样例:43 35 28 742 -1 -1 221 11 66 01 28 74 35用map来存数据,map的第一个元素用vector来存,是每个功能输出的数据,第二个数据用int,是同样功能的个数。需要了解的是vector是可以直接用于排序的输入结束之后,再把map存在一个结构体类型的vector中,然后对这个vector进行排序,然后..原创 2022-04-16 09:16:03 · 1222 阅读 · 2 评论 -
L2-037 包装机 (25 分)(C/C++)
输入样例:3 4 4GPLTPATAOMSA3 2 3 0 1 2 0 2 2 0 -1输出样例:MATA这道题需要注意的就是当框空的时候,按下0是什么都不会发生的。当对应轨道空的时候,按下对应轨道的数字也是什么都不会发生的当对应轨道不为空,但是框满的时候,需要先把框顶的弹出来,再装进去新的。#include<iostream>#include<cstdio>#include<iomanip>#include<cstdlib>..原创 2022-04-16 08:41:14 · 328 阅读 · 0 评论 -
B.扩散(C/C++)queue队列
【问题描述】小蓝在一张无限大的特殊画布上作画。这张画布可以看成一个方格图,每个格子可以用一个二维的整数坐标表示。小蓝在画布上首先点了一下几个点:(0, 0), (2020, 11), (11, 14), (2000, 2000)。只有这几个格子上有黑色,其它位置都是白色的。每过一分钟,黑色就会扩散一点。具体的,如果一个格子里面是黑色,它就会扩散到上、下、左、右四个相邻的格子中,使得这四个格子也变成黑色。请问,经过 2020 分钟后,画布上有多少个格子是黑色的。思路:因为数组坐标没有负的,所以原创 2022-03-26 09:55:12 · 716 阅读 · 0 评论 -
STL关于stack(栈)的一些笔记C/C++
栈的定义栈(stack)是限定仅在表尾进行插入或者删除的线性表。对于栈来说,表尾端称为栈顶(top),表头端称为栈低(bottom)。不含元素的空表称为空栈。因为栈限定在表尾进行插入或者删除,所以栈又被称为后进先出的线性表(简称LIFO:Last in, First out.结构)。STL中有栈的容器stack头文件#include<stack>基本操作:push(x) 将x加入栈中,即入栈操作pop() 出栈操作(删除栈顶),只是出栈,没有返回值top() 返回第一个元素原创 2022-01-07 20:03:57 · 715 阅读 · 0 评论 -
P1923 【深基9.例4】求第 k 小的数(priority_queue优先队列,nth_element函数,二分排序搜索)C/C++
P1923 【深基9.例4】求第 k 小的数这个题据说能用快速输入卡时间通过,但是我这里不用,仅在此说一下我做此题的思路,有需要了解快速输入的同学可以自行搜索。**优先队列思路:看到这个题,第一感觉是用sort,但是就想试试优先队列,结果只得了60分**#include<iostream>#include<cstdio>#include<queue> #include<vector>using namespace std;#define原创 2021-12-02 10:48:25 · 741 阅读 · 0 评论 -
洛谷P1138 第k小整数(STL的unique函数)C/C++
P1138 第k小整数思路:其实直接用数组也能做,但是这里我想用一下STL里的unique函数,这个函数作用就是把数组伪去重,重复的数放在数组末AC代码:#include<bits/stdc++.h>using namespace std;int n,k,a[10000];int main(){ cin >> n >> k; for(int i=0;i<n;i++) cin >> a[i]; sort(a,原创 2021-12-01 11:04:06 · 495 阅读 · 0 评论 -
P1540机器翻译(queue队列)C++
不多说,直接模拟就可以了#include<iostream>#include<cstdio>#include<iomanip>#include<stack>#include<queue>#include<cstdlib>#include <algorithm>#include<string.h>#include<math.h>#define llu unsigned long...原创 2021-07-10 20:06:37 · 311 阅读 · 0 评论 -
P1739 表达式括号匹配(stack栈)C++
#include<iostream>#include<cstdio>#include<iomanip>#include<stack>#include<cstdlib>#include <algorithm>#include<string.h>#include<math.h>#define llu unsigned long longusing namespace std;int main(..原创 2021-07-10 11:19:42 · 402 阅读 · 0 评论 -
P1469 找筷子(map容器,异或运算)C++
用map挺简单,但是空间有点超限:#include<iostream>#include<cstdio>#include<map>#include<iomanip>#include<cstdlib>#include <algorithm>#include<string.h>#include<math.h>#define llu unsigned long longusing namespac..原创 2021-07-07 18:30:50 · 1039 阅读 · 0 评论 -
第十二届蓝桥杯C++ C.直线(map,set,vector容器)
#include<bits/stdc++.h>#define ll long longusing namespace std;struct Point{ double x,y;}point[25*25];//存下每一个点map<pair<double,double>,int> m;//存斜率k和截距bint main(){ int cnt=0; for(int i=0;i<20;i++){ for(int j=0;j<21;j++){.原创 2021-05-23 11:42:03 · 521 阅读 · 0 评论 -
STL关于set的一些笔记
重点:头文件#include<set>1、set中的元素都是排好序的2、set集合中没有重复的元素c++ stl集合(Set)是一种包含已排序对象的关联容器。set/multiset会根据待定的排序准则,自动将元素排序。两者不同在于前者不允许元素重复,而后者允许。注意:不能直接改变元素值,因为那样会打乱原本正确的顺序,要改变元素值必须先删除旧元素,再插入新元素不提供直接存取元素的任何操作函数,只能通过迭代器进行间接存取,而且从迭代器角度来看,元素值是常数元素比较动作只能用于型别.原创 2021-05-21 19:36:22 · 204 阅读 · 0 评论 -
STL关于queue(队列)与priority_queue(优先队列)的一些笔记
queuequeue就是队列,在STL中主要实现了一个先进先出的容器使用queue应该先添加头文件#include<queue>queue<typename>name;queue常用函数push(),将x入队,时间复杂度为O(1) front(),back(),分别可以获得队首元素和队尾元素,时间复杂度为O(1)front(),back(),分别可以获得队首元素和队尾元素,时间复杂度为O(1)pop(),pop()令队首元素出队,时间复杂度为O(1)empty(原创 2021-05-20 00:00:42 · 393 阅读 · 0 评论 -
STL使用auto关键词遍历容器
简单来说,auto就是可以自己识别自己需要的类型并转变为它举一下例子遍历vectorvector<int> line={1,2,3,4,5,6,7,8,9};//定义一个vector迭代器遍历void showvec(const vector<int>& line) { for (vector<int>::const_iterator iter = line.cbegin();iter != line.cend(); iter++) {原创 2021-05-19 21:11:20 · 1477 阅读 · 0 评论 -
STL关于array容器的一些笔记
array 容器以类模板的形式定义在include<array>头文件,并位于命名空间 std 中,如下所示:namespace std{ template <typename T, size_t N> class array;}array 容器有多种初始化方式std::array<double, 10> values; std::array<double, 10> values {}; //所有的元素初始化为 0 或者和默认元素原创 2021-05-19 10:50:50 · 105 阅读 · 1 评论 -
STL关于sort函数的一些笔记
sort()函数:对数组进行排序头文件为#include<algorithm>,存储在std命名空间中。sort()函数有三个参数:第一个是数组的起始地址;第二个是数组的结束地址;第三个是如何排序(从大到小或从小到大。一:没有第三个参数,默认从小到大排序#include<iostream>#include <algorithm>using namespace std;int main(){ int n; cin >> n ; int a原创 2021-05-04 14:52:25 · 156 阅读 · 0 评论 -
STL简单计算器(stack函数的应用)
实现代码如下:#include<bits/stdc++.h>using namespace std;int main(){ stack<int>s; stack<char>t; int n,m,z,p1,p2,q; char c; cin>>n; for(int i=0;i<n;i++) { cin>>m; s.push(m); } for(int i=1;i<n;i++) { cin&...原创 2021-05-13 22:59:00 · 179 阅读 · 0 评论 -
STL单词统计C++(map容器的使用)
题目描述输入n组单词,统计不同单词出现的个数,并按照字典顺序输出。(n<1000,每个单词长度小于1000)样例输入4aabaabaabc样例输出aa 1aab 2bc 1使用map容器可以比较容易做出#include <iostream>#include <map>#include <iterator>#include <stdlib.h>using namespace std; main(){ typ原创 2021-05-16 14:45:27 · 429 阅读 · 0 评论 -
STL关于vector容器的一些笔记
vector是向量类型,可以容纳许多类型的数据,因此也被称为容器(可以理解为动态数组,是封装好了的类)进行vector操作前应添加头文件#include<vector>1.vector说明1.1创建vector对象vector <int> a;vector的元素不仅仅可以使int,double,string,还可以是结构体,但是要注意:结构体要定义为全局的,否则会出错。1.2 vector初始化://定义具有10个整型元素的向量(尖括号为元素类型名,它可以是任何合法的数原创 2021-05-18 18:04:23 · 147 阅读 · 1 评论