题解报告:hdu 2149 Public Sale(巴什博弈)
2024-08-31 01:41:16
Problem Description
虽然不想,但是现实总归是现实,Lele始终没有逃过退学的命运,因为他没有拿到奖学金。现在等待他的,就是像FarmJohn一样的农田生涯。要种田得有田才行,Lele听说街上正在举行一场别开生面的拍卖会,拍卖的物品正好就是一块20亩的田地。于是,Lele带上他的全部积蓄,冲往拍卖会。后来发现,整个拍卖会只有Lele和他的死对头Yueyue。通过打听,Lele知道这场拍卖的规则是这样的:刚开始底价为0,两个人轮流开始加价,不过每次加价的幅度要在1~N之间,当价格大于或等于田地的成本价 M 时,主办方就把这块田地卖给这次叫价的人。Lele和Yueyue虽然考试不行,但是对拍卖却十分精通,而且他们两个人都十分想得到这块田地。所以他们每次都是选对自己最有利的方式进行加价。由于Lele字典序比Yueyue靠前,所以每次都是由Lele先开始加价,请问,第一次加价的时候,Lele要出多少才能保证自己买得到这块地呢?
Input
本题目包含多组测试,请处理到文件结束(EOF)。每组测试占一行。每组测试包含两个整数M和N(含义见题目描述,0<N,M<1100)
Output
对于每组数据,在一行里按递增的顺序输出Lele第一次可以加的价。两个数据之间用空格隔开。
如果Lele在第一次无论如何出价都无法买到这块土地,就输出"none"。
如果Lele在第一次无论如何出价都无法买到这块土地,就输出"none"。
Sample Input
4 2
3 2
3 5
Sample Output
1
none
3 4 5
解题思路:巴什博弈简单题。经分析可知,结果可以分三种情况:①当n>=m,即先手第一次可以加的价格大于等于田地的成本价,此时可以加的价格依次为m~n;②当m%(n+1)==0时,后手必赢,即此时输出“none”;③当n<m且m%(n+1)!=0时,此时先手只能加m%(n+1)这个价格才能保证赢。
AC代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m;
while(cin>>m>>n){
int mod = m%(n+);
if(m<=n)
for(int i=m;i<=n;++i)
cout<<i<<(i==n?"\n":" ");//表示第一次可以选择的价格
else if(mod==)cout<<"none"<<endl;//先手必输,后手必赢
else cout<<mod<<endl;//只能选mod加价才能赢(m>n这种情况)
}
return ;
}
最新文章
- struts2实现改变超链接的显示方式
- 2. Android系统启动流程
- [转载]ODAC (odp.net) 开发到部署
- poj2396 Budget(有源汇上下界可行流)
- lubuntu安装maven
- IE8兼容placeholder的方案
- 深入理解7816(5)-----关于文件DF/EF/MF/FID/AID/SFI
- Python 继承和组合 接口
- Core Java 简单谈谈HashSet
- Java语言程序设计-助教篇
- keepalived工作原理和配置说明
- java 日常学习记录-反射
- Unity3D 代码入口
- 六、Drawable
- 下面findmax函数将计算数组中的最大元素及其下标值,请编写该函数。
- Mysql数据库表被锁定处理
- Linux 小知识翻译 - 「packet」(网络数据包)
- Python 3下Matplotlib画图中文显示乱码的解决方法
- AI单挑Dota 2世界冠军:被电脑虐哭……
- gcc static静态编译选项提示错误修正(/usr/lib/ld: cannot find -lc)
热门文章
- 文件内容差异对比-python
- 洛谷月赛2018.8 T1题解(U28036 Nagisa loves Tomoya)
- 3.2.2.5 BRE运算符优先级
- vue 刷新当前页面的时候重新调用新的cookie
- BZOJ3991 寻宝游戏 LCA 虚树 SET
- eclipse下载egit插件,实现代码git同步问题
- 如何基于udp实现tcp协议栈
- 1. MissingInteger 最小遗失整数 Find the minimal positive integer not occurring in a given sequence.
- 如何让CMD命令运行后不自动退出
- WEB应用与站点的差别以及未来发展推測