蓝桥杯比赛常考算法_备战蓝桥--算法竞赛入门第一章总结
筆者備戰藍橋杯先打算看完《算法競賽入門經典》第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(雙精度浮點數)來防止數據異常,但要注意有些題目要求超高精度的話,就要用數組來處理數據。
總結
以上是生活随笔為你收集整理的蓝桥杯比赛常考算法_备战蓝桥--算法竞赛入门第一章总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ad 原理图差分线_采用差分PulSAR
- 下一篇: 语言 OJ 高低位逆转_C语言调动硬件的