清北学堂(2019 5 3) part 6

今天讲STL

1.pair——<algorithm>

  声明形如pair<int,int> x;(不是int也可以),表示x有前后两个成员,都是int类型,调用时写x.first(second);

  对pair声明的变量可以不自定义cmp函数,先按照pair中第一个元素优先排序,再按第二个,即第一个元素相同时对第二个元素排序,

  同时pair支持这种操作:pair<pair<int,int>,int>;

2.vector——<queue>/<vector>

  基本函数:

  

3.iterator(迭代器)——<vector>

  

  

4.set——<set>

  STL集合,使用...红黑树(啥?)维护的集合,保证元素有序,且无重复元素

基本函数:

  用结构体时需在结构体中写个重载运算符,来定义排序变量

5.map——<map>

  可以进行类似以下操作:

#include<bits/stdc++.h>
map<string,int> a;
a["cxk"]=233;
using namespace std;
int main(){
    ...
}

  简单来说就是用前面定义的类型指向个后面定义的类型

6.stack,queue(它们操作很像)——前者<stack>,后者<queue>

  学过不解释

7.sort(学过)——<algorithm>

  sort可以根据迭代器排序

8.unique,fill——<algorithm>

  unique:去重函数,只能用于排过序的数组,

  fill:将某一范围的元素全部覆盖为指定元素

9.next_permutation——<algorithm>

  形如next_permutation(a+1,a+n+1);  

  即为判断a[1]到a[n]的某排列的是否存在下一个排列,按字典序排列,

10.binary_search——<algorithm>

  官方二分,需要数据有序

11.nth_element——<algorithm>

  将数列分成某个元素之前,某个元素,某个元素之后三部分,即用指定数据将数列分成两部分(不包括数据本身)

12.srand与rand——<algorithm>

  在noip的杀手锏

  srand定义随机种子,rand根据随机种子算出其值,然而直接输出只能输出41

  所以一般这么写srand(time(0));

  time——<ctime>

今天东西好少a

原文地址:https://www.cnblogs.com/648-233/p/10804548.html

时间: 2024-10-14 03:52:34

清北学堂(2019 5 3) part 6的相关文章

清北学堂2017NOIP冬令营入学测试 P4744 A’s problem(a)

清北学堂2017NOIP冬令营入学测试 P4744 A's problem(a) 时间: 1000ms / 空间: 655360KiB / Java类名: Main 背景 冬令营入学测试题,每三天结算一次成绩.参与享优惠 描述 这是一道有背景的题目,小A也是一个有故事的人.但可惜的是这里纸张太小,小A无法把故事详细地说给大家听.可能小A自己也讲不清楚自己的故事,因为如果讲清了,也就没有这道题目了-- 小A的问题是这个样子,它找到了n份不同的工作,第i份工作每个月有ai的工资,每份工作需要小A每天

铁轨 清北学堂 线段树

铁轨 清北学堂 线段树 [题目描述] R 国的铁轨经常会进行重新修建. R 国是一个细长的国家,一共有 n 个城市排成一排,首都位于 1 号城市,相邻两个城市之间有铁路相连. 每次新建铁轨的时候,一定是从首都开始修建,直到某一个城市为止,这其间的铁路都会变成新版本的设 施,而旧设施会被拆除.然而,由于 R 国的工程师脑子不太好使,任意两种不同版本的铁路之间都无法连 接,因此必须要进行换乘. 现在给出你修建铁轨的操作,小 R 时不时第会想问你,如果在第 x 个城市到第 y 个城市之间随机选择一个

清北学堂(2019 4 28 ) part 1

