CCPC 2016 長春區域賽 D - Triangle(思維)
阿新 • • 發佈:2018-12-01
題目大意:
有n根棒,長度分別為1,2,3......n,要求從中刪掉一些棒,使得剩下的任意三根不能構成三角形,問最少刪除幾根
題解:
一看資料範圍覺得應該是個水題。
三根棒能構成三角形則較短的兩條邊之和>第三邊,推了一番之後很神奇地能想到斐波那契數列。而20以內的斐波那契數列只有6項 1,2,3,5,8,13,也就是說,當遇到這幾個數字長度的木棒要刪掉,其他的留著就好了
#include <bits/stdc++.h> #include<cstring> using namespace std; int main() { //freopen("input.txt","r",stdin); int T; cin>>T; int n; int ca=1; while(T--) { cin>>n; cout<<"Case #"<<ca++<<": "; if(n<=3) { cout<<0<<endl; } else if(n<5) { cout<<(n-3)<<endl; } else if(n<8) { cout<<(n-4)<<endl; } else if(n<13) { cout<<n-5<<endl; } else cout<<(n-6)<<endl; } return 0; }