algorithm-base-week1
校队培训内容概要
枚举
1.POJ1013抛硬币
2.*POJ1222开关灯
递归递推
1.*汉诺塔
2.斐波那契:爬楼梯,生兔子
二分三分:日后优化有用
前缀差分:前缀就是前n项和,差分就是Sm-n=Sm-Sn,日后优化有用
scanf输出格式的问题
今天在做一道入门题(luogu:P1634)的时候怎么也无法提交过去,检查后发现是输入超时,输出部分答案显示不正常
检查后发现是格式符出了问题
格式控制符 | 说明 |
---|---|
%c | 读取一个单一的字符 |
%hd、%d、%ld | 读取一个十进制整数,并分别赋值给 short、int、long 类型 |
%ho、%o、%lo | 读取一个八进制整数(可带前缀也可不带),并分别赋值给 short、int、long 类型 |
%hx、%x、%lx | 读取一个十六进制整数(可带前缀也可不带),并分别赋值给 short、int、long 类型 |
%hu、%u、%lu | 读取一个无符号整数,并分别赋值给 unsigned short、unsigned int、unsigned long 类型 |
%f、%lf | 读取一个十进制形式的小数,并分别赋值给 float、double 类型 |
%e、%le | 读取一个指数形式的小数,并分别赋值给 float、double 类型 |
%g、%lg | 既可以读取一个十进制形式的小数,也可以读取一个指数形式的小数,并分别赋值给 float、double 类型 |
%s | 读取一个字符串(以空白符为结束) |
以l开头的变成ll | 代表long long,比如%lld代long long in,%llu代表unsigned long long int |
scanf的格式符对应c语言的类型是很严格的,int和long int都是不同的,注意区分
如果介意或者担心又不愿意记可以使用cin cout(我为了效率强迫使用scanf和printf来熟练)其中常用的有如下几条
格式控制符 | 说明 |
---|---|
以下的在前面加上l | 代表long,比如%lld代long long in,%lu代表unsigned long int。l至多两个 |
%d、%ld | 读取一个十进制整数,并分别赋值给 short、int、long 类型 |
%u、%lu | 读取一个无符号整数,并分别赋值给 unsigned short、unsigned int、unsigned long 类型 |
%f、%lf | 读取一个十进制形式的小数,并分别赋值给 float、double 类型 |
以下是字符 | |
%c | 读取一个单一的字符 |
%s | 读取一个字符串(以空白符为结束) |
模拟和递归递推
- 模拟的难点在:读懂题目的含义
- 递归递推的难点在于:找到递推公式