今天主要用来铺路,打基础 枚举 没什么具体算法讲究,但要考虑更优的暴力枚举方法,例如回文质数,有以下几种思路: 1.挨个枚举自然数,再一起判断是否是回文数和质数,然而一看就不是最优 2.先枚举质数再判断回文,但质数显然要比回文数要多,较下一种慢 3.先枚举回文数再判质: (1).分别开数组,把每个元素当做一位数,如w[1]表示个位,w[2]表示十位等,如果能构成回文,再判质 (2).枚举最大数位数的一半,即分析1-600000之中的数只需枚举后三位,将后三位翻转形成回文数,再判质,显然更优 洛谷

清北学堂(2019 4 30 ) part 3

今天总的讲些算法,会了的话...看上去好厉害的样子: 1.老朋友动态规划DP: DP重点: 1.边界条件,开头不需处理的数据,比如斐波那契数列中的第一二项 2.转移方程,后面的项需要根据前面几项求出自身值的方程(等式) 套路: 1.定状态, 2.写方程, 3.敲代码 三种用法: 1.顺着推, 2.倒着推, 3.记忆化搜索, 举个栗子——斐波那契: 1.倒着推:比较简单,只写方程:f[n]=f[n-1]+f[n-2] 2.顺着推:代码 #include<bits/stdc++.h> using

&lt;知识整理&gt;2019清北学堂提高储备D5

今天主讲图论. 前言:图的定义:图G是一个有序二元组(V,E),其中V称为顶集(Vertices Set),E称为边集(Edges set),E与V不相交.它们亦可写成V(G)和E(G). 一.图的存储: 1.邻接矩阵: 2.邻接表: 数组模拟链表实现:记录每条边的终点.边权(如果有的话).同一起点的上一条边的编号,并记录以每个点为起点的最后一条边的编号. STL中的vector:记录以每个点为起点的边. 一些vector的细节: vector 本质就是 c++ 模板库帮我们实现好的可以变长的数

清北学堂 最大速度

最大速度 (maxv.pas/c/cpp) [问题描述] Ron的老爸的Flying Car出了些问题,现在必须要在地上跑到很大的速度才能飞起来,但是Flying Car飞起来的那一刻不能被麻瓜看到.为了确保安全飞起来,需要知道车到可以飞起来的地方时所能达到的最大速度.他的Flying Car一开始拥有一个初速度,移动一次增加速度1:因为车道很窄,宽度只有1,所以仅当要转向的方向有路时才能转,左转一次减少速度35,右转一次减少速度40,当前进.左转.右转都无路可走的时候,调头(连左转两次或连右转

清北学堂2017NOIP冬令营入学测试

P4744 A's problem(a) 时间: 1000ms / 空间: 655360KiB / Java类名: Main 背景 冬令营入学测试题,每三天结算一次成绩.参与享优惠 描述 这是一道有背景的题目,小A也是一个有故事的人.但可惜的是这里纸张太小,小A无法把故事详细地说给大家听.可能小A自己也讲不清楚自己的故事,因为如果讲清了,也就没有这道题目了-- 小A的问题是这个样子,它找到了n份不同的工作,第i份工作每个月有ai的工资,每份工作需要小A每天工作8小时,一周工作7天.小A想知道性价

清北学堂 逃亡的准备

  逃亡的准备 (hallows.pas/c/cpp)   [问题描述] 在<Harry Potter and the Deathly Hallows>中,Harry Potter他们一起逃亡,现在有许多的东西要放到赫敏的包里面,但是包的大小有限,所以我们只能够在里面放入非常重要的物品,现在给出该种物品的数量.体积.价值的数值,希望你能够算出怎样能使背包的价值最大的组合方式,并且输出这个数值,赫敏会非常地感谢你. [输入文件](hallows.in) (1)第一行有2个整数,物品种数n和背包装

清北学堂 站军姿

/*2bc*cosA=b^2+c^2-a^2 模拟计算 50分*/ #include<iostream> #include<cstdio> #include<cmath> using namespace std; const double t=3.1415926535898; int n; double a,b,c,x,y,z,x2,y2,z2,s,k,m,w,p; int main () { freopen ("standing.in","