【p083】传球游戏
Time Limit: 1 second
Memory Limit: 50 MB
【问题描述】
上体育课的时候,小蛮的老师经常带着同学们一起做游戏。这次,老师带着同学们一起做传球游戏。
游戏规则是这样的:n个同学站成一个圆卷,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同学可以把球传给自己左右的两个同学中的一个(左右任意),当老师再次吹了时,传球停止,此时,拿着球没传出去的那个同学就是败者,要给大家表演一个节目。
聪明的小蛮提出一个有趣的问题:有多少种不同的传球方法可以使得从小蛮手里开始传的球,传了m次以后,又回到小蛮手里。两种传球方法被视作不同的方法,当且仅当这两种方法中,接到球的同学按接球顺序组成的序列是不同的。比如有3个同学1号、2号、3号,并假设小蛮为1号,球传了3次回到小蛮手里的方式有1→2→3→1和1→3→2→1,共2种。
【输入格式】
共1行,有两个用空格隔开的数n,m(3≤n≤30,1≤m≤30)
【输出格式】
共1行,包含1个整数,表示符合题意的方法数
【输入样例】
3 3
【输出样例】
2
【数据范围】
对于40%的数据,3≤n≤30,1≤m≤20。
对于90%的数据,3≤n≤30,1≤m≤30。
【题目链接】:http://noi.qz5z.com/viewtask.asp?id=P083
【题解】
设f[i][j]表示一共传了i次球;球到了第j个人那里的方案数;
则有
f[i][j] = f[i-1][j左边]+f[i-1][j右边];
边界条件:
f[0][1] = 1;//一次都没传的时候就在第一个人那里
f[0][2..n] = 0;
写一个记忆化搜索就好;
最后输出f[m][1];
【完整代码】
#include <cstdio>
#include <cstring>
const int MAXN = 30+5;
int n,m;
int f[MAXN][MAXN];
int dfs(int num,int now)
{
if (num==0 && now != 1) return 0;
if (num==0 && now == 1) return 1;
if (f[num][now]!=-1) return f[num][now];
int left = now-1,right = now+1;
if (left<1) left = n;
if (right>n) right = 1;
f[num][now] = dfs(num-1,left) + dfs(num-1,right);
return f[num][now];
}
int main()
{
memset(f,255,sizeof f);
scanf("%d%d",&n,&m);
printf("%d\n",dfs(m,1));
return 0;
}
【p083】传球游戏的更多相关文章
- tyvj1008 传球游戏
背景 NOIP2008复赛普及组第三题 描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一 ...
- NOIP2008普及组传球游戏(动态规划)——yhx
题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同 ...
- NOIP2008 普及组T3 传球游戏 解题报告-S.B.S.
题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同 ...
- TYVJ P1008 传球游戏
时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 NOIP2008复赛普及组第三题 描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着 ...
- P1057 传球游戏 dp
题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的:nn个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个 ...
- P1057 传球游戏
题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的: nnn 个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球 ...
- 洛谷 P1057 传球游戏 解题报告
P1057 传球游戏 题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹 ...
- 洛谷 P1057 传球游戏 【dp】(经典)
题目链接:https://www.luogu.org/problemnew/show/P1057 题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游 ...
- 洛谷【P1057】传球游戏
https://www.luogu.org/problemnew/show/P1057 题目描述 在体育课上, 老师带着同学们一起做传球游戏. 游戏规则是这样的: n 个同学站成一个圆圈, 其中的一个 ...
随机推荐
- 三.BP神经网络
BP神经网络是包含多个隐含层的网络,具备处理线性不可分问题的能力.以往主要是没有适合多层神经网络的学习算法,,所以神经网络的研究一直处于低迷期. 20世纪80年代中期,Rumelhart,McClel ...
- 廖雪峰Python总结3
1.模块简介 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件中,这样每个文件包含的代码相对来说就比较少.一个.py文件就称之为一个模块(Module). 使用模块的好处: 提高了代码的可 ...
- BOT建设经营转让,PPP公私合作
PPP.BOT两种模式有什么区别? BOT模式(build-operate-transfer),由投资方建设并专营一定期限最后移交政府的方式:PPP模式(public-private-partners ...
- laravel 图片上传 intervention/image
1. composer require intervention/image 2). 修改 app/config/app.php 添加 ServiceProvider: // 将下面代码添加到 pro ...
- 关于 SSD 的接口和相关名词(2019-09-10)
关于 SSD 的接口和相关名词 了解了很多天的 SSD,太多的名词. 先记录一下. SATA MSATA M2 NVME NGFF U2 TODO: 后续收集相关信息.
- PLAY2.6-SCALA(三) 数据的返回与保存
1.修改默认的Content-Type 自动设置内容类型为text/plain val textResult = Ok("Hello World!") 自动设置内容类型为appli ...
- Laravel 登录后清空COOKIE 方法
需求 在Laravel 登陆立即清空保存的COOKIE数组 实现 # Http/Controllers/Auth/LoginController.php public function redirec ...
- Date日期类,Canlendar日历类,Math类,Random随机数学类
Date日期类,SimpleDateFormat日期格式类 Date 表示特定的时间,精确到毫秒 常用方法 getTime() setTime() before() after() compareT ...
- linux驱动开发满三年,回首一下基本看不到其它选择
刚刚搞完一个处理器BSP项目,准备搞下一个自研处理器.说不上来什么喜悦,仅仅有些许茫然.没有刚毕业时对这个行业的痴迷,慢慢认同这仅仅是个谋生工具的想法. 回忆当初编写第一个驱动,就像上了战场.被长官踢 ...
- AUTO uninstaller 密钥/激活码/破解/注册机 ver 8.9.05 资源下载【转载】
技术贴:AUTO uninstaller 密钥/激活码/破解/注册机 ver 8.9.05 资源下载 楼主分享几个auto uninstaller密钥破解注册机,可以用于AUTO uninstalle ...