C++算法竞赛必刷127道OJ题
。
1.准备
1.1.洛谷的使用
1.1.1.洛谷的编译错误

刷新⼀下就能看到编译错误的信息:

1.1.2.洛⾕WA(wronganswer)
这说明代码运⾏结果和预期不符,所有答案都是错误的,这⼀定代码写的有问题。


1.1.3.洛⾕部分⽤例通过

⼀个题⽬可能有多个测试⽤例,有部分测试⽤例通过,但是也有部分测试⽤例未通过,基本的原因是 代码考虑不周全。
1.1.4 程序运⾏时出现运⾏时问题
这种场景代码是程序编译没有语法问题,编译产⽣了可执⾏程序,程序运⾏时出现了问题,⽐如:段 错误、除数为0等。
1.1.4.1 段错误提⽰

1.1.4.2 除数为0的提⽰

1.1.5 题⽬运⾏有时间限制超时了

可能得的原因:
- 1. 代码中不⼩⼼,造成死循环了
- 2. 代码中算法复杂度太⾼,太耗时
1.2. ⽜客竞赛
1.2.1 编译错误

1.2.2 答案错误
这种情况说明,代码是没有语法问题的,但是程序运⾏的结果,是不符合题⽬预期的。

1.2.3 通过部分⽤例

1.2.4 运⾏超时

- 可能性:代码中出现了死循环,代码的算法复杂度确实是过⾼,太耗时。
- 解决办法:检查代码、优化程序
1.3.让Dev-C++支持C++11
在DevC++的使⽤过程中,有时候使⽤较新的语法,可能编译不过,提⽰错误,如下所⽰:
#include <iostream>
#include <string>
using namespace std;
int main() {
string s = "abc";
cout << "s:" << s << endl;
// 第一次尾删
s.pop_back();
cout << "s after first pop_back:" << s << endl;
// 第二次尾删
s.pop_back();
cout << "s after second pop_back:" << s << endl;
// 注意:如果再次调用 s.pop_back(),将会导致未定义行为,因为此时字符串已为空
// 但为了演示可能的错误处理,我们可以检查字符串是否为空再决定是否删除
if (!s.empty()) {
s.pop_back();
cout << "s after potential third pop_back (if not empty):" << s << endl;
} else {
cout << "Cannot pop_back from an empty string." << endl;
}
return 0;
}
pop_back是C++11这个版本中新增的成员函数,默认编译就会报错,那怎么解决呢?
菜单中,点击:⼯具->编译选项,打开

出现这样⼀个窗⼝:

勾选【编译时加⼊⼀下命令】,然后在下⽅的编译框中加⼊:

这样子就设置好了,我们重新编译一下

点击确定即可。 要想⽀持其他C++的标准也是⼀样的⽅法。
-std=c++14
-std=c++17
-std=c++20
...
1.4.Dev-C++分辨率低解决方法
因为Dev-C++很久不再更新,⽽且版本⽐较⽼,所现在显⽰器的⾼分辨率⽀持不好,所以看起来显⽰不 够清晰。 为了解决这个问题,可以这样做:
1. 找到DevC++的桌⾯图标,右击点击属性,如下图:

2. 在属性中,点击【兼容性】,在兼容性中,点击【更改⾼DPI设置】

3. 在这个⻚⾯,点击【系统(增强)】,然后点击【确定】

