D

.

4

D. 【例题4】传球游戏

D.【例题4】传球游戏





题目解析

t

(

i

,

j

)

t(i,j)

t(i,j)为过了

j

j

j轮,轮到

i

i

i手上的总方案数,而小蛮的编号这里设为

t

(

1

,

j

)

t(1,j)

t(1,j).

因为如果只有

1

1

1人,那么可以得出:

t

(

1

,

0

)

=

1

t(1,0)=1~~~~~~~~~~~~~~~

t(1,0)=1               (不经过任何传递 )

同题目所述,是可以向左和右传递,那么就可以得出递推式

t

(

i

,

j

)

=

t

(

i

1

,

j

1

)

+

t

(

i

+

1

,

j

1

)

t(i,j)=t(i-1,j-1)+t(i+1,j-1)

t(i,j)=t(i−1,j−1)+t(i+1,j−1)

j

1

j-1

j−1是因为少了由

i

1

i-1

i−1或

i

+

1

i+1

i+1到

i

i

i的轮数.

但是,这是一个环,我们要考虑边界问题:
所以当

i

=

n

i=n

i=n时,就是由

t

(

i

1

,

j

1

)

,

t

(

1

,

j

1

)

t(i-1,j-1),t(1,j-1)

t(i−1,j−1),t(1,j−1)传递来的
同理,当

i

=

1

i=1

i=1时,就是由

t

(

n

,

j

1

)

,

t

(

i

+

1

,

j

1

)

t(n,j-1),t(i+1,j-1)

t(n,j−1),t(i+1,j−1)传递来的

那么就能得出递推式(边界问题略):

t

(

i

,

j

)

=

