NOIP 2008 传球游戏
这道题呢,我用了一下搜索,还用了一下dp
搜索是40PAC,dp是稳过的
然后呢遇到边缘值我都进行了特殊判断,我感觉这么写好写点
先来看看搜索
#include<bits/stdc++.h>
using namespace std;int n;
int m;
struct node
{int now;//现在的位置int cnt;//次数
};
queue<node> q;//用队列解决bfsvoid bfs(int x,int sum)
{if(sum==m){q.push((node){x,sum});//符合题解,入队return;}if(x==1)//特判1{q.push((node){n,sum+1});q.push((node){2,sum+1});}else if(x==n)//特判n{q.push((node){1,sum+1});q.push((node){n-1,sum+1});}else {q.push((node){x+1,sum+1});q.push((node){x-1,sum+1});}return;
}int main()
{cin>>n>>m;q.push((node){1,0});while(q.front().cnt!=m)//不符合就一直搜索下去{bfs(q.front().now,q.front().cnt);q.pop();//不符合的都出队}int ans=0;while(!q.empty()){if(q.front().now==1) ans++;q.pop();}cout<<ans;return 0;
}
f[i][j]表示 传了i次球,到第j个人了
接下来是dp算法了,还是得特判1和n,主体公式如下
最后呈上ac代码
#include<bits/stdc++.h>
using namespace std;int n;
int m;
int f[31][31];int main()
{cin>>n>>m;memset(f,0,sizeof(f));f[0][1]=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][1]+f[i-1][n-1];}else f[i][j]=f[i-1][j+1]+f[i-1][j-1];}}cout<<f[m][1];return 0;
}
NOIP 2008 传球游戏相关推荐
- Vijos P1485 传球游戏(动态规划)
P1485传球游戏 Accepted 标签: 动态规划 NOIP普及组2008 描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的:n个同 ...
- P1057 传球游戏
题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同 ...
- 洛谷P1057传球游戏题解--zhengjun
题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的: n n n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传 ...
- P1057传球游戏 题解
P1057传球游戏 题解 题目描述: 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的:nnn个同学站成一个圆圈,其中的一个同学手里拿着一个球 ...
- 洛谷P1057 传球游戏(记忆化搜索)
点我进入题目 题目大意:n个小孩围一圈传球,每个人可以给左边的人或右边的人传球,1号小孩开始,一共传m次,请问有多少种可能的路径使球回到1号小孩. 输入输出:输入n,m,输出路径的数量. 数据范围:4 ...
- 动态规划——洛谷_P1057传球游戏
题目: 题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏.游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球, ...
- 洛谷 1057——传球游戏(递推与递归二分)
题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同 ...
- 传球游戏(洛谷-P1057)
题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的: n 个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每 ...
- Java 算法 传球游戏
目录标题 题目描述 解题思路 代码 流程图 题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手 ...
最新文章
- 该怎样才能将PDF转换成HTML
- HDU 2189 悼念512汶川大地震遇难同胞——来生一起走
- Swift - 使用CoreLocation实现定位(经纬度、海拔、速度、距离等)
- 【项目管理】项目问题应对思路
- android lame wav 转 mp3,Android JNI Lame编解码实现wav到MP3的转换
- Java静态类使用 使用 service
- LeetCode 1700. 无法吃午餐的学生数量(队列模拟 / 不模拟)
- “编程能力差,90%输在了数学上!”CTO:多数程序员都是瞎努力!
- GW48CK/PK2/PK/PK4 系统万能接插口与结构图信号/与芯片引脚对照表
- PySide文档阅读笔记-第一个Qt for Python程序
- 指针 | golang之指针的学习
- 斗地主(二)———创建扑克牌基类枚举, 牌库,出牌规则
- 公司计算机程序员英语怎么说,程序员英语怎么说
- 虚拟机WIN7系统 如何设置网络
- Java double 保留一个小数、理解BigDecimal、Java解决精度问题
- 在MAC下解决MAC unable to execute sex :GC overhead limit exceeded GC overhead的问题
- vue项目中 echarts的渐变色的设置
- 樊登读书会终身成长读后感_《终身成长》读后感三篇
- 可达100K/月,美团招聘各类安全工程师(地点:北京/上海,内含大量岗位)
- springboot在线教育学习系统在线视频点播系统毕业设计毕设作品开题报告开题答辩PPT
热门文章
- Python告诉你三体人有多惨
- 华为S5700设置vlan,并绑定电脑的IP地址与mac地址。
- Linux下nano编辑器的常用快捷键
- 如何用python入侵手机_怎么使用Python攻击SQL数据库!
- 单项式计算机在线使用,16进制(CRC16)(多项式异或,多种)校验(2),循环冗余校验在线计算器_三贝计算网_23bei.com...
- arima 数据预处理_数据预测算法-ARIMA预测
- 请你使用html5编写一个关于黄柳瑜的网站,内容要包括炫彩动画和相关按钮,比如联系作者之类的...
- 大数据spark开发入门教程
- I9300 Root权限获取
- Bringing Old Photos Back to Life微软老照片修复全解析(原理、代码、训练、测试)