【持续更新】机试遇到的一些坑~
- ======渣渣楼主遇到的很多低级错误======
- 遇到超时限制,首先考虑把cin cout改成scanf printf
- 注意getchar()吃掉回车
- 注意输入 输出格式 如空格、字母大小写、换行等。
- 能用double 就不用float
- 赋值为=,判断为==
- INT_MAX代表int中的无穷
- 有时要定义bool visit[maxn]={false}数组,但是记得每次输入之后都要初始化---->memset(visit,false,sizeof(visit));
- 字符数组char s[100] 只能用scanf printf 输入输出,不适用于C++的cin cout
- 定义字符串 string s;判断字符串与某其他串相等 用双引号if(s=="!")。有时会脑抽?
- if else if ..else if...的逻辑 与 if ...if...if...不同
- 小写字母的ASCII码反而比大写字母大32 =====另外可用 toupper将小写字母转大写、tolower将大写字母转小写
- stoi是将string转为int 但string的长度不超过10位
- 如何实现浮点数四舍五入:
flaot f=...; int i=(int)(f+0.5);//i即为f四舍五入后的结果
- map的find 函数与string的find函数关于没有找到目标元素的区别:
//map my.find(..)==my.end(); //string s.find(...)==string::npos;
- 定义结构体加分号
- 整形int 占用32bit=====绝对值在10^9范围以内的整数或者32位整数均可定义为int 型
- 如果说绝对值在10^18以内(>10^9)或者说64位整数 则定义成long long 型
-
//符号常量 #define pi 3.14 //注意末尾不加分号 const常量 const double pi = 3.14;
- 如果需要给多个变量赋同一个值,可以用连续等号
int m.n; m = n = 5;
- log(double x)返回的是以自然对数为底的对数。----C中没有以任意底数为对数的函数,所以只能使用换底公式----log a b =log e b/ log e a;
- %2d表示输出场宽为2的整数,超过2位按实际数据输出,不够2位右对齐输出;%02d表示输出场宽为2的整数,超过2位按实际数据输出,不足2位前置补0;%5.2f表示输出场宽为5的浮点数,其中小数点后有2位,不够5位右对齐输出。
- a*b = 最大公约数 * 最小公倍数;其中 最大公约数GCD用 辗转相除法求得
int GCD(int a, int b){ if(b == 0) return a; else return(b, a%b); }
- 注意字符串中字符 与整数之间的转化 +/- ‘0’,有时用的是整数 有时用的为字符。
- 如果图的顶点个数>1000,一般使用邻接表建图。顶点个数小于1000,为了方便 可以使用邻接矩阵建图。
- switch 语句中 每个分支 记得要加 break!!!!

浙公网安备 33010602011771号