十五月明


私信TA

用户名:dotcpp0605328

访问量:5439

签 名:

等  级
排  名 319
经  验 5465
参赛次数 0
文章发表 87
年  龄 18
在职情况 学生
学  校 曲阜师范大学
专  业 人工智能

  自我简介:

Easy

解题思路:

题目是求第m轮后到第0位的可能次数,即F[m][0];


先求第m-1轮,到第1位和第2位的可能次数;

往后找,第m-2轮,到第0位,2位|| 第0位,1位的次数

以m=3,n=3为例。

F[0][0]=1 -> F[1][1]=1 || F[1][2]=1 || F[1][0]=0;

F[2][0]=F[1][1]+F[1][2]=2;

F[2][1]=F[1][0]+F[1][2]=1;

F[2][2]=F[1][1]+F[1][0]=1;


F[3][0]=F[2][1]+F[2][2]=2;



注意事项:

参考代码:

#include<iostream>

using namespace std;

int main()

{

    int n,m;

    int F[31][31]={0}; //行位传递次数,列为位数

    cin>>n>>m;

    F[0][0]=1;

    for(int i=1;i<=m;i++)

        for(int j=0;j<n;j++)

              F[i][j]=F[i-1][(j-1+n)%n]+F[i-1][(j+1+n)%n];

              //外层循环控制步数,内层循环控制节点。

    cout<<F[m][0];//老师在第0位,经过m次传递

}


 

0.0分

1 人评分

  评论区

  • «
  • »