首页 > 其他分享 >ACM题目 英雄护美(递归)

ACM题目 英雄护美(递归)

时间:2023-08-21 17:04:55浏览次数:42  
标签:护美 return 递归 int scanf ACM test fun

/*
                               英雄护美    英雄救美,可以理解;英雄护美,亦可理解。m(1<=m<=54)个英雄和美晚上行军,路
过大峡谷,只能以纵队的方式前行。为确保美的绝对安全,纵队中每两个美之间必须至少有
一个以上的英雄。如m为3时,有5种行军方式,分别为:美-英雄-美、美-英雄-英雄、英雄
-美-英雄、英雄-英雄-美、英雄-英雄-英雄。若给出欲穿越大峡谷的人数,有多少种英雄
护美的行军方式?
    输入第一行为一个整数n,表示测试的个数,接下来为n个测试,每个测试占一行,为1
 个整数m,表示欲穿越大峡谷的人数。
     每个测试输出一行,为一个整数,即英雄护美的不同行军方式的数量。Sample Input:
 2
 3
 1Sample Output:
 5
 2解答:
 题目好像有问题,暂且认为只有一个美女的时候她不需要人陪 
 0表示美女 1表示帅哥  m表示总人数 
 m:  1  2  3  4
   0  00  000  0000
   1  01  001  0001
       10  010  0010
             100  0100
             101  0101
                    1000 
                    1001
                    1010
 从小到大找,不能出现两个1相邻的情况 
 每次增加一个人,增加的人可能是帅哥(0)也可能是美女(1) 
 如果是0,可以加在m-1的前面,所有的情况都符合条件
 如果是1,1的下一位一定是0,加在m-2的前面 
 这些就是所有的情况        
 */
 #include <stdio.h>
 int fun(int m) ;
 int main()
 {
     int test;
     int m;
     scanf("%d",&test);
     while(test--)
       {
           scanf("%d",&m);
           printf("%d\n",fun(m));
       }
     return 0;
 }
 int fun(int m)
 {
     if(m==1) return 2;
     if(m==2) return 3;
     else return fun(m-1)+fun(m-2);
 }

标签:护美,return,递归,int,scanf,ACM,test,fun
From: https://blog.51cto.com/u_10101161/7177257

相关文章

  • ACM题目:孔融分梨
    /*孔融分梨孔融让梨,人人称颂;孔融分梨,也不简单。孔融有M个同样的梨,要分给N个人。每个人手上有一个同样的盘子,孔融要将梨放入盘中,允许有的盘子空着不放,问共有多少种不同的分法?3,1,1和1,3,1和1,1,3是同一种分法。第一行是测试数据的数目t(0<......
  • ACM题目:英雄护美
    /*英雄护美英雄救美,可以理解;英雄护美,亦可理解。m(1<=m<=54)个英雄和美晚上行军,路过大峡谷,只能以纵队的方式前行。为确保美的绝对安全,纵队中每两个美之间必须至少有一个以上的英雄。如m为3时,有5种行军方式,分别为:美-英雄-美、美-英雄-英雄、英......
  • 北大ACM poj1562
    /*problem:poj1562*author:gubojun*time:2012.7.27*language:C*题目大意:求有多少个不相连的区域代码中的解释很多了,别的不说了*/#include<stdio.h>#include<string.h>#defineN101charmap[N][N];intn,m,sum;voiddfs(inti,intj){//如果map[......
  • 北大ACM poj 1001
    网上搜来的借鉴一下#include<stdio.h>main(){doublef;intn,i,j;inttop,bottom;intshow;for(;~scanf("%lf%d",&f,&n);){intp[300]={1},tmp=0;f*=1e6;for(i=0;i++<n;)......
  • 杭电ACM HDU 2816 I Love You Too
    ILoveYouTooTimeLimit:2000/1000MS(Java/Others)   MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):1258   AcceptedSubmission(s):759ProblemDescriptionThisisatruestory.Amanshowedhislovetoagirl,butthegirldi......
  • 杭电ACM HDU 3346 Lucky Number
    LuckyNumberTimeLimit:2000/1000MS(Java/Others)   MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):1523   AcceptedSubmission(s):800ProblemDescriptionToChinesepeople,8isaluckynumber.Nowyourtaskistojudgeifanu......
  • 杭电ACM HDU 2560 Buildings
    BuildingsTimeLimit:2000/1000MS(Java/Others)   MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):1828   AcceptedSubmission(s):1553ProblemDescriptionWedividetheHZNUCampusintoN*Mgrids.Asyoucanseefromthepicturebe......
  • 杭电ACM HDOJ 1039 Easier Done Than Said?
    EasierDoneThanSaid?TimeLimit:2000/1000MS(Java/Others)    MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):6387    AcceptedSubmission(s):3172ProblemDescriptionPasswordsecurityisatrickything.Usersprefersimplepas......
  • 杭电ACM HDU 3351 Seinfeld
    SeinfeldTimeLimit:2000/1000MS(Java/Others)   MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):1071   AcceptedSubmission(s):540ProblemDescriptionI’moutofstories.ForyearsI’vebeenwritingstories,somerathersilly,......
  • 西农2022级ACM招新考题
    准备放弃一段时间算法。西农2022级ACM招新上周结束了,五一假期研究了一下题解,整理发在博客。1.这真的是签到题print("\"ACMwelcomesyou\\n\"")2.4和数#include<bits/stdc++.h>usingnamespacestd;constintmaxn=1e6+10;intf[maxn+1];intl,r;boolche......