Bootstrap

明天省赛,我都还不太熟悉Dev - C++,怎么切换成C++11了?它的报错看不懂呀,那花八分钟看看这篇文章吧~解决你的困惑。

🚥资源分享

我不知道小伙伴们有没有dev5.4.0的资源,假如有那是最好的。假如没有了,也不用着急,我已经将它们上传到gitee上了。可以直接下载喔~


学生机环境-Dev-cpp5.4.0及API帮助文档


这差不多是今年里最后一次系统的写蓝桥杯了吧,之后了,还是会更算法,只是不会这种系统的更蓝桥杯的算法了,会在执梗的社区冬冬这里更文章,跟着刷刷泡泡洛谷的题,会跟着英雄哥刷刷lc,记录一下在acwing跟着y总学算法的笔记,也算是尽自己的绵薄之力,帮y总宣传一下咱们acwing社区吧~。

因为写蓝桥杯嘛,然后也有很多在骂我呀,骂执梗呀还有骂泡泡的,其他的,p佬、小怂、乐乐和小羊那儿我倒是没有注意到太多负面的话吧。这个我没有什么好说的,我是逆来顺受,不喜欢抗争的人。

我们从来没有说过蓝桥杯十分十分重要,相当的有含金量的话,我和执梗的观念只是,这里有个比赛,我们正好也在准备它,那咱们也就更新和它相关的文章罢了,我们自己知道我们是菜狗,真觉得没必要你们辛苦打字骂我们几个。我们也是从当初对蓝桥带着一点好感到现在只想说一句:蓝桥杯绝绝子


在这里插入图片描述

🚧快捷键

1、Ctrl + N 新建源代码
2、Ctrl + F 搜索,同时也可以切换到替换了 在这里插入图片描述
Dev应该没有其他支撑咱们比赛时候使用的快捷键了,它没有自动补齐,没有代码联想的它,属实可爱。
在这里插入图片描述
然后我不知道是我热键冲突了,或是其他原因,我自己使用不了 ctrl +/ 进行注释, ctrl + shift + / 也用不了。这两个快捷键是大多数编辑器中的默认的注释方式了。

在这里插入图片描述

🚨环境配置

①编译——注:下面代码中的头文件应该是bits/stdc++.h。前面三张图被我敲错了,但是因为截屏弄的,我就不去重新截屏再加工了
在这里插入图片描述②运行
在这里插入图片描述
③解决问题的步骤
出现这种问题,主要是因为这个dev,咱们刚拿到手的时候,大多数是没有进行设定编译器设置,需要咱们手动设置。(我都把头文件敲错了…都不报错…)
步骤一:
在这里插入图片描述
步骤二:
在这里插入图片描述
步骤三:
在这里插入图片描述
解决成功


再次编译运行
在这里插入图片描述
点击运行
在这里插入图片描述

在这里插入图片描述

🌻将dev修改为支持C++11

既然官方说了支持c++11,有人造好轮子了,那咱们就乖乖用吧,只是怎么用了?
比如常用的auto吧,假如不修改为c++11,是使用不了的。

在这里插入图片描述
修改操作:
在这里插入图片描述
再次编译+运行
在这里插入图片描述


现在就可以使用C++11标准的语法去编写代码了。
在这里插入图片描述

🌻建议直接万能头文件

我自己的建议了,平时刷题的时候可以有选择的#include需要的头文件,明天就直接老老实实万能头吧,提前敲好放着,要用的时候直接复制粘贴,可以省一点时间。
在这里插入图片描述

在这里插入图片描述

🚩常见问题

🌻编译无法通过——大多数是语法问题

1、代码拼写错误

这种报错的意思大概是这个变量还没有被声明过。

[Error] 'dsi' was not declared in this scope

这种情况是最好处理的了,编译器一般都会直接定位过去的。
在这里插入图片描述


再举一个例子

在这里插入图片描述

2、库函数名写错了
调用库函数的时候,函数名写错了,大致是这种样子的,读出来了,也是说,没有这个库函数嗷~

[Error] 'std::string' has no member named 'lenght'

在这里插入图片描述

3、库函数调用格式错误

比如想用sort排序。
在这里插入图片描述
正确格式
在这里插入图片描述
解决方式——大多数是依赖平时积累的经验+查提供的c++API.chm文档

4、缺少了标点符号,或者标点符号用错了

[Error] expected ';' before 'cout'

在这里插入图片描述

在这里插入图片描述

4、取名的时候,避免直接使用容易混淆的标识符,比如next、sort、max…
因为个别时候会与C++自带的变量名重复,导致编译器找不着北。
在这里插入图片描述
在这里插入图片描述

🌻编译可以通过,但结果有问题——大多数是逻辑问题了

1、假如是数组,注意数组角标越界
编译的时候Dev不会出现任何警告或者提示,但是运行出来的结果挺奇怪的
在这里插入图片描述

运行结果在这里插入图片描述


常见的数组角标可能越界的题型:
1、搜索。注意搜索的起点是1还是0
2、差分 和 前缀和 因为有i-1的索引,大多数也是从1开始
3、动态规划,大多数也是存在i-1的索引,结合实际情况而看了
暂时想起这么点,假如还有的会来补充的~


2、代码内部逻辑错误——调试
方法一:printf/cout输出大法
Dev编辑器调试
能肉眼deBug是最好的,假如直接条调试比较吃力的话,可以就使用Dev自带的调试功能,虽然不太好用…
在这里插入图片描述


步骤①
在这里插入图片描述
步骤②
在这里插入图片描述
步骤③
在这里插入图片描述


