NOIP 2008 普及组 传球游戏「建议收藏」

NOIP 2008 普及组 传球游戏「建议收藏」超时#include<bits/stdc++.h>usingnamespacestd;intn,m,ans;//第cnt次传球后,球在编号为x的同学手上voiddfs(intcnt,intx){ if(cnt==m){ if(x==0)ans++; return; } dfs(cnt+1,(x+1)%n); dfs(cnt+1,(x-1+n)%n); }intmain(){.

大家好,又见面了,我是你们的朋友全栈君。

  • 超时,满足40%的数据
#include <bits/stdc++.h>
using namespace std;

int n, m, ans;

//第cnt次传球后,球在编号为x的同学手上 
void dfs(int cnt, int x) { 
   
	if (cnt == m) { 
   
		if (x == 0) ans ++;
		return;
	}
	
	dfs(cnt + 1, (x + 1) % n);
	dfs(cnt + 1, (x - 1 + n) % n);	
}

int main() { 
   
	cin >> n >> m;	
	
	//第0次传球,球在编号为0的同学手上 
	dfs(0, 0);
	cout << ans;
	
	return 0;
}
  • 动态规划
#include <bits/stdc++.h>
using namespace std;

const int N = 40;
int n, m, dp[N][N];

int main() { 
   
	cin >> n >> m;

	//第0次传球在0号同学手中的方法数是1,即初始状态
	dp[0][0] = 1;
	
	//状态转移依赖于上一次传球的状态,所以外循环是1...m
	for (int i = 1; i <= m; i ++) { 
   
		for (int j = 0; j < n; j ++) { 
   
			//dp[i][j]表示第i次传球在j号同学手中的方法数
			dp[i][j] = dp[i - 1][(j + 1) % n] + dp[i - 1][(j - 1 + n) % n];
		}
	}
	cout << dp[m][0] << endl;

	return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159232.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月14日 上午8:36
下一篇 2022年7月14日 上午8:46


相关推荐

  • initramfs-kernel_ubuntu initramfs

    initramfs-kernel_ubuntu initramfsLinux系统启动时使用initramfs(initramfilesystem),initramfs可以在启动早期提供一个用户态环境,借助它可以完成一些内核在启动阶段不易完成的工作。当然initramfs是可选的,Linux中的内核编译选项默认开启initrd。在下面的示例情况中你可能要考虑用initramfs。加载模块,比如第三方driver定制化启动过程(比如打印welcomeme…

    2022年8月11日
    9
  • matlab GUI编程入门

    matlab GUI编程入门这里我们来实现一个加法器,功能比较简单,主要用于了解matlab中的代码是如何与控件进行交互。2.绘制界面在命令行窗口中输入:>>guide直接“确定”即可。将需要的控件从左边托至中间的编辑窗口,如下图。将按钮的“Tag”修改为“compute_pushbutton”。3.实现控件回调函数在“计算”按钮上,右键–》查看回调–》CallBack

    2022年6月4日
    51
  • .NET/C#发起GET和POST请求的几种方法

    .NET/C#发起GET和POST请求的几种方法

    2021年6月13日
    134
  • MySQL数据库:使用show profile命令分析性能

    MySQL数据库:使用show profile命令分析性能

    2021年4月9日
    184
  • godaddy域名服务器_自己有域名怎么建网站

    godaddy域名服务器_自己有域名怎么建网站自己准备做一个个人网站,由于第一次做所以遇到了各种困难,现在把自己的一些经历经验贴出来供大家参考。此贴针对一个完全没有经验的菜鸟,大牛勿喷。个人搭建一个网站首先要考虑的是网址(域名),然后是你的文件放到哪里(空间)。最后将域名解析后,绑定到空间则网站搭建完成就可以访问。网上关于网站搭建的技术贴有很多,但由于岁月年长有些方法或步骤可能不适用,在这里通过一次个人经历,给大家提供一些经验。一般域

    2022年10月8日
    7
  • phpstorm 激活码_在线激活

    (phpstorm 激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~40…

    2022年3月28日
    55

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号