WIKIOI-1148 传球游戏

题目描述 Description
上体育课的时候,小蛮的老师经常带着同学们一起做游戏。这次,老师带着同学们一起做传球游戏。

游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同学可以把球传给自己左右的两个同学中的一个(左右任意),当老师再次吹哨子时,传球停止,此时,拿着球没传出去的那个同学就是败者,要给大家表演一个节目。

聪明的小蛮提出一个有趣的问题:有多少种不同的传球方法可以使得从小蛮手里开始传的球,传了m次以后,又回到小蛮手里。两种传球的方法被视作不同的方法,当且仅当这两种方法中,接到球的同学按接球顺序组成的序列是不同的。比如有3个同学1号、2号、3号,并假设小蛮为1号,球传了3次回到小蛮手里的方式有1->2->3->1和1->3->2->1,共2种。

输入描述 Input Description
共一行,有两个用空格隔开的整数n,m(3<=n<=30,1<=m<=30)。

输出描述 Output Description
共一行,有一个整数,表示符合题意的方法数。

样例输入 Sample Input
3 3

样例输出 Sample Output
2

数据范围及提示 Data Size & Hint
40%的数据满足:3<=n<=30,1<=m<=20

100%的数据满足:3<=n<=30,1<=m<=30

 

用深入搜索超时:

#include<stdio.h>
int m,mix=0;
void Found(int x,int sum,int n)
{
    if(sum==m&&x==1)
    {mix++;return;}
    if(sum>m)
    return;
    if(x!=1&&x!=n)
    {
       Found(x+1,sum+1,n);
       Found(x-1,sum+1,n);
    }
    if(x==1)
    {
       Found(x+1,sum+1,n);
       Found(n,sum+1,n);
    }
    if(x==n)
    {
       Found(1,sum+1,n);
       Found(x-1,sum+1,n);
    }
}
int main()
{
    int i,j,n;
    scanf("%d%d",&n,&m);
    Found(1,0,n);
    printf("%d\n",mix);
    return 0;
}

AC代码:
//动态规划

#include<stdio.h>
int dp[100][100];
int main()
{
    int i,j,n,m;
    scanf("%d%d",&n,&m);
    dp[0][1]=1;
    for(i=1;i<=m;i++)//i代表第i次传递,j代表第j人
       for(j=1;j<=n;j++)
       {
          if(j-1<1)
          dp[i][j]=dp[i-1][n]+dp[i-1][j+1];
          else if(j==n)
          dp[i][j]=dp[i-1][1]+dp[i-1][j-1];
          else dp[i][j]=dp[i-1][j+1]+dp[i-1][j-1];//状态转移方程
       }
    printf("%d\n",dp[m][1]);
    return 0;
}
 

 

时间: 2024-09-20 15:42:39

WIKIOI-1148 传球游戏的相关文章

算法--递推策略

