1.特殊求解的地方
2.一些数学公式
比如二叉树求全深度数值那道题
3.掌握有关库函数
#include<algorithm>
- 包含sort()函数【排列函数】C++ sort()排序详解-CSDN博客,next_permutation()函数【求解全排列问题】
- 求解数组大小sizeof(arr)/sizeof(arr[0])
- 比较大小的函数max(a,b),min(a,b)
#include<cmath>
-
交换swap()函数
4.一些再平时训练容易犯的小错误
i++和++i的区别-CSDN博客
数组:
for()函数里面的三个条件地顺序
5.格式问题
6.数据范围
数组具体能开多大:
c++数组最大长度(干货)_数组最大可以开多大-CSDN博客
各类数据范围为:
int大概是10位,long long int 19位
如果数据比较大的话,可以(尤其是差分和前缀和那种题目)
typedef long long LL;
LL a;
但是如果LL加数组的画,即使数组是全局变量,也不会自动赋值为0吗?
7.巧用一些数学思维
比如:1.??
2.1.k倍区间 - 蓝桥云课 (lanqiao.cn)
将转变为
8.一些认知理解上的冲突:
区间一般默认为有两个数,除非特殊说明
9.在C语言中1s的时间复杂度大概是1亿
10.常规问题思考:
- 从小到大的顺序排列:从小到大枚举,放进数组里之后再去排序
比如:1229. 日期问题 - AcWing题库
10.输入输出问题:
输入:
1.如果没有限定可以输入多少个数的话,可以直接
cin >> str;
2. 输入多组数据,
日期差值那道题。
while(~scanf("%04d%02d%02d\n%04d%02d%02d",&y1,&m1,&d1,&y2,&m2,&d2))
{
printf("%d\n",abs(calc(y1,m1,d1)-calc(y2,m2,d2))+1); //abs()函数用来求绝对值
}
3.限定最后一个数字为0时候
4.多组数据 :562. 壁画 - AcWing题库
scanf("%d",&t);
int i=1;
while(i<=t)
{
}
5.输入矩阵样式的字符,但又没规定一行多少个字1.卡片换位 - 蓝桥云课 (lanqiao.cn)
getline(cin, str1);//读取一行字符串的方式
getline(cin, str2);
s = str1 + str2;//拼接字符串
或者
for(int i = 0;i < 2;i ++ )
{
string a;
getline(cin,a); // 读取带空格的字符串,整行读取
s += a;
}