HDU 2044 一只小蜜蜂...

地址:http://acm.hdu.edu.cn/showproblem.php?pid=2044

正确:

 1 #include<iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     long long f1,f2,temp;
 6     int n,a,b;
 7     cin>>n;
 8     while(n--)
 9     {
10         cin>>a>>b;
11         f1=1;f2=1;
12         for(int i=1;i<b-a;i++)
13         {
14             temp=f1+f2;
15             f1=f2;
16             f2=temp;
17         }
18         cout<<f2<<endl;
19     }
20     return 0;
21 }
22 //正确 

 

WA:不知道为啥???? 将printf("%lld\n",f2);改为printf("%I64d\n",f2);就对了。。。。  

 1 #include<stdio.h>
 2 int main()
 3 {
 4     long long f1,f2,temp;
 5     int n,a,b;
 6     scanf("%d",&n);
 7     while(n--)
 8     {
 9         scanf("%d%d",&a,&b);
10         f1=1;f2=1;
11         for(int i=1;i<b-a;i++)
12         {
13             temp=f1+f2;
14             f1=f2;
15             f2=temp;
16         }
17         printf("%lld\n",f2);  //改为printf("%I64d\n",f2);就对了。。。。
18     }
19     return 0;
20 }
21 //WA

 

递归超时:

 1 #include<stdio.h>
 2 int dp(int n)
 3 {
 4     if(n==1||n==2)  return n;
 5     return dp(n-1)+dp(n-2);
 6 }
 7 int main()
 8 {
 9     int N,a,b,k;
10     scanf("%d",&N);
11     while(N--)
12     {
13         scanf("%d%d",&a,&b);
14         k=b-a;
15         printf("%d\n",dp(k));
16     }
17     return 0;
18 }
19 //超时 

 

还超时:不懂啊。。。。

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int N;
 5     int a,b,i;
 6     long long int dp[60];
 7     scanf("%d",&N);
 8     while(N--)
 9     {
10         while(~scanf("%d%d",&a,&b),a||b)
11         {
12             dp[1]=1;dp[2]=2;dp[3]=3;
13             for(i=3;i<=b-a;i++)
14             dp[i]=dp[i-1]+dp[i-2];
15             printf("%lld\n",dp[b-a]);
16         }
17     }
18     return 0;
19 }
20 //Output Limit Exceeded

posted on 2012-08-18 09:52  mycapple  阅读(513)  评论(0编辑  收藏  举报

导航