洛谷P1057 传球游戏(记忆化搜索)
题目大意:n个小孩围一圈传球,每个人可以给左边的人或右边的人传球,1号小孩开始,一共传m次,请问有多少种可能的路径使球回到1号小孩。
输入输出:输入n,m,输出路径的数量。
数据范围:40% 3<=n<=30 1<=m<=20 100% 3<=n<=30 1<=m<=30
我是这么想的:膜拟过程,从1号小孩开始dfs,然后加一个记忆化搜索节省时间。
dfs(num,tim)表示球传到第num个小孩,已经传过tim次时候,d[num][tim]表示球传到第num个小孩,已经传过tim次时候已经记录过的可能传到1号小孩的次数。
刚开始的时候默认1号小孩只把球传给2号小孩,因为传给n号小孩和传给2号小孩的情况是对称的,所以乘以2,理论上节省一半时间(实际上由于记忆化搜索,节省不了多少时间)
代码如下:
/*
P1057 传球游戏
*/
#include <iostream>
#include <cstring>
using namespace std;
int n,m;
int d[31][31];
int search(int num,int tim)
{
if(tim==m)
{
if(num==1)return 1;
else return 0;
}
else if(d[num][tim]!=-1)return d[num][tim];
else return d[num][tim]=search(num==n?1:num+1,tim+1)+search(num==1?n:num-1,tim+1);
}
int main()
{
memset(d,-1,sizeof(d));
cin >> n >> m;
cout << search(2,1)*2 << endl;
return 0;
}
洛谷P1057 传球游戏(记忆化搜索)的更多相关文章
- 洛谷P1057 传球游戏【递归+搜索】
		上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的:nn个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同学可以把 ... 
- 洛谷——P1057 传球游戏
		P1057 传球游戏 题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹 ... 
- 洛谷 P1057 传球游戏 解题报告
		P1057 传球游戏 题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹 ... 
- 洛谷 p1434 滑雪【记忆化搜索】
		<题目链接> Michael喜欢滑雪.这并不奇怪,因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道 ... 
- 洛谷 P1464 Function【记忆化搜索】
		题目链接 题目描述 对于一个递归函数w(a,b,c) 如果a<=0 or b<=0 or c<=0就返回值1. 如果a>20 or b>20 or c>20就返回w ... 
- 洛谷 p2618 数字工程 记忆化搜索_ 线性筛
		我们在线筛的同时处理出每个数的所有质因子,记忆化搜索的时候直接枚举质因子即可. 时间复杂度为 O(nlogn)O(nlogn)O(nlogn) Code: #include<cstdio> ... 
- 洛谷-P1434 [SHOI2002]滑雪 (记忆化搜索)
		题意:有一个\(R*C\)的矩阵,可以从矩阵中的任意一个数开始,每次都可以向上下左右选一个比当前位置小的数走,求走到\(1\)的最长路径长度. 题解:这题很明显看到就知道是dfs,但是直接爆搜会TLE ... 
- 洛谷 P1057 传球游戏 【dp】(经典)
		题目链接:https://www.luogu.org/problemnew/show/P1057 题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游 ... 
- 洛谷 P1057 传球游戏
		题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同 ... 
随机推荐
- Java中日期和时间的相关问题
			1.java.lang.System类 System类提供的public static long currentTimeMillis()用来返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位 ... 
- Javascript常用的设计模式详解
			Javascript常用的设计模式详解 阅读目录 一:理解工厂模式 二:理解单体模式 三:理解模块模式 四:理解代理模式 五:理解职责链模式 六:命令模式的理解: 七:模板方法模式 八:理解javas ... 
- oracle 12c 新特性之不可见字段
			在Oracle 11g R1中,Oracle以不可见索引和虚拟字段的形式引入了一些不错的增强特性.继承前者并发扬光大,Oracle 12c 中引入了不可见字段思想.在之前的版本中,为了隐藏重要的数据字 ... 
- mysqllog
			-- mysql delete log online 1 mysql命令purge mysql> purge master logs to "mysql-bin.000410&quo ... 
- virtual judge(专题一 简单搜索 C)
			Description Farmer John has been informed of the location of a fugitive cow and wants to catch her i ... 
- 机器学习:k-NN算法(也叫k近邻算法)
			一.kNN算法基础 # kNN:k-Nearest Neighboors # 多用于解决分裂问题 1)特点: 是机器学习中唯一一个不需要训练过程的算法,可以别认为是没有模型的算法,也可以认为训练数据集 ... 
- mysql基础之三:char与varchar区别,varchar(M)能存多少
			char与varchar区别 char (13)长度固定, 如'1234567890' 存储需要空间 10个字符; varchar(13) 可变长 如'1234567890' 需要存储空间 11字符; ... 
- RSA-CRT leaks__因使用中国余数定理计算RSA所引起的私钥泄露
			在heartbleed[1]漏洞后,很多用户打开了PFS[2]功能.但很不幸,之后RedHat又报告出在多个平台上存在RSA-CRT导致的密钥泄露[3]. 中国余数定理(CRT)常被用在RSA的计算中 ... 
- Java访问子类对象的实例变量
			对于Java这种语言来说,一般来说,子类可以调用父类中的非private变量,但在一些特殊情况下, Java语言可以通过父类调用子类的变量 具体的还是请按下面的例子吧! package com.yon ... 
- 对象流demo1----
			对象流demo1: package com.etc.test; import java.io.BufferedInputStream; import java.io.BufferedOutputStr ... 