递推法是一种重要的数学方法,在数学的各个领域中都有广泛的运用,也是计算机用于数值计算的一个重要算法.这种算法特点是:一个问题的求解需一系列 的计算,在已知条件和所求问题之间总存在着某种相互联系的关系,在计算时,如果可以找到前后过程之间的数量关系(即递推式),那么,从问题出发逐步推到已 知条件,此种方法叫逆推.无论顺推还是逆推,其关键是要找到递推式.这种处理问题的方法能使复杂运算化为若干步重复的简单运算,充分发挥出计算机擅长于重 复处理的特点. 递推算法的首要问题是得到相邻的数据项间的关系(即递推

设计模式之行为型模式

       行为型模式描述类或对象如何交互及如何分配职责,它 主要涉及通过合理的处理方法,达到使系统升级性和维护性提高的目的. 行为模式        1.职责链模式 Chain of Responsibility        2.命令模式 Command        3.解释器模式 Interpreter        4.迭代器模式 Iterator        5.中介者模式 Mediator        6.备忘录模式 Memento        7.观察者模式 Observ

“你画我猜”背后残酷创业逻辑:老玩意的新变种

"卖了这坨大粪,有了证明,回头再和那帮坏蛋废话." 作为电视剧<火线>的忠实粉丝,45岁的OMGPOP公司CEO丹·波特,把这部重口味警匪剧的台词写到了公司每间会议室的门上--例如上面这句. 3月22日,长得有点像"豪斯医生"的丹,绷着脸推开这扇写满"大粪"."废话"的玻璃门,走进一间会议室,去和Zynga公司的人一起接受采访.身后重重关上的门上也写着一句话:"我不是生来给你们演儿子的." 其实

你画我猜背后的残酷创业逻辑

<Draw Something>这款爆红的猜词小游戏背后,是残酷的创业逻辑. 记者_ 王宏宇 北京报道 "卖了这坨大粪,有了证明,回头再和那帮坏蛋废话." 作为电视剧<火线>的忠实粉丝,45岁的OMGPOP公司CEO丹·波特,把这部重口味警匪剧的台词写到了公司每间会议室的门上--例如上面这句. 3月22日,长得有点像"豪斯医生"的丹,绷着脸推开这扇写满"大粪"."废话"的玻璃门,走进一间会议室,去和Zy

实况足球2014攻略大全 FIFA2014游戏攻略

3.1 球员位置 实况足球游戏中的球员位置 GK - goalkeeper (守门员)SW - sweeper (清道夫) CB - center backfielder (中后卫) SB - side backfielder (边后卫) LB - left backfielder (左边后卫) RB - right backfielder (右边后卫) WB - wingback(边后腰) LWB - left wing backfielder (具有边路进攻能力的左后卫 即左边后腰) RWB

偷菜到魔兽细数09年十大经典游戏(图)

[前言] 不知不觉一年又要过去了,回望这一年跌宕起伏的IT业界,虽然受到了全球金融危机的强力冲击,但是在危机爆发的一年后,我们可以发现,经过了这场暴风雨洗礼的IT产业正在朝着更健康的方向发展.与此同时,和IT产业紧密相关的游戏产业也在继续蓬勃发展,游戏已经毫无疑问的成为了人们最主要的休闲娱乐方式. 那么,在这即将过去的2009年里,游戏产业又给我们带来了多少值得回味的经典之作呢?经过精挑细选,笔者选出了十款今年深受大家喜爱的游戏,其中包括今年风靡全国的"偷菜"游戏.首日全球累计销量达7

C/C++实现的游戏角色名称名字随机生成代码_C 语言

#ifndef __NAME_H__ #define __NAME_H__ class CName { public: CName(); virtual ~CName(); const char* GetName(); protected: void InitSurname(); void InitName(); char* m_pSurname_OneDimensional; char** m_ppSurname; // 姓 char* m_pName_OneDimensional; char

十大iOS体育游戏评点

生命在于运动.出于对力与美的本能崇拜,各种体育运动项目也拥有各自庞大的拥趸.闲暇之余,呼朋唤友,踢球打球,既加深友谊又强身健体,所以也是很多人热衷的业余爱好之一.但是随着生活节奏的加快,工作压力的加大,这样的机会越来越少,缺乏锻炼的身体也日渐疲乏,这时候体育游戏就一定程度上弥补了玩家心理上的缺失.小编从iOS上挑选了分别代表10个体育运动项目的10款游戏,相信总有一款你会喜欢.足球系统要求:与 iPhone 3GS.iPhone 4.iPhone 4S.iPod touch(第3代).iPod

科乐美旗下流行足球游戏《实况足球2011》将于10月8号登陆英国

多玩网讯(编译/落轩飞雨)据悉,科乐美旗下流行足球游戏<实况足球2011>(PES2011)将于10月8号登陆英国,率先登陆的版本为PC.PS3以及XBOX360版本,PS2.PSP一级Wii版本将会晚些发布. 而与<PES2011>风格相近的EA旗下足球游戏<FIFA11>将于10月1号发布,早<PES2011>一个星期. 科乐美一直不遗余力的在告诉世界上的所有人,<PES>系列的游戏更加好玩.科乐美承诺<PES2011>将是一款最