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读取一个字符串(以空白符为结束)

模拟和递归递推

  • 模拟的难点在:读懂题目的含义
  • 递归递推的难点在于:找到递推公式
Last modification:March 8, 2021
如果觉得我的文章对你有用,请随意赞赏。咖啡(12RMB)进度+100%,一块巧克力(1RMB)进度+6%。
(赞赏请备注你的名称哦!后台记录中来自理工小菜狗)