Triangle HDU - 5914

Posted Jozky86

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Triangle HDU - 5914相关的知识,希望对你有一定的参考价值。

Triangle HDU - 5914

题意:

有长度分别是1到n的n给木棍,问最少拿走几个木棍,使得剩下木棍无法组成三角形

题解:

组不成三角形的恰巧情况就是a+b<=c,也就是我们要让剩下的木棍,两者之和等于或小于第三个,有没有联想到斐波那契数列,因为斐波那契数列是两者之和等于第三个,也就是给你一共n,看小于n有多少个斐波那契数列数,就是剩余的数量

代码:

#include<bits/stdc++.h>
#define debug(a,b) printf("%s = %d\\n",a,b);
typedef long long ll;
using namespace std;

inline int read(){
   int s=0,w=1;
   char ch=getchar();
   while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
   while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();//s=(s<<3)+(s<<1)+(ch^48);
   return s*w;
}
const int maxn=40;
ll f[maxn];
int main()
{
	int t;
	f[0]=f[1]=1;
	for(int i=2;i<=80;i++)f[i]=f[i-1]+f[i-2];
	cin>>t;
	int tot=0;
	while(t--){
		int n;
		cin>>n;
		int ans=0;
		for(int i=1;i<80;i++){
			if(f[i]<=n)ans++;
		}
			printf("Case #%d: %d\\n",++tot,n-ans); 
	}
}
/*
1 2 3 4 5 6
*/

以上是关于Triangle HDU - 5914的主要内容,如果未能解决你的问题,请参考以下文章

hdu 5914 Triangle

CCPC2016长春D (hdu 5914 Triangle)

HDU 5914 Triangle 构造 (2016中国大学生程序设计竞赛(长春))

HDU5914

QDU-Training-01

HDU Interesting Yang Yui Triangle (Lucas定理)