题目背景

临近中考,pG的班主任决定上一节体育课,放松一下。

题解:https://blog.csdn.net/kkkksc03/article/details/85008120

题目描述

老师带着pG的同学们一起做传球游戏。

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

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

输入输出格式

输入格式:
 

 

一行,有两个用空格隔开的整数 n,mn,m

 


输出格式:

 

 

11 个整数,表示符合题意的方法数。

由于答案可能过大,对10^9+7109+7取模。

 

输入输出样例


输入样例#1:
 复制

3 3
输出样例#1: 复制

2
输入样例#2: 复制

30 30
输出样例#2: 复制

155117522
输入样例#3: 复制

1234 12345678
输出样例#3: 复制

424074635

说明

对于8%的数据,n \le 100,m \le 10^4n≤100,m≤104.

对于100%的数据,n \le 3500,m \le 10^9n≤3500,m≤109.

数据有一定梯度。

【题意】

n个石子堆排成一排,每次可以将连续的最少L堆,最多R堆石子合并在一起,消耗的代价为要合并的石子总数。

求合并成1堆的最小代价,如果无法做到输出0

【分析】

思路0:

TLE(8分)

    cin>>n>>m;
f[][]=;
for(int i=;i<=m;i++){
for(int j=;j<n;j++){
f[i&][j]=(f[i-&][(j-+n)%n]+f[i-&][(j+)%n])%mod;
}
}
cout<<f[m&][];

思路1:

思路2:

思路3:

——摘自洛谷

【代码】

思路3的

#pragma GCC optimize("Ofast,fast-math,unroll-loops")
#include<cstdio>
#include<cstring>
using namespace std;
const int N=|;
const int mod=1e9+;
int n,m,a[N],ans[N];
inline void plusx(int &x,int y){
x+=y;if(x>=mod) x-=mod;
}
inline void PolyMul(int *a,int *b,int *c){
int t[N];memset(t,,sizeof(int)*(n<<));
for(int i=;i<n;i++){
if(a[i]){
for(int j=;j<n;j++){
plusx(t[i+j],(long long)a[i]*b[j]%mod);
}
}
}
for(int i=;i<n;i++) c[i]=t[i];
for(int i=n;i<n<<;i++) plusx(c[i-n],t[i]);
}
int main(){
scanf("%d%d",&n,&m);
a[]=a[n-]=;ans[]=;
for(;m;m>>=,PolyMul(a,a,a)) if(m&) PolyMul(ans,a,ans);
printf("%d",ans[]);
return ;
}

P5173 传球的更多相关文章

  1. [洛谷P5173]传球

    题目大意:有$n(n\leqslant3500)$个人坐成一个环,$0$号手上有个球,每秒钟可以向左或向右传球,问$m$秒后球在$0$号手上的方案数. 题解:一个$O(nm)$的$DP$,$f_{i, ...

  2. 洛谷P5173 传球(暴力)

    传送门 真·暴力艹过去 不难发现这个转移其实就是一个循环卷积的形式,设有多项式\(A=x+x^{n-1}\),那么\(f_m=f_0\times A^m\) 直接暴力计算并卡常就行了 //minamo ...

  3. tyvj1008 传球游戏

    背景 NOIP2008复赛普及组第三题 描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一 ...

  4. 清北学堂模拟day4 传球接力

    [问题描述]n 个小朋友在玩传球. 小朋友们用 1 到 n 的正整数编号. 每个小朋友有一个固定的传球对象,第 i 个小朋友在接到球后会将球传给第 ai个小朋友, 并且第 i 个小朋友与第 ai个小朋 ...

  5. NOIP2008普及组传球游戏(动态规划)——yhx

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

  6. NOIP2008 普及组T3 传球游戏 解题报告-S.B.S.

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

  7. TYVJ P1008 传球游戏

      时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 NOIP2008复赛普及组第三题 描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着 ...

  8. P1057 传球游戏 dp

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

  9. P1057 传球游戏

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

随机推荐

  1. Vue(六)过滤器

    1. 简介 用来过滤模型数据,在显示之前进行数据处理和筛选 语法:{{ data | filter1(参数) | filter2(参数)}} 2. 关于内置过滤器 vue1.0中内置许多过滤器,如:c ...

  2. sdn测量论文简介

    Prelude: Ensuring Inter-Domain Loop-Freedom in SDN-Enabled Networks 来源:APNet: The Asia-Pacific Works ...

  3. [原创] 上海招聘高级测试工程师(性能测试/自动化测试/App测试),长期有效

    [原创] 上海招聘高级测试工程师(性能测试/自动化测试/App测试方向),长期有效 高级测试工程师(性能/自动化方向) 1.负责性能测试计划,性能需求分析,性能测试方案和用例设计,搭建性能测试环境,执 ...

  4. RESTEASY ,从学会使用到了解原理。

    转载本文需注明出处:EAII企业架构创新研究院,违者必究.如需加入微信群参与微课堂.架构设计与讨论直播请直接回复公众号:“EAII企业架构创新研究院”.(微信号:eaworld) 1,背景知识; 1. ...

  5. C# StreamReader.ReadLine统计行数的问题

    要实现一个功能: 从 lua 文件中提取字符串放到 excel 中,再将 excel 给海外同事,翻译完成后,用翻译的文本替换相应中文. 整个功能并不复杂,要点有二点: 1.提取字符串,一行中文如&q ...

  6. Vue.js父与子组件之间传参

    父向子组件传参 例子:App.vue为父,引入componetA组件之后,则可以在template中使用标签(注意驼峰写法要改成componet-a写法,因为html对大小写不敏感,component ...

  7. [Python设计模式] 第12章 基金理财更省事——外观模式

    github地址:https://github.com/cheesezh/python_design_patterns 题目1 用程序模拟股民直接炒股的代码,比如股民投资了股票1,股票2,股票3,国债 ...

  8. Linux如何统计进程的CPU利用率[转]

    0. 为什么写这篇博客 Linux的top或者ps都可以查看进程的cpu利用率,那为什么还需要了解这个细节呢.编写这篇文章呢有如下三个原因: * 希望在脚本中,能够以过”非阻塞”的方式获取进程cpu利 ...

  9. C#中[WebMethod]的用法,aspx、ashx、asmx

    在.net 3.5的情况下 前台JQuery做Ajax的时候,服务器端 (1)可以调用aspx.cs 中声明带有[WebMehtod]的public static 的方法(不需要自己手动添加web.c ...

  10. php项目踩到的empty函数的一个坑

    报错信息: PHP Fatal error: Can't use function return value in write context in /目录省略.../XXService.php on ...