算法竞赛入门经典学习笔记

来源:互联网 发布:宾得k3ii知乎 编辑:程序博客网 时间:2024/05/17 00:09

作为一名刚接触cs专业的萌新小白,开始学习蕊蕊大佬推荐的《算法竞赛入门经典》一书,一边学习一遍记录一些自己觉得很有用的小知识,作为自己平凡之路的一部分,日常慢慢更。emmmm

1.定义π的新姿势:

const double pi=acos(-1.0)

2.判断一个数的平方根是否为整数:

int m=floor(sqrt(n)+0.5);if(m*m==n) printf("%d\n",n);

由于误差的影响,整数1可能会变成0.9999999999,floor的结果可能会是0而不是1,为了减小误差的影响,一般改为四舍五入。

3.一般要求输出的行首行尾均无空格,相邻两个数据间用单个空格隔开:

例如总共要输出n个整数,但只有n-1个空格,所以只好分两条语句输出。如:

for(int i=n-1;i>=1;i--)printf("%d",a[i]);printf("%d\n",a[0]);

另一种方法是设置一个标志变量first,用来判断当前要输出的变量是否为第一个:

int first=0;for(int i=1;i<=n;i++) {     if(first) first=0;      else printf(" ");      printf("%d",i); }

4.在当前流行的竞赛平台中,int都是32位整数,范围是-2147483648~2147483647.