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

你可能感兴趣的:(HDU)