当前位置: 首页 > 编程日记 > 正文

动态规划——洛谷_P1057传球游戏

题目:

题目描述

上体育课的时候,小蛮的老师经常带着同学们一起做游戏。这次,老师带着同学们一起做传球游戏。游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同学可以把球传给自己左右的两个同学中的一个(左右任意),当老师在此吹哨子时,传球停止,此时,拿着球没有传出去的那个同学就是败者,要给大家表演一个节目。聪明的小蛮提出一个有趣的问题:有多少种不同的传球方法可以使得从小蛮手里开始传的球,传了m次以后,又回到小蛮手里。两种传球方法被视作不同的方法,当且仅当这两种方法中,接到球的同学按接球顺序组成的序列是不同的。比如有三个同学1号、2号、3号,并假设小蛮为1号,球传了3次回到小蛮手里的方式有1->2->3->1和1->3->2->1,共2种。

输入输出格式
输入格式:

输入文件ball.in共一行,有两个用空格隔开的整数n,m(3<=n<=30,1<=m<=30)。

输出格式:

输出文件ball.out共一行,有一个整数,表示符合题意的方法数。

输入输出样例
输入样例#1:

3 3

输出样例#1:

2

说明

40%的数据满足:3<=n<=30,1<=m<=20100%的数据满足:3<=n<=30,1<=m<=302008普及组第三题