然后点击【应⽤】、【确定】就可以了。
2.C++必刷127道OJ
2.1.入门练习
B2002 Hello,World! - 洛谷 | 计算机科学教育新生态
B2003 输出第二个整数 - 洛谷 | 计算机科学教育新生态
2.2.数据类型
2.3.变量常量
B2007 A + B 问题 - 洛谷 | 计算机科学教育新生态
B2614 【深基1.习6】鸡兔共笼 - 洛谷 | 计算机科学教育新生态
2.4.算术操作符
B2008 计算 (a+b)×c 的值 - 洛谷 | 计算机科学教育新生态
P1425 小鱼的游泳时间 - 洛谷 | 计算机科学教育新生态
2.5.赋值操作符
2.6.类型转换
1034-[NOIP2017]成绩_牛客竞赛语法入门班顺序结构习题
B2016 浮点数向零舍入 - 洛谷 | 计算机科学教育新生态
B2017 打印 ASCII 码 - 洛谷 | 计算机科学教育新生态
2.7.printf和scanf(cout和cin)
B2012 甲流疫情死亡率 - 洛谷 | 计算机科学教育新生态
B2013 温度表达转化 - 洛谷 | 计算机科学教育新生态
B2015 计算并联电阻的阻值 - 洛谷 | 计算机科学教育新生态
B2014 与圆相关的计算 - 洛谷 | 计算机科学教育新生态
P5705 【深基2.例7】数字反转 - 洛谷 | 计算机科学教育新生态
P5708 【深基2.习2】三角形面积 - 洛谷 | 计算机科学教育新生态
2.8.条件判断与循环
2.8.1.if和else
B2039 整数大小比较 - 洛谷 | 计算机科学教育新生态
2.8.2.关系操作符
B2044 有一门课不及格的学生 - 洛谷 | 计算机科学教育新生态
B2032 等差数列末项计算 - 洛谷 | 计算机科学教育新生态
2.8.3.条件操作符
E-CSimplemathproblem_牛客竞赛语法入门班选择结构习题
P5709 【深基2.习6】Apples Prologue / 苹果和虫子 - 洛谷 | 计算机科学教育新生态
2.8.4.逻辑操作符
P5711 【深基3.例3】闰年判断 - 洛谷 | 计算机科学教育新生态
B2043 判断能否被 3,5,7 整除 - 洛谷 | 计算机科学教育新生态
P5710 【深基3.例2】数的性质 - 洛谷 | 计算机科学教育新生态
2.8.5.switch语句
2.8.6.while循环
1023-反向输出一个四位数_牛客竞赛语法入门班顺序结构习题
B2078 含 k 个 3 的数 - 洛谷 | 计算机科学教育新生态
B2080 计算多项式的值 - 洛谷 | 计算机科学教育新生态
2.8.7.for循环
B2058 奥运奖牌计数 - 洛谷 | 计算机科学教育新生态
B2070 计算分数加减表达式的值 - 洛谷 | 计算机科学教育新生态
B2069 求分数序列和 - 洛谷 | 计算机科学教育新生态
2.8.8.do……while循环
B2076 球弹跳高度的计算 - 洛谷 | 计算机科学教育新生态
2.8.9.break和continue
2.8.10.嵌套循环
B2064 斐波那契数列 - 洛谷 | 计算机科学教育新生态
B2079 求出 e 的值 - 洛谷 | 计算机科学教育新生态
B2085 第 n 小的质数 - 洛谷 | 计算机科学教育新生态
2.9.数组
⼀般在涉及到需要数组存放数据的时候,我们要注意:
- 1. 有的题⽬要求数据从下标0的位置开始存放,也有些题⽬要求数据是从下标1的位置开始存 放,要仔细阅读题⽬。让从下标1开始存放的时候,数组的开辟必须要有多余的空间使 ⽤,如果开辟的刚刚好就会越界。 比特就业课
- 2. 数组空间的开辟要⾜够,以免数据越界,所以经常题⽬需要存放n个数据,我们就开辟 n+10个空间,这样空间就⾮常充⾜,⽐较保险。其实在空间⾜够的情况下,浪费⼀点空 间是不影响的。在后期学习动态规划相关算法的时候,你就会有⾮常明显的感觉,⼀般都 会预留好空间。
- 3. ⼀般数组较⼤的时候,建议将数组创建成全局数组,因为局部的数组太⼤的时候,可能会 导致程序⽆法运⾏,刷题多了就⻅怪不怪了。全局变量(数组)是在内存的静态区开辟空 间,但是局部的变量(数组)是在内存的栈区开辟空间的,每个程序的栈区空间是有限 的,不会很⼤。
2.9.1.一维数组
B2093 查找特定的值 - 洛谷 | 计算机科学教育新生态
B2089 数组逆序重存放 - 洛谷 | 计算机科学教育新生态
B2091 向量点积计算 - 洛谷 | 计算机科学教育新生态
2.9.2.二维数组
P5732 【深基5.习7】杨辉三角 - 洛谷 | 计算机科学教育新生态
B2101 计算矩阵边缘元素之和 - 洛谷 | 计算机科学教育新生态
B2108 图像模糊处理 - 洛谷 | 计算机科学教育新生态
P2550 [AHOI2001] 彩票摇奖 - 洛谷 | 计算机科学教育新生态
2.9.3.字符数组
P5733 【深基6.例1】自动修正 - 洛谷 | 计算机科学教育新生态
B2109 统计数字字符个数 - 洛谷 | 计算机科学教育新生态
B2113 输出亲朋字符串 - 洛谷 | 计算机科学教育新生态
B2110 找第一个只出现一次的字符 - 洛谷 | 计算机科学教育新生态
2.10.函数
B2130 简单算术表达式求值 - 洛谷 | 计算机科学教育新生态
B2129 最大数 max(x,y,z) - 洛谷 | 计算机科学教育新生态
P5738 【深基7.例4】歌唱比赛 - 洛谷 | 计算机科学教育新生态
B2127 求正整数 2 和 n 之间的完全数 - 洛谷 | 计算机科学教育新生态
B2131 甲流病人初筛 - 洛谷 | 计算机科学教育新生态
B2136 素数回文数的个数 - 洛谷 | 计算机科学教育新生态
B2139 区间内的真素数 - 洛谷 | 计算机科学教育新生态
2.11.递归
P5739 【深基7.例7】计算阶乘 - 洛谷 | 计算机科学教育新生态
B2064 斐波那契数列 - 洛谷 | 计算机科学教育新生态
B2142 求 1+2+3+...+N 的值 - 洛谷 | 计算机科学教育新生态
B2144 阿克曼(Ackermann)函数 - 洛谷 | 计算机科学教育新生态
B2145 digit 函数 - 洛谷 | 计算机科学教育新生态
B2147 求 f(x,n) - 洛谷 | 计算机科学教育新生态
B2148 再求 f(x,n) - 洛谷 | 计算机科学教育新生态
2.12.位运算
2.12.1.二进制和进制转换
B3619 10 进制转 x 进制 - 洛谷 | 计算机科学教育新生态
B3620 x 进制转 10 进制 - 洛谷 | 计算机科学教育新生态
2.12.2.位运算符
2.13.类和结构体
P5742 【深基7.例11】评等级 - 洛谷 | 计算机科学教育新生态
B2125 最高分数的学生姓名 - 洛谷 | 计算机科学教育新生态
B2131 甲流病人初筛 - 洛谷 | 计算机科学教育新生态
更多推荐


所有评论(0)