蓝桥杯比赛常考算法_备战蓝桥--算法竞赛入门第一章总结

笔者备战蓝桥杯先打算看完《算法竞赛入门经典》第2版,在这里写下第一章的笔记,供自己和大家参考。

鸡兔同笼问题

原题:

已知鸡和兔的总数量为n,总腿数为m。输入n和m,依次输出鸡的数目和兔的数目。如 果无解,则输出No answer。

样例输入:

14 32

样例输出:

12 2

样例输入:

10 16

样例输出:

No answer

看到题目后,可以很简单的写出方程组(然而我第一反应是暴力求解,题目做多的后遗症),设鸡有a只,兔有b只,则a+b=n,2a+4b=m;易得a=(4n-m)/2,b=n-a;然后注意一下特殊情况就可以AC通过了,下面给出我的代码

有人看到肯定会想,这么简单的题目,有必要记下来吗?

额。。。是这样的,我看到题目后,就是无脑暴力求解,没有继续思考,结果一看书上的代码。(+_+)?好像直接用简单的算式就能完成要求。我记录下来,就是提醒自己,思考的时候可以灵活一点,整天暴力求解对自己的成长没什么帮助。

π的精确近似值

π约等于acos(-1.0)(精确到小数点后16位)

(注:acos()在头文件中)

sinx和cosx的用法

sin()和cos()在头文件中

需要注意的是函数的参数值是弧度制

如果需要角度则需要转换:

x° = x*π / 180 弧度

常量相乘溢出

如果两个很大的数进行相乘,计算机的int不足以装下相乘结果时,会出现溢出。

例如:111111*111111(6个1  乘  6个1)直接使用%d输出失败

输出需要%lld,而且常量相乘要强制转换(long long)

在感觉变量会溢出时,就采用 long long或者 double(双精度浮点数)来防止数据异常,但要注意有些题目要求超高精度的话,就要用数组来处理数据。

你可能感兴趣的:(蓝桥杯比赛常考算法)