测评网址:戳我访问
所属专栏:戳我访问
这题不是《信息学奥赛一本通》里的题目,是洛谷题库的P1057。
这题用动态规划来解,思路:由于可以传到i号节点的人分别为i-1和i+1,所以f[i][j]表示传了i次,传到了j手里的方案总数。
分析:
这里采用之前见到过的分析方法,如果你不知道,请访问:[戳我访问]
(http://blog.csdn.net/baidu_38496325/article/details/74316595)。
状态表达:f[i][j]表示传了i次,传到了j手里的方案总数。
状态转移:

if(j==1)f[i][j] = f[i-1][2]+f[i-1][n];
            else if(j==n)f[i][j] = f[i-1][n-1]+f[i-1][1];
            else f[i][j] = f[i-1][j-1]+f[i-1][j+1];

状态数量:nm
转移代价:O(1)
时间复杂度:O(n^2)
空间复杂度:O(nm)
代码:

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<algorithm>int f[1001][1001]; 
int main()
{int n,m;std::cin>>n>>m;f[0][1] = 1;f[1][n] = 1;f[1][2] = 1;for(int i = 1;i<=m;i++)for(int j = 1;j<=n;j++)if(j==1)f[i][j] = f[i-1][2]+f[i-1][n];else if(j==n)f[i][j] = f[i-1][n-1]+f[i-1][1];else f[i][j] = f[i-1][j-1]+f[i-1][j+1];std::cout<<f[m][1];return 0;
}

转载于:https://www.cnblogs.com/powerLEO101/p/7695184.html

相关文章:

多线程1(进程、[创建]线程与生命周期)

一、进程与线程 什么是进程&#xff1f;我们先说说什么是程序&#xff1f; 程序&#xff08;Program&#xff09;是为实现特定目标或解决特定问题而用计算机语言&#xff08;比如Java、C等&#xff09;编写的命令序列的集合。 进程&#xff08;process&#xff09;就是指一个程…

网络操作系统第四章

1. 磁盘的数据结构包括哪些内容&#xff1f; 答&#xff1a;分区&#xff0c;卷&#xff0c;磁盘分区&#xff0c;主分区&#xff0c;扩展分区&#xff0c;逻辑分区&#xff0c;逻辑驱动器&#xff0c;引导分区。 2. 什么是基本磁盘和动态磁盘&#xff1f; &#xff08;…

广播风暴系列专题(一)广播风暴:发现-端口

近日防火墙经常地检测到"svchost UDP/连入192.168.1.255/137 192.168.1.66/137 1055656/1065732 UDP_WAIT 过滤 8:48:31 C:\WINDOWS\system32\svchost.exe";"services UDP/连出 192.168.1.21/137 192.168.1.255/137 920736/913476 UDP_WAIT 过滤 11:46:3…

显示一个顶层的提示信息

vb里常作&#xff0c;大概的思路就是显示一个顶层的窗体&#xff0c;提示暂时不要动。c&#xff03;里更简单了MsgDlg msgnewMsgDlg(); msg.TopMosttrue; msg.Show(); System.Windows.Forms.Application.DoEvents();

ArcGIS Engine开发-TOCControl中实现图层的拖放

TOCControl非常好&#xff0c;不用写一行代码就可以将整个地图的图层信息况显示出来&#xff1b;TOCControl也非常坏&#xff0c;提供的接口非常少&#xff0c;我认为有用的只有三个&#xff1a;HitTest,SetBuddyControl,Update&#xff0c;而且Update方法一执行&#xff0c;整…

多线程2(常用的方法:join、interrupt、currentThread、isAlive、setDaemon...)

常用的方法&#xff1a; 1、join()方法&#xff1a;join()方法&#xff1a;执行该方法的线程进入阻塞状态&#xff0c;直到调用该方法的线程结束后再由阻塞状态转为就绪状态。 示例&#xff1a; package venus;import java.util.Date;public class Test {public static void m…

Oracle总结第二篇【视图、索引、事务、用户权限、批量操作】

前言 在Oracle总结的第一篇中&#xff0c;我们已经总结了一些常用的SQL相关的知识点了…那么本篇主要总结关于Oralce视图、序列、事务的一些内容… 在数据库中&#xff0c;我们可以把各种的SQL语句分为四大类… &#xff08;1&#xff09;DML&#xff08;数据操纵语言&#xff…

物联网应用介绍

•物联网的研究背景&#xff08;概念 | 本质 | 特征 | 发展现状&#xff09;物联网是新一代信息技术的高度集成和综合运用&#xff0c;已成为全球新一轮科技革命与产业变革的核心驱动和经济社会绿色、智能、可持续发展的关键基础与重要引擎。国家十三五规划纲要明确提出“积极推…

Oracle使用手册(三)---存储过程与触发器

--存储过程/**//*--1.过程的语法结构--参见:http://newland.cnblogs.com/archive/2006/04/05/367531.html--2.执行存储过程begin 存储过程名;end;--创建好的存储过程可以被任何程序调用*/--3.带参数的存储过程/**//* 参数类型 在PL/SQL过程中&#xff0c;可以有3种类型的…

数据结构之【线性表】(顺序表、链表的基本操作实现)

概念线性表&#xff1a;是N个数据元素的有限序列。 顺序表&#xff1a;用一组地址连续的存储单元依次存储【线性表 】的数据元素。&#xff08;区别于有序表&#xff1a;表中的数据元素存在非递增或非递减有序&#xff09; 链表&#xff1a;用一组任意的存储单元来存储【线性表…

基于android的天气预报的设计与实现

目录 应用开发技术及开发平台介绍应用需求分析应用功能设计及其描述应用UI展示①开发技术&#xff1a; 本系统是采用面向对象的软件开发方法&#xff0c;基于Android studio开发平台&#xff0c;以Android作为本系统的开发语言实现音乐播放器预定的需求功能。 ②平台介绍 硬件平…

敏捷开发有感!

http://sd.csdn.net/n/20060913/94713.html1.我们最优先要做的是通过尽早的&#xff0c;持续的交付有价值的软件来使客户满意。有一篇文章分析了对于公司构建高质量产品方面有帮助的软件开发实践&#xff0c;其中一个实践表明尽早的交付具有部分功能的系统和系统质量之间具有很…

ng 表单提交验证

http://www.runoob.com/try/try.php?filenametry_ng_validate 转载于:https://www.cnblogs.com/alvin553819/p/7127226.html

Infragistics NetAdvantage 2006 Volume 2 CLR 2.0曲折安装

上个月看到Infragistics NetAdvantage 2006 Volume 2 CLR 2.0(新特性)新鲜出炉&#xff0c;就一直想安装试用。昨天qq上得知已经有人在使用了&#xff0c;赶紧google一个down下来。经过漫长下载等待&#xff0c;满怀希望安装&#xff0c;哪想到快完成的时候居然报错&#xff0c…

数据结构之【栈】的基本操作C语言实现

引题&#xff1a; 很多人都把【栈】描述成【弹匣】&#xff0c;但我总感觉有点不恰当&#xff0c;因为弹匣从上端【装弹】之后&#xff0c;子弹总是在匣的上层&#xff1b;而元素【进栈】之后&#xff0c;总在栈的下面。 我觉得还是描述成【从下往上向书箱里一层…

编码小记(未整理-持续更新)

----------------基本概念-------------------------------一.位&#xff1a; 计算机存储信息的最小单位&#xff0c;称之为位&#xff08;bit&#xff09;&#xff0c;音译比特&#xff0c;二进制的一个“0”或一个“1”叫一位。 二.字节 字节&#xff08;Byte&#xff09;是一…

使用locate 的正则查询 查找所有main.c

locate支持正则查询的功能&#xff0c; 只需输入locate -r 正则表达式 即可。 现在我想查找所有main.c怎么做&#xff1f; 打开终端&#xff0c;输入shell&#xff1a; locate -r main.c$ PS&#xff1a;$表示结束字符串结束。转载于:https://www.cnblogs.com/the-one/p…

My Favorites

AJAX "Atlas" Control Toolkit HomePage "Atlas" Client Class Library "Atlas" Server Class Library ASP.NET AJAX Roadmap http://www.ajaxian.com 被成为AJAX第一站 . http://www.ajaxmatters.com/ 不仅有讨论XMLHttpRequest 的文…

数据库事务初探

使用事务级别要慎重: 因为事务级别越高&#xff0c;数量越多、限制性更强的锁就会被运用到数据库记录或者表中。同时&#xff0c;更多的锁被运用到数据库和它们的覆盖面越宽&#xff0c;任意两个事务冲突的可能性就越大。 如果有一个冲突&#xff08;例如两个事务试图获取同一个…

数据结构之【队列】的基本操作C语言实现

直接上图&#xff1a; 循环队列的声明&#xff1a; 0、循环队列的声明 循环队列的基本操作&#xff1a; 1、InitQueue(&Q)&#xff08;构造一个空队列&#xff09; 2、DestroyQueue(&Q)&#xff08;销毁队列Q&#xff09; 3、ClearQueue(&Q)&#xff08;清空队列Q&…

在python3环境安装builtwith模块

1、安装命令&#xff1a; pip install builtwith 如果在命令行提示如下错误&#xff1a; Fatal error in launcher: Unable to create process using " 使用如下命令&#xff1a; python3 -m pip install builtwith 2、导入模块会出现错误提示&#xff1a; 原因&#xff1…

kettle组件-输出

1&#xff1a;删除连接数据库&#xff1a;新建连接数据库&#xff0c;或者应用转换中已经定义好的数据库。目标模式&#xff1a;指什么现在还不明确&#xff0c;集群模式&#xff1f;子服务器模式&#xff1f;--要写入数据的表的Schema名称。允许表名中包含“.”是很重要的。目…

NGOSS的一点简单概念

NGOSS&#xff08;Next Generation Operational Support Systems&#xff09;是由TMF&#xff08;Tele Management Forum&#xff09;提出的&#xff0c;他用于电信领域&#xff0c;是构建下一代OSS/BSS系统的框架。TMF提供了技术中立构架&#xff08;TNA&#xff09;作为NGOSS…

Windows Mobile 5.0 设备的目录变化

自定义铃声的默认两个存放位置&#xff1a;1. Application Data\Sounds &#xff08;不是Storage下的Application Data了&#xff09;。2. 外存储设备的根目录。

第二周期的第一次站立会议

今天&#xff1a;对这一阶段的任务进行了分配&#xff0c;我就自己的任务内容搜集了一些资料&#xff0c;尝试了编程。明天&#xff1a;继续进行编程。遇到的问题&#xff1a;编程方面有些许的困难。转载于:https://www.cnblogs.com/guantianhuan/p/10051436.html

常见的函数式编程模型

1.闭包&#xff08;Closure&#xff09; 闭包的概念 可以保留局部变量不被释放的代码块&#xff0c;被称为一个闭包。 闭包的特点&#xff1a;函数嵌套函数、内部函数可以引用外部函数的参数和变量、参数和变量不会被垃圾回收机制收回 // 创建一个闭包 function makeCounter() …

Ubuntu下安装和配置Redis

找到 /ect/redis/redis.conf 文件修改如下:注释掉 127.0.0.1 ,如果不需要远程连接redis则不需要这个操作。使用客户端向 Redis 服务器发送一个 PING ,如果服务器运作正常的话,会返回一个 PONG。默认情况下,Redis服务器不允许远程访问,只允许本机访问,所以我们需要设置打开远程访问的功能。执行sudo apt-get install redis-server 安装命令。查看 redis 是否启动,重新打开一个窗口。停止/启动/重启redis。

自学笔记——1.Pyhton保留关键字

Python保留关键字python保留的关键字如下python保留的关键字如下 and del from None True as elif global nonlocal try assert else if not while break except import or with class False in pass yield continue finally is raise def for lambda…

人的一生有三件事不能等

人的一生有三件事不能等人的一生有三件事不能等 第一是“贫穷” 贫穷不能等&#xff0c;因为一但时间久了&#xff0c;你将习惯贫穷&#xff0c;到时不但无法突破自我&#xff0c;甚至会抹杀了自己的梦想&#xff0c;而庸庸碌碌的过一辈子。。。。。。 第二是“梦想” 梦想不能…

安装部署中的数据库打包和快捷方式启动浏览器

前一段时间&#xff0c;因为工作的需要&#xff0c;学习了一些.net的部署。在打包的过程中遇到了几个问题&#xff1a;<?XML:NAMESPACE PREFIX O />1、 数据库脚本打包&#xff0c;如何修改Web.config文件中的数据联接2、 数据库脚本中的方法和视图打包时要注意的问题…