3、TLE(超时问题)
在本地的Dev跑,就算跑了半个小时,也不会出现超时的提醒,但是考试的评测系统是有时间限制的,大多数情况下,就是1秒,现在C++一秒大概能进行一亿次运算 ( 1 0 7 − 1 0 8 ) (10^7 - 10^8) (107108)的样子,所以做题之前,先看好看好数据范围,假如数据范围是到 1 0 5 10^5 105了,这种时候,假如用两个for循环来一个 O ( n 2 ) O(n^2) O(n2)的时间复杂度,那么进行的就是1 0 10 0^{10} 010次运算,会超时的(只是不会做的时候,可以考虑暴力骗分)


1. n ≤ 30 n≤30 n30, 指数级别, dfs+剪枝,状态压缩dp

2. n ≤ 100 n≤100 n100 => O ( n 3 ) O(n^3) O(n3),floyd,dp,高斯消元

3. n ≤ 1000 n≤1000 n1000 => O ( n 2 ) O(n^2) O(n2) O ( n 2 l o g n ) O(n^2logn) O(n2logn),dp,二分,朴素版Dijkstra、朴素版Prim、Bellman-Ford

4. n ≤ 10000 n≤10000 n10000 => O ( n ∗ n ) O(n∗\sqrt n) O(nn ),块状链表、分块、莫队

5. n ≤ 100000 n≤100000 n100000 => O ( n l o g n ) O(nlogn) O(nlogn) => 各种sort,线段树、树状数组、set/map、heap、拓扑排序、dijkstra+heap、prim+heap、Kruskal、spfa、求凸包、求半平面交、二分、CDQ分治、整体二分、后缀数组、树链剖分、动态树

6. n ≤ 1000000 n≤1000000 n1000000 => O ( n ) O(n) O(n), 以及常数较小的 O ( n l o g n ) O(nlogn) O(nlogn) 算法 => 单调队列、 hash、双指针扫描、并查集,kmp、AC自动机,常数比较小的 O ( n l o g n ) O(nlogn) O(nlogn)的做法:sort、树状数组、heap、dijkstra、spfa

7. n ≤ 10000000 n≤10000000 n10000000 => O ( n ) O(n) O(n),双指针扫描、kmp、AC自动机、线性筛素数

8. n ≤ 1 0 9 n \le 10^9 n109 => O ( n ) O(\sqrt n) O(n ),判断质数

9. n ≤ 1 0 18 n \le 10^{18} n1018 => O ( l o g n ) O(logn) O(logn),最大公约数,快速幂,数位DP

10. n ≤ 1 0 1000 n \le 10^{1000} n101000 => O ( ( l o g n ) 2 ) O((logn)^2) O((logn)2),高精度加减乘除

11. n ≤ 1 0 100000 n \le 10^{100000} n10100000 => O ( l o g k × l o g l o g k ) O(logk×loglogk) O(logk×loglogk),k表示位数,高精度加减、FFT/NTT


空间倒是一般都不会爆的,只要不开阶乘级别的数组(比如int a[ 20!]),算法竞赛对空间上的要求比较低。

4、涉及到取模的、或者数据范围很大,还要进行整数的乘法的题,不要使用int了,全部使用 long long

在这里插入图片描述

其他的,也没有了吧,希望大家不要紧张叭~
努力对得起自己的付出就好,执梗和我可能虽然是冲刺群的主要经营者,要选题,要催打卡,要踢人…,就我自己而言嘛,我写的题肯定是没有泡泡、小怂、p佬、乐乐他们几个多的,所以我自己也是挺慌,学校也爆了疫情,老师说之前申请的线下赛是不能改了,不知道周六能不能打了。
可能大家也知道今年线上赛作弊的,或者车队,800、1500包什么什么奖,这个了,我就不做评价啦,每个人有每个人的价值观叭,加油加油加油,会好的


在这里插入图片描述

然后有不懂的题想请教的,可以私信这几位博主呀,这个两个社区:高校算法学习社区AI技术社里也有大量的大佬呀,大家也可以进去提问的喔~。
浅说一点,私信请教别人的时候,点个免费的关注吧,人家并没有什么给谁讲题的义务,我经常也遇得到那种也没有点赞,也没有关注的,直接一段代码的截屏,问,为什么这种写。换位思考一下,就你想想你被这种问了以后,心中是怎么想的了

C/C++

Pluto(算法健将,各类周赛打宝宝级别)看看Ta😊
泡泡(以大一学籍让无数大四学长自愧不如,正在刷爆洛谷)看看Ta😊
折叠的小饼干(实力派学姐,温柔耐心~)看看Ta😊
knao_s(题解绝绝子,除了详细到位,还是详细到位)看看Ta😊
永遇乐金枪鱼(一位谦虚的大佬,精准把握你题解思路中不对的地方看看Ta😊

Java

执梗(带三百人冲刺蓝桥主要负责人,讲题细心,出题尽职尽责🌹🌹🌹)看看Ta😊
小怂(用最朴素的for、while、if语句刷爆蓝桥云课,担心不熟悉数据结构会影响解题的小伙伴可以多请教他喔~)看看Ta😊
小羊不会飞(题解常年稳居热榜前三,高质量题解质量,讲题耐心)看看Ta😊
Hydrion-Qlz(西安交大大佬,算法爱好者)看看Ta😊
小成同学(acwing师兄,刷题健将,考虑问题周全)看看Ta😊
托马斯—酷涛(Java算法爱好者,对多个方向均有涉猎)看看Ta😊
小王同学(算法博客详细,答疑热情,登上热榜第一看看Ta😊

Python

小郑(国赛强劲实力选手,热榜常客,求知欲很强)看看Ta😊
小蓝(算法思路清晰,博客题解详细)看看Ta😊
秋刀鱼(会三门语言,题解很详细滴)看看Ta😊
;