{

t

(

1

,

0

)

=

1

t

(

i

,

j

)

=

t

(

i

1

,

j

1

)

+

t

(

i

+

1

,

j

1

)

;

t(i,j) = \left\{\begin{matrix} & t(1,0)=1\\ & t(i,j)=t(i-1,j-1)+t(i+1,j-1);\\ \end{matrix}\right.

t(i,j)={​t(1,0)=1t(i,j)=t(i−1,j−1)+t(i+1,j−1);​


Code

注意循坏变量!与解析相反!

#include <bits/stdc++.h>
#define ll long long
using namespace std; int n, m;
ll t[35][35]; int main ()
{
scanf ("%d%d", &n, &m);
t[1][0] = 1; // 不经过任何传递
for (int i = 1; i <= m; ++ i)
{
for (int j = 1; j <= n; ++ j)
{
int a = j - 1, b = j + 1;
if (j == 1) a = n; // 边界
if (j == n) b = 1; // 边界
t[j][i] = t[a][i - 1] + t[b][i - 1]; // 递推式
}
}
printf ("%lld ", t[1][m]);
return 0;
}

[递推]D. 【例题4】传球游戏的更多相关文章

  1. CH3401 石头游戏(矩阵快速幂加速递推)

    题目链接:传送门 题目: 石头游戏 0x30「数学知识」例题 描述 石头游戏在一个 n 行 m 列 (≤n,m≤) 的网格上进行,每个格子对应一种操作序列,操作序列至多有10种,分别用0~9这10个数 ...

  2. CH 3401 - 石头游戏 - [矩阵快速幂加速递推]

    题目链接:传送门 描述石头游戏在一个 $n$ 行 $m$ 列 ($1 \le n,m \le 8$) 的网格上进行,每个格子对应一种操作序列,操作序列至多有 $10$ 种,分别用 $0 \sim 9$ ...

  3. [递推]C. 【例题3】数的划分

    C . [ 例 题 3 ] 数 的 划 分 C. [例题3]数的划分 C.[例题3]数的划分 题目描述 将整数 n n n 分成 k k k 份,且每份不能为空,任意两个方案不相同(不考虑顺序). 例 ...

  4. [递推] A. 【例题1】错排问题

    A. [例题1]错排问题 题目描述 求多少个 n n n个数的排列 A A A ,满足对于任意的 i ( 1 ≤ i ≤ n ) i(1 ≤ i ≤ n) i(1≤i≤n) 使 A i ≠ i Ai ...

  5. Crash的游戏 [组合+递推]

    题面 思路 问题转化 这个问题的核心在于,我们需要把"加入一个球.拿出一个球"这两个操作转化一下 因为显然两个操作同时进行的话,我们没有办法从单纯的组合意义去分析 我们首先把$m$ ...

  6. 紫书 例题 9-9 UVa 10003 (区间dp+递推顺序)

    区间dp,可以以一个区间为状态,f[i][j]是第i个切点到第j个切点的木棍的最小费用 那么对于当前这一个区间,枚举切点k, 可以得出f[i][j] = min{dp(i, k) + dp(k, j) ...

  7. 紫书 例题 9-4 UVa 116 ( 字典序递推顺序)

    这道题在递推方式和那个数字三角形有一点相像,很容易推出来 但是这道题要求的是字典序,这里就有一个递推顺序的问题 这里用逆推,顺推会很麻烦,为什么呢? 如果顺推的话,最后一行假设有种情况是最小值,那么你 ...

  8. 洛谷 P1057 传球游戏 解题报告

    P1057 传球游戏 题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹 ...

  9. NOIP 2008 传球游戏

    洛谷 P1057 传球游戏 洛谷传送门 JDOJ 1536: [NOIP2008]传球游戏 T3 JDOJ传送门 Description ​ 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次, ...

随机推荐

  1. ES-Next & ECMAScript 2019

    ES-Next & ECMAScript 2019 Data Types 8 种 js 基本数据类型 8 zhon The latest ECMAScript standard defines ...

  2. VS Code使用Git可视化管理源代码详细教程

    前言: 随着VS Code的功能和插件的不断强大和完善,它已经成为了我们日常开发中一个必不可缺的伙伴了.在之前我曾经写过一篇SourceTree使用教程详解(一个git可视化管理神器,想要了解的话可以 ...

  3. Java线程池实现原理及其在美团业务中的实践

    本文转载自Java线程池实现原理及其在美团业务中的实践 导语 随着计算机行业的飞速发展,摩尔定律逐渐失效,多核CPU成为主流.使用多线程并行计算逐渐成为开发人员提升服务器性能的基本武器.J.U.C提供 ...

  4. Mybatis【20】-- Mybatis延迟加载怎么处理?

    注:代码已托管在GitHub上,地址是:https://github.com/Damaer/Mybatis-Learning ,项目是mybatis-16-lazyload,需要自取,需要配置mave ...

  5. luogu4464:莫比乌斯反演,积性函数和伯努利数

    题目链接:https://www.luogu.com.cn/problem/P4464 简记$gcd(x,y)=(x,y)$. 推式子: $\sum_{i=1}^{n}{(i,n)^xlcm(i,n) ...

  6. PythonPEP8 风格规范指南

    PEP是Python Enhancement Proposal的缩写,通常翻译为"Python增强提案".每个PEP都是一份为Python社区提供的指导Python往更好的方向发展 ...

  7. SpringBoot自定义注解

    1.注解的概念 注解是一种能被添加到java代码中的元数据,类.方法.变量.参数和包都可以用注解来修饰.注解对于它所修饰的代码并没有直接的影响. 2.注解的使用范围 1)为编译器提供信息:注解能被编译 ...

  8. 栈的数组模拟(非STL)

    #include<bits/stdc++.h> using namespace std; struct zhan{ int s[10000]; int top=0; void zhanpo ...

  9. Linux 虚拟文件系统四大对象:超级块、inode、dentry、file之间关系

    更多嵌入式原创文章,请关注公众号:一口Linux 一:文件系统 1. 什么是文件系统? 操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统. 通常文件系统是用于存储和组织文件的一 ...

  10. 《C++ Primer》笔记 第7章 类

    成员函数的声明必须在类的内部,它的定义则既可以在类的内部也可以在类的外部.作为接口组成部分的非成员函数,它们的定义和声明都在类的外部. 定义在类内部的函数是隐式的inline函数. 成员函数通过一个名 ...