![](https://img-blog.csdnimg.cn/20190918140012416.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C/C++竞赛笔记
文章平均质量分 92
记录一些竞赛常用知识
Knock man
在校大三学生一枚,软件工程专业 敢于做逆行者,写好每一篇博客,不断提高自己,欢迎交流
展开
-
备战蓝桥杯算法整合
这里写目录标题六倍法判断素数欧拉筛01背包完全背包多重度背包Floyd-Warshall(多源最短路)Dijkstra(单源最短路)最大公约数最小公倍数分解质因数全排列(递归)并查集六倍法判断素数bool is_sprime(int x){ if(x==1)return false;//1不是素数 if(x==2||x==3||x==5){//2,3,5是素数 return true; } if(x%2==0||x%3==0){//2和3的倍数一定不是素数 return false原创 2020-09-25 17:57:29 · 2532 阅读 · 2 评论 -
第三届“传智杯”全国大学生IT技能大赛(初赛)B组赛后总结
今年首次参加传智杯,刚比完蓝桥杯所以打传智杯比较轻松,一个五道题,AC了五道题,还算不错今年题目相对于前两届较为简单,但是还是有很大细节会影响得分,过程中几乎每道题我都罚了时,下面对题目进行一个总结第三届传智杯题解A - 课程报名B - 期末考试成绩C - 志愿者D - 终端E - 运气A - 课程报名题解这个题比较简单,只需要简单模拟即可,比赛时罚时了两次,开始用(人数%m==0)判断是否需要提升定价,后来改用变量计数成功AC#include<cstdio>#include原创 2020-12-20 20:59:37 · 2206 阅读 · 8 评论 -
第十一届蓝桥杯总结(附备考经验)
在准备蓝桥杯的时候很想比完赛就写个总结记录一下付出的努力,可是比完赛后就没有那么强烈的欲望了,因为发现自己准备了差不多一年的各种算法,蓝桥杯的试题上根本不考,只要代码敲的多,再细心一点,蓝桥杯的题目几乎完全是可以做的啊?算法比赛算法根本考的不多但是还是写个小总结记录一下这段经历吧?毕竟第一次这么认真去准备这个比赛,不管结果考的这么样,也算把应该学的应该练得都走了一遍吧,收获还是蛮丰富的。如果你还在纠结报不报蓝桥杯,不要犹豫直接报,因为当有一个目标之后,努力之后收获的仅仅不是一张证书,还有学习的过程相信我的原创 2020-10-19 10:59:28 · 9454 阅读 · 27 评论 -
算法竞赛入门知识干货
前言:本篇总结一部分来自刘汝佳的《算法入门知识竞赛》,一部分是个人竞赛学习中的一些知识点总结,其实也是自己走了不弯路一点点积累起来的干货,对刚刚参加竞赛的盆友应该会很有帮助一.程序设计入门1.”%.1f” 保留小数点后一位2.整数/整数=整数,浮点数/浮点数=浮点数3.sqrt(x)=x的算数平方根4.在算法竞赛中不要使用头文件conio.h,包括getch()、clrscr()等函数。5.在算法竞赛中,每行输出均应以回车符结束,包括最后一行。除非特别说明,每行的行首不应有空格,但行末通常可原创 2020-10-11 17:25:04 · 2868 阅读 · 0 评论 -
字符串,字符数组,数字相互转化
1.字符数组转字符串#include<iostream>#include<string>using namespace std;int main(){ char str[5]={'a','b','c','d'}; string s1(str);//声明时赋值转化 cout<<s1<<endl; string s2; s2=str;//直接赋值转化 cout<<s2<<endl; return 0;}原创 2020-08-15 15:21:10 · 3915 阅读 · 0 评论 -
C++ pair用法总结
1、pair的应用pair是将2个数据组合成一组数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存。另一个应用是,当一个函数需要返回2个数据的时候,可以选择pair。pair的实现是一个结构体,主要的两个成员变量是first second 因为是使用struct不是class,所以可以直接使用pair的成员变量。其标准库类型–pair类型定义在#include < utility >头文件中,定义如下:类模板:template<c转载 2020-07-16 18:25:00 · 643 阅读 · 0 评论 -
multiset用法详解
multiset和set都是属于c++中的集合容器multiset与set的区别:multiset支持重复,而set会去重set相关知识可参考:set集合详解头文件#include< set >声明和初始化声明一个multiset,按升序排列,默认升序排列 multiset<int>set1; 等价于: 或 multiset<int,less<int>>set1;声明一个multiset,按降序排列multiset<int, g原创 2020-06-25 11:04:43 · 6841 阅读 · 2 评论 -
优先队列(priority_queue)C++详解
头文件:#inclue<queue>我们可以定义其中数据的优先级,让优先级高的排在队列前面,优先出队优先队列具有队列的所有特性,包括基本操作,但是优先队列在队列的基础上添加了一个内部的排序功能,本质是小顶堆和大顶堆实现的基本操作:和队列基本相同:top...原创 2020-06-24 20:38:41 · 734 阅读 · 0 评论 -
竞赛卡常技巧
1.++i快于i++2.int i(0) 快于int i=03.取模非常慢,尽量用减法代替4.for(register int i(0);i<n;i++) 快到飞起,对于频繁使用的变量定义时都可以加上此关键字5.减少使用STL,他们的常数特别大6.define比赋值更快7.定义数组大小时尽量用奇数8.尽量不要用bool,int是最快的9.if()else()...原创 2020-04-17 11:53:06 · 450 阅读 · 1 评论 -
实现不同进制相互转换
思路:先上常规的转换方法,代码量可能比较长,日后补上优化#include<iostream>#include<string>#include<cmath>#include<algorithm>using namespace std;int n,m;string s;string s2;int mm;int fun(int n){...原创 2020-04-09 19:14:28 · 410 阅读 · 0 评论 -
STL第k大的数nth_element()的使用
头文件:#include< algorithm >using namespace std;作用:求第k的的数(下标从0开始计数)返回值:无格式:nth_element(数组名,数组名+k,数组名+数组大小,cmp)具体cmp与sort使用相同其内部思想是分治思想,无返回值,只是将第k大的元素排好位置,若要在其后的函数要使用第k大的元素,直接调用a[k]即可】注意:会改变原...原创 2020-04-02 16:20:01 · 481 阅读 · 0 评论 -
C++输入输出流加速器
你还在担心C++的输入输出吗?在竞赛中,经常会因为C++的输入输出流函数的效率慢导致丢分,在这里介绍一种输入输出专用加速器,达到和C的scanf()和printf()一样的速度竞赛专用三行加速代码,从此输出输出走向人生巅峰!!!直接加主函数里!!!ios::sync_with_stdio(false); cin.tie(0);//输入加速 cout.tie(0);//输出加速 原...原创 2020-03-31 18:31:46 · 1835 阅读 · 0 评论 -
sprintf函数
sprintf指的是字符串格式化命令头文件:#include<stdio.h>功能:把格式化的数据读入某个字符串中格式:char str[100];str( 字符串名,控制格式符,待转化数字 )注意:控制格式符要用双引号1.进制转换用法#include<cstdio>#include<iostream>using namespace std;...原创 2020-03-30 19:06:27 · 848 阅读 · 0 评论 -
set集合并交差集(C++)
在处理问题上经常会遇到集合的并、交、差的处理,当我们运用c++的STL来解决此问题无疑会让事情变得非常简单,下面就来介绍set处理集合的用法头文件:#include< algorithm >using namepace std;基本介绍:set里面有set_intersection(取集合交集)、set_union(取集合并集)、set_difference(取集合差集)、set...原创 2020-03-20 11:55:28 · 1552 阅读 · 0 评论 -
string字符串常见用法
string是C++标准库中的类,掌握后会让编程事有半功倍的效果,使用时要包含头文件#include< string >,加上using namespace std;下面介绍string中常见的一些用法:1.查找int a.find(str,pos);从a字符串中查找str字符串,从pos位置开始查找,返回值=str字符串第一次出现的位置如果没有找到返回值为-1;#inc...原创 2020-03-10 11:38:15 · 1281 阅读 · 2 评论 -
队列(STL)
队列是一种线性数据结构,棋限制只允许从表的前端(front)进行删除,而在表的后端(rear)进行插入操作。一般允许进行插入的一端我们称为队尾,允许删除的一端称为队首。头文件:#include< queue >using namespace std;构造声明:queue< T > q定义了一个名为q的储存T类型数据的排列,初始时q为空1. 获得队首元素:队列...原创 2020-03-08 16:07:40 · 304 阅读 · 0 评论 -
excel快速解决竞赛日期问题
参加比赛时有的时候结合excel会事半功倍,这里就介绍两种日期问题的解决方法!第一种:1.打开excle输入两个日期2.将这两个单元格格式设为日期3.第三个单元格用前两个算出来(注意这个不需要设置日期格式)加一是因为1月1 日就已经是一天了所以答案是:125第二种:1.选择二个单元格,将他们格式设为日期2.第一个单元格填上已知日期,第二个单元格加上定时时间计算出来...原创 2020-02-29 09:53:54 · 1251 阅读 · 0 评论 -
STL映射(map)用法
映射是指两个集合之间的元素的相互对应关系。通俗得将,就是一个元素对应另外一个元素。比如有一个姓名的集合{“Tom”,“jone”,“Mary”},班级集合{1,2}。姓名与班级之间可以有如下映射关系:我们称其中的姓名集合为 关键字集合(key),班级集合为 值集合(value).在C++中我们常用映射是map....原创 2020-02-24 14:22:43 · 753 阅读 · 2 评论 -
栈(STL)
头文件:#include< stack >定义:stack< T >s定义了一个储存T类型的数据栈s入栈:push( )出栈:pop()取栈顶元素:top()判断空:empty()计算栈元素个数:size()代码实现:#include<bits/stdc++.h>using namespace std;struct Stack{ int ...原创 2020-02-24 11:21:28 · 263 阅读 · 0 评论 -
C++STL 集合(set)容器用法
头文件:#include< set >using namespace std构造声明集合:set< T > s;定义了一个名为s的、储存T类型的数据集合,其中T是集合要储存的数据类型。初始的时候是空集合具体操作:1.插入集合元素:(默认情况下下,元素按照从小到大插入)集合名.insert(元素)示例:#include< cstdio >...原创 2020-02-22 16:38:38 · 1056 阅读 · 0 评论 -
C++动态数组<vector>用法介绍
vector数组优点:和普通数组相比,不需要定义数组长度,而且长度可更改,节约空间,可以存放任意对象,可以拷贝赋值,可以在长度以外增加长度。头文件:#include< vector >构造声明:vector<类型>数组名例如:vector< int >a定义了一个储存整数的动态数组a具体操作:1.插入元素:数组名.push_back(元素)...原创 2020-02-22 14:07:53 · 3001 阅读 · 1 评论 -
STL(标准模板库)algorithm常用函数
这里首先介绍一个万能头文件:include<bits/stdc++.h>一个头文件解决了一切,接下来为了方便都使用这个头文件1.max,min函数代码:#include<bits/stdc++.h>using namespace std;int main(){ int a[2]={1,2}; printf("max=%d\n",max(a[1]...原创 2020-02-22 11:40:00 · 774 阅读 · 0 评论 -
sort函数用法与stable_sort函数
sort函数用于c++中,对给定区间所有元素进行排序,默认升序,也可以降序头文件:#include语法:sort(start,end,cmp)注意:第三个参数cmp升序情况下可以不写,降序情况需要多调用一个函数参数:(1)strat表示要排序的起始地址;(2)end表示数组结束地址的下一位(3)cmp用于规定排序方法,可以不填,默认升序例如:对a[10]数组升序排列#inclu...原创 2020-02-21 18:41:17 · 1626 阅读 · 0 评论 -
C语言快速排序函数qsort()
qsort函数是C语言编译器函数库自带的快速排序函数头文件:#include<stdlib.h>函数原型:void qsort( void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *) );参数介绍:参数base :指向需要排...原创 2020-02-21 16:39:32 · 741 阅读 · 0 评论 -
printf()按进制输出&&进制表示
各输出格式控制代码如下: int PrintVal = 9; /*按整型输出,默认右对齐*/ printf("%d\n",PrintVal); /*按整型输出,补齐4位的宽度,补齐位为空格,默认右对齐*/ printf("%4d\n",PrintVal); /*按整形输出,补齐4位的宽度,补齐位为0,默认右对齐*/ prin...原创 2020-02-19 09:58:51 · 239 阅读 · 0 评论 -
字符字符串输入函数区别
** getch 与getchar **getchar:当程序调用getchar时,程序就等着用户按键。用户输入的字符被存放在键盘缓冲区内,直到用户按回车键为止(回车键也保存在缓冲区内)当用户键入回车后,getchar才开始从stdio流中每次读入一个字符getchar函数的返回值是用户输入的第一个字符的ASCII码,若文件结尾(End-Of-File)则返回-1(EOF),且将用户输入的字符回...原创 2020-02-18 14:14:34 · 362 阅读 · 0 评论