NC16619 [NOIP2008]传球游戏
题目
题目描述
上体育课的时候,小蛮的老师经常带着同学们一起做游戏。这次,老师带着同学们一起做传球游戏。
游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同学可以把球传给自己左右的两个同学中的一个(左右任意),当老师再次吹哨子时,传球停止,此时,拿着球没传出去的那个同学就是败者,要给大家表演一个节目。
聪明的小蛮提出一个有趣的问题:有多少种不同的传球方法可以使得从小蛮手里开始传的球,传了m次以后,又回到小蛮手里。两种传球的方法被视作不同的方法,当且仅当这两种方法中,接到球的同学按接球顺序组成的序列是不同的。比如有3个同学1号、2号、3号,并假设小蛮为1号,球传了3次回到小蛮手里的方式有1->2->3->1和1->3->2->1,共2种。
输入描述
共一行,有两个用空格隔开的整数n,m( 3 ≤ n ≤ 30,1 ≤ m ≤ 30 )。
输出描述
共一行,有一个整数,表示符合题意的方法数。
示例1
输入
3 3
输出
2
备注
40%的数据满足:3 ≤ n ≤ 30,1 ≤ m ≤ 20;
100%的数据满足:3 ≤ n ≤ 30,1 ≤ m ≤ 30。
题解
知识点:线性dp。
如果除去环形,那就是个简单的线性dp。设 \(dp[i][j]\) 为传了 \(i\) 次传到第 \(j\) 个人手上,只需要从 \(dp[i-1][j-1]\) 和 \(dp[i-1][j+1]\) 转移即可。但这里有环形,因此考虑做一个循环下标,转移方程为:
\]
时间复杂度 \(O(nm)\)
空间复杂度 \(O(nm)\)
代码
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll dp[37][37];
int main() {
std::ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int n, m;
cin >> n >> m;
dp[0][0] = 1;
for (int i = 1;i <= m;i++) {
for (int j = 0;j < n;j++) {
dp[i][j] = dp[i - 1][(j - 1 + n) % n] + dp[i - 1][(j + 1) % n];
}
}
cout << dp[m][0] << '\n';
return 0;
}
NC16619 [NOIP2008]传球游戏的更多相关文章
- [NOIP2008] 传球游戏
1011. [NOIP2008] 传球游戏 http://cogs.pro/cogs/problem/problem.php?pid=1011 ★ 输入文件:ballg.in 输出文件:bal ...
- NOIP 2008 传球游戏
洛谷 P1057 传球游戏 洛谷传送门 JDOJ 1536: [NOIP2008]传球游戏 T3 JDOJ传送门 Description 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次, ...
- NOIP2008普及组第3题 传球游戏
NOIP2008普及组第3题 传球游戏 时间限制: 1 Sec 内存限制: 128 MB提交: 29 解决: 16[提交][状态][讨论版][命题人:外部导入] 题目描述 上体育课的时候,小蛮的老 ...
- NOIP2008普及组传球游戏(动态规划)——yhx
题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同 ...
- NOIP2008 普及组T3 传球游戏 解题报告-S.B.S.
题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同 ...
- tyvj1008 传球游戏
背景 NOIP2008复赛普及组第三题 描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一 ...
- TYVJ P1008 传球游戏
时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 NOIP2008复赛普及组第三题 描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着 ...
- P1057 传球游戏 dp
题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的:nn个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个 ...
- P1057 传球游戏
题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的: nnn 个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球 ...
- 洛谷 P1057 传球游戏 解题报告
P1057 传球游戏 题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹 ...
随机推荐
- Idea 进行远程服务器debug操作
本文为博主原创,转载请注明出处: 很多时候为了定位服务器的问题,不方便定位时,采用idea 远程debug 服务器环境的服务进行问题定位,主要操作步骤如下: 1. 修改服务器服务的JVM 配置,开启远 ...
- 09-Verilog-并发线程
Verilog-线程 并发线程 verilog和C语言有一个最大的不同就是并发性 并发--同时进行的过程 module tb_test; int a; initial begin a = 1; a = ...
- [java] - 数据库连接工具类
package util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLExceptio ...
- 利用工具查看JMS微服务在线情况,可直接调用远程方法,也可自动生成微服务客户端代码
链接:https://cccscls-my.sharepoint.com/personal/jack_mutc_ca/_layouts/15/onedrive.aspx?id=%2Fpersonal% ...
- Spring Boot对接Oracle数据库
Spring Boot对接Oracle数据库 最近学习了Oracle数据库,那么如何使用Spring Boot和MyBatis Plus对接Oracle数据库呢? 这就有了这篇随记,具体流程如下 1. ...
- [转帖]Jmeter学习笔记(十九)——后置处理器之正则表达式的使用
https://www.cnblogs.com/pachongshangdexuebi/p/11733005.html 一.正则表达式提取器的作用 允许用户从服务器的响应中通过使用perl的正则表达式 ...
- [转帖]一份快速实用的 tcpdump 命令参考手册
http://team.jiunile.com/blog/2019/06/tcpdump.html tcpdump 简介 对于 tcpdump 的使用,大部分管理员会分成两类.有一类管理员,他们熟知 ...
- jcmd的简要分析命令
jcmd的简要分析命令 背景 端午加班一整天. 回到家同事让他们抓取一下堆栈信息好进行分析 连上VPN后就进行了一下处理. 自己简单看了下堆栈的总数等信息. 同事使用工具进行了分析. 我这边其实下过很 ...
- 【转帖】SmartNIC — TSO、GSO、LRO、GRO 技术
目录 文章目录 目录 TSO(TCP Segmentation Offload) GSO(Generic Segmentation Offload) LRO(Large Receive Offload ...
- [转帖]Shell~echo -e 颜色输出
https://www.cnblogs.com/ElegantSmile/p/11144879.html echo -e 可以控制字体颜色和背景颜色输出 从一个例子开始: # echo -e &quo ...