蓝桥杯考试总结汇总
一进考场设置devc快捷键
- 设置注释和取消注释快捷键
- 设置代码自动补全快捷键
- 开启devc调试功能,详细可以看怎么开调试功能https://blog.csdn.net/hz18790581821/article/details/78418648
- 比赛过程中,如果不相信自己是否做对,没有把握的,可以打印出过程来检验一下,在有些情况下是有用的。。。千万不能辛辛苦苦做了,居然因为最后一步错了!因为考场是不知道结果的,不能知道结果去验证靠近结果,而是要不断怀疑自己的结果是不是正确的!
注意事项
1、不要能用字符串直接输出的,就不要还用数组来判断,当数据量大的时候就会超时,明明都判断了,可以直接运行了,就不要多此一举放在数据里,因为它只有三个变量,又不是很多,所以完全可以各自单独列出来。
if(s[i] == "Mccree") cout<<"Genji";
else if(s[i] == "Hanzo") cout<<"Mccree";
else cout<<"Hanzo";
错误示范
if(s[i]==des[0][0]) sa[i]=des[1][0];
else if(s[i]==des[0][1]) sa[i]=des[1][1];
else sa[i]=des[1][2];
sprintf()、memset()函数
用来格式化字符串,注意格式化的是字符数组
头文件#include< cstdio>
#include<iostream>
#include<cstdio>
using namespace std;
int main(){char s[15];sprintf(s, "%08d", 123);cout<<s<<endl;return 0;
}
sprintf(s, “%08d”, 123);可以使得字符串的输出格式为右对齐,以0补齐00000123
memset()函数:
参考学习链接:https://blog.csdn.net/qq_25406563/article/details/83303371?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-3&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-3
memset(结构体/数组名 , 用于替换的ASCII码对应字符 , 前n个字符 );
memset(结构体/数组名 , "用于替换的字符“ , 前n个字符 );
函数解释:将s中的前n个字节用ch替换并且返回s
函数作用:在一段内存块中填充某一个给定的值,常用于较大的对结构体和数组的清零操作。
注意闰年
闰年判断方法
1.能被4整除而不能被100整除。
2.能被400整除。
平年是365天,闰年是366天
闰年2月29天,平年2月28天
有关日期的,题目很喜欢在2月份埋坑,要特别注意闰年平年
set容器、vector、map容器
构造set集合的主要目的是为了快速检索,使用set前,需要在程序头文件中包含声明“#include< set>”
它不会重复插入相同键值的元素,而采取忽略处理。
而且只要把元素放进set里面去,用for循环读取就可以按序读取
注意:初始化的方法,和输出的方式
//定义set容器,排序、避免冗余 set<string>e;for(set<string>::iterator it=e.begin();it!=e.end();it++) {cout<<"it: "<<*it<<endl;
// cout<<*it<<endl;
另外,在买不到的糖果数的题目中也有用到set容器
if(s.find(i)==s.end()){//i不在set中,那么i就是答案cout<<i<<endl;break;//找到后跳出循环 }
stl容器set成员函数:find()–返回一个指向被查找到元素的迭代器
另外,在跳蚱蜢的题目中也有用到set容器
set<string> visited;//已经搜索过的局面
if(visited.count(s)==0)//如果没有搜索过这个局面{visited.insert(s);}
stl容器set成员函数:count()返回集合中某个值元素的个数
set容器用 s.insert(temp);进行元素的插入
跟vector不一样,插入跟查找特定元素不一样
#include <algorithm>
vector<int> vec;
vec.push_back(1);
vec.push_back(2);
vector<int>::iterator ret; ret = std::find(vec.begin(), vec.end(), 15); if(ret == vec.end()) cout << "not found" << endl; else cout << "found it" << endl;
erase函数
https://blog.csdn.net/leo_csdn_/article/details/82221721
scanf()的好用处
scanf()在头文件#include< cstdio>里,作为有一定格式输入时更好用,如要输入02/03/04,
int a[3],b[3];scanf("%d/%d/%d",&a[0],&a[1],&a[2]);
getline和cin对string的输入
getline(cin,string)读取一行以回车为结束,空格不会当成是结束的
但cin>>string;读取至空格或回车.
所以要每次读取一个单词时候用cin>>string,,即要把空格识别作为结束,所以用cin>>string。
常用的函数及其头文件
- strlen()函数,在< cstring>头文件里
- CCTYPE函数系列包含了判断是否是字符等函数
- sqrt()求平方根函数,atan2()函数可根据x和y的值计算角度。
- #include< algorithm> 里面有sort()排序函数
- min函数,比较两个数值的大小,返回他们的之间最小值。头文件#include < algorithm>。如 num = min(currentNum, num);
- 编程填空题可用的万能头文件#include<bits/stdc++.h>
- 绝对值函数 fabs()的头文件 #include< cmath>
- 全排列函数 next_permutation(a,a+10)头文件#include < algorithm>
do{ 放置内容…… }while(next_permutation(a,a+10));
虽然有10个元素,最后一个的下标也是a[9],但是区间的话是[a,a+10),所以还是以元素个数做为加多少的结尾- gcd函数
gcd(x,y);最大公约数函数
int、long long类型都可以,需要注意的是两个类型必须要相同,还有不能用浮点型,当然手写gcd函数也是可以的,它头文件是algorithm。
while (cin >> income)问题
double income;
while (cin >> income)
当输入的不是数字的时候,压根不会进入while循环,因为不满足cin >> income的条件。cin>>被用于测试表达式中将根据输入是否成功,被转换为bool值true或false。cin>>将知道输入的如字符那些表示数字,从而将其留在队列中,并返回一个将被转换为false的值,这时while循环将会终止。
#include<iostream>
#include<string>
#include<sstream>
//新学的头文件using namespace std;
int main(){string s;while(getline(cin,s)){int sum =0,x;int count = 0;int i = 0;stringstream ss(s);//复制字符串s到stringstream ss while(ss>>x){sum+=x;cout<<"i++: "<<i++<<endl;}cout<<"count++: "<<count++<<endl;cout<<"sum: "<<sum<<endl;}return 0;
}
getline (cin, stri)返回cin,cin再转换为bool值true(读入成功)或者false(读入失败),所以此次循环结束的就是按下ctrl+z
要注意类型以及溢出等问题!
有时候不注意int跟double,或者忽略了隐式类型转换,即使声明是double,但也可能被隐式转换为int了
double cal (int x,int y){double ave;
// 注意类型转换double,不然x和y会以int 类型进行计算,计算的ave的结果也是int ,不过有2.0跟2的差别
// ave = 2.0 * double(x * y) / (x + y);ave = 2.0* x * y / (x + y);
// 当乘以的是2的时候是整数,乘以是2.0的时候结果是浮点数
// ave = 2* x * y / (x + y);return ave;
}
包括一些声明的是long long类型,但是相乘的两个数是long类型,这样子long long就被隐式转换为long了就会溢出!!
STL容器学习
STL容器学习
- 比如在错误的票据这道题里用了vector模板类,(注意头文件和声明)因为可以不用事先声明大小,而只需要一直把元素v.push_back(x);进去就好,还可以利用sort(v.begin(),v.end());快速的对容器的元素进行排序。还可以通过v.size()知道容器元素数量,然后通过for(int i=1;i<v.size();i++)遍历容器
- 队列的学习和使用:学习链接
#include<iostream>
#include<queue>using namespace std;int main(){queue<string> q;
// 入队,如例:q.push(x); 将x 接到队列的末端。q.push("zhangsan");q.push("lisi");q.push("wangwu");
// 判断队列空,如例:q.empty(),当队列空时,返回true。while(!q.empty()){
// 访问队首元素,如例:q.front(),即最早被压入队列的元素。cout<<q.front()<<endl;
// 出队,如例:q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。q.pop();}
}
string字符串
查找字串的函数 str.find(subStr1) != string::npos 如果找到了返回string::npos ,subStr1需要是字符串
#include <cstring>//头文件
string str = "abc";
string subStr1 = "bc";
string subStr2 = "cd";
str.find(subStr1); //返回1,第一个匹配的下标
str.find(subStr2);
//当str.find(subStr1) != string::npos时,说明是子串
//当str.find(subStr1) == string::npos时,说明不是子串
if(str.find(subStr1) != string::npos){cout<<"subStr1 是 str 的子串"<<endl;
}
stringstream
可以方便地实现了字符串与数字的互相转化
#include <sstream>//头文件
string i2s(int i){stringstream ss;string s;//把数字i存到ss中ss<<i;//把ss中有的转换为字符串sss>>s;return s;
}
涉及到多位数字相乘之类的
要把一个多位数看出多个位的单位数组成,用
for(int i=1;i<=9;i++)for(int j=0;j<=9;j++)for(int k=0;k<=9;k++)for(int l=0;l<=9;l++){
而不是
for(int x=1;x<=999;x++)for(int y=1;y<=999;y++)
比如在排他平方数里也是这样子。
有几位数就会用到几个for循环,比如四位数,用四个for循环,找出四个数,之后再用*1000,*100,*10之类的变成几千几百几十的数
编程题技巧
- 认真读题,认真分析题目,不要害怕
- 编程大题如果不会,千万不要放弃!因为有很多测试用例,可以暴力保证一些用例的测试是对的!这样子能赚一点分,能赚一点是一点!要有多拿一分是一分的想法,不能放弃掉!
相关文章:
蓝桥杯考试总结汇总
一进考场设置devc快捷键 设置注释和取消注释快捷键设置代码自动补全快捷键开启devc调试功能,详细可以看怎么开调试功能https://blog.csdn.net/hz18790581821/article/details/78418648比赛过程中,如果不相信自己是否做对,没有把握的…...
备战蓝桥杯【二维前缀和】
🌹作者:云小逸 📝个人主页:云小逸的主页 📝Github:云小逸的Github 🤟motto:要敢于一个人默默的面对自己,强大自己才是核心。不要等到什么都没有了,才下定决心去做。种一颗树,最好的时间是十年前…...
阿里P6细谈Python简易接口自动化测试框架设计与实现,我直呼内行
1、开发环境 操作系统:Ubuntu18 开发工具:IDEAPyCharm插件 Python版本:3.6 2、用到的模块 requests:用于发送请求 xlrd:操作Excel,组织测试用例 smtplib,email:发送测试报告 l…...
数据库存储
RAID DSL : Domain Spesic Language 专用领域语言 单机存储 一切皆Key-Value 本地文件系统 一切皆文件 Ceph - 分布式存储 关系型数据库通用组件 Query Engine :解析query,生成查询计划Txn Manager :事务并发管理Lock Man…...
hive学习笔记
一、Hive基本概念1.1 hive是什么hive是基于hadoop的一个数仓分析工具,hive可以将hdfs上存储的结构化的数据,映射成一张表,然后让用户写HQL(类SQL)来分析数据tel up down 1383838438 1345 1567 138383…...
7大体系防作弊,牛客放大招了!严肃笔试客户端上线!
如果问起学生对在线笔试的印象,“不公平”和“不服气”占了半壁江山。学生认为很多企业的在线笔试系统并不完善。原因一,不能有效地规避部分学生的作弊行为;原因二,在线考试系统不稳定,bug频出,导致笔试发挥…...
R语言广义可加模型在空气环境污染方面的应用(1)
粉丝私信我希望复制一篇文章的图片,图片来源于文章:Wu C, Yan Y, Chen X, Gong J, Guo Y, Zhao Y, Yang N, Dai J, Zhang F, Xiang H. Short-term exposure to ambient air pollution and type 2 diabetes mortality: A population-based time series st…...
CSDN 编程竞赛二十九期题解
竞赛总览 CSDN 编程竞赛二十九期:比赛详情 (csdn.net) 竞赛题解 题目1、订班服 小A班级订班服了!可是小A是个小糊涂鬼,整错了好多人的衣服的大小。小A只能自己掏钱包来补钱了。小A想知道自己至少需要买多少件衣服。 #include <cstdio…...
基于STM32采用CS创世 SD NAND(贴片SD卡)完成FATFS文件系统移植与测试
一、前言 在STM32项目开发中,经常会用到存储芯片存储数据。 比如:关机时保存机器运行过程中的状态数据,上电再从存储芯片里读取数据恢复;在存储芯片里也会存放很多资源文件。比如,开机音乐,界面上的菜单图…...
K_A12_007 基于STM32等单片机驱动AS608光学指纹识别模块 OLED0.96显示
K_A12_007 基于STM32等单片机驱动AS608光学指纹识别模块 OLED0.96显示一、资源说明二、基本参数参数引脚说明三、驱动说明对应程序:四、部分代码说明1、接线引脚定义1.1、STC89C52RCAS608光学指纹模块1.2、STM32F103C8T6AS608光学指纹模块五、基础知识学习与相关资料下载六、视…...
map和set介绍及其底层模拟实现
致努力前行的人: 要努力,但不要着急,繁花锦簇,硕果累累都需要过程! 目录 1.关联式容器 2.键值对 3.树形结构的关联式容器 3.1set的介绍 3.2set的使用 3.3multiset的使用 3.4map的使用 3.5multimap的使用 4.常见的面试题…...
实现一个比ant功能更丰富的Modal组件
普通的modal组件如下: 我们写的modal额外支持,后面没有蒙版,并且Modal框能够拖拽 还支持渲染在文档流里,上面的都是fixed布局,我们这个正常渲染到文档下面: render部分 <RenderDialog{...restState}visi…...
2023美赛F题思路数据代码分享
文章目录赛题思路2023年美国大学生数学建模竞赛选题&论文一、关于选题二、关于论文格式三、关于论文提交四、论文提交流程注意不要手滑美赛F题思路数据代码【最新】赛题思路 (赛题出来以后第一时间在CSDN分享) 最新进度在文章最下方卡片,加入获取一手资源 202…...
Flutter如何与Native(Android)进行交互
前言 上一篇文章《Flutter混合开发:Android中如何启动Flutter》中我们介绍了如何在Native(Android项目)中启动Flutter,展示Flutter页面。但是在开发过程中,很多时候并不是简单的展示一个页面即可,还会涉及…...
数据库主从复制和读写分离
主从数据库和数据库集群的一些问题 数据库集群和主从数据库最本质的区别,其实也就是data-sharing和nothing-sharing的区别。集群是共享存储的。主从复制中没有任何共享。每台机器都是独立且完整的系统。 什么是主从复制? 主从复制,是用来建立一个和主数…...
Java并发编程面试题——线程安全(原子性、可见性、有序性)
文章目录一、原子性高频问题1.1 Java中如何实现线程安全?1.2 CAS底层实现1.3 CAS的常见问题1.4 四种引用类型 ThreadLocal的问题?二、可见性高频问题2.1 Java的内存模型2.2 保证可见性的方式2.3 volatile修饰引用数据类型2.4 有了MESI协议,为啥还有vol…...
DialogFragment内存泄露问题能不能一次性改好
孽缘 自DialogFragment在Android3.0之后作为一种特殊的Fragment引入,官方建议使用DialogFragment代替Dialog或者AllertDialog来实现弹框的功能,因为它可以更好的管理Dialog的生命周期以及可以更好复用。 然而建议虽好,实用须谨慎,…...
java学习--多线程
多线程 了解多线程 多线程是指从软件或者硬件上实现多个线程并发执行的技术。 具有多线程能力的计算机因有硬件支持而能够在同一时间执行多个线程,提升性能。 并发和并行 并行:在同一时刻,有多个指令在CPU上同时执行并发࿱…...
90后阿里P7技术专家晒出工资单:狠补了这个,真香...
最近一哥们跟我聊天装逼,说他最近从阿里跳槽了,我问他跳出来拿了多少?哥们表示很得意,说跳槽到新公司一个月后发了工资,月入5万多,表示很满足!这样的高薪资着实让人羡慕,我猜这是税后…...
2023美赛C题:Wordle筛选算法
Wordle 规则介绍 Wordle 每天会更新一个5个字母的单词,在6次尝试中猜出单词就算成功。每个猜测必须是一个有效的单词(不能是不能组成单词的字母排列)。 每次猜测后,字母块的颜色会改变,颜色含义如下: 程…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...
shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...
Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...
WebRTC从入门到实践 - 零基础教程
WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC? WebRTC(Web Real-Time Communication)是一个支持网页浏览器进行实时语音…...
在树莓派上添加音频输入设备的几种方法
在树莓派上添加音频输入设备可以通过以下步骤完成,具体方法取决于设备类型(如USB麦克风、3.5mm接口麦克风或HDMI音频输入)。以下是详细指南: 1. 连接音频输入设备 USB麦克风/声卡:直接插入树莓派的USB接口。3.5mm麦克…...
git: early EOF
macOS报错: Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...
jdbc查询mysql数据库时,出现id顺序错误的情况
我在repository中的查询语句如下所示,即传入一个List<intager>的数据,返回这些id的问题列表。但是由于数据库查询时ID列表的顺序与预期不一致,会导致返回的id是从小到大排列的,但我不希望这样。 Query("SELECT NEW com…...
FOPLP vs CoWoS
以下是 FOPLP(Fan-out panel-level packaging 扇出型面板级封装)与 CoWoS(Chip on Wafer on Substrate)两种先进封装技术的详细对比分析,涵盖技术原理、性能、成本、应用场景及市场趋势等维度: 一、技术原…...
精益数据分析(98/126):电商转化率优化与网站性能的底层逻辑
精益数据分析(98/126):电商转化率优化与网站性能的底层逻辑 在电子商务领域,转化率与网站性能是决定商业成败的核心指标。今天,我们将深入解析不同类型电商平台的转化率基准,探讨页面加载速度对用户行为的…...
