2006年百度之星程序设计大赛复赛 第1题 另类杀人游戏
来源:互联网 发布:矩阵的lu分解33例题 编辑:程序博客网 时间:2024/05/22 08:13
/*题目描述:-----------------------------------------------------------------------------------------------*/
另类杀人游戏
周末的晚上,百度的员工们总喜欢聚集在公司的会议室玩杀人游戏。从1警1匪到n警n匪,他们尝试了几乎所有流行的杀人游戏规则。终于有一天,连最热衷杀人游戏,“杀人”不眨眼的Austin也开始对无休止的辩论感到厌烦。于是,他决定改变他的一贯作风,他开始变成了一个“杀人不睁眼”的杀手。
如何做到杀人不睁眼呢?Austin早已构思好他的杀人计划:
1. N个人(包括Austin)坐成一圈玩杀人游戏,按顺时针编号1,2,3,4。。。。。
2. Austin从1号开始顺时针开始数到第m号就杀掉第一个人。被杀掉的人要退出游戏。
3. 如果第m个人恰好是Austin自己,他就杀掉他顺时针方向的下一个人。
4. Austin从被杀的人的下一个顺时针数m个人,把第m个杀掉。
5. 重复2-4,直至杀掉所有人。
Austin把这个杀人计谋告诉了法官小k,他便可以闭起眼睛杀人啦。作为一个正直善良的法官,小k当然不能让残忍的Austin得逞,于是,她偷偷把Austin的杀人计划告诉了作为警察的你,聪明的百度之星。现在,你的任务是活到最后,与Austin单挑。
输入:
第一个行包含一个整数T,表示有T组测试数据。
对于每组测试数据:
三个整数
N,M,T,(3<=N<=10000,1<=M,T<=10000) 分别表示参与游戏的人数,Austin每隔M个人会杀掉一人,Austin初始位置的标号。
输出:
每个测数数据输出一个整数。
你需要选择的初始位置的序号,以确保最后剩下的两个人是你与Austin。
输入例子:
2
7 4 1
7 4 1
输出例子
5
5
例子说明:杀人顺序为4 2 7 6 3 5 , 所以5 是你要选择的位置。
/*算法描述与分析 -----------------------------------------------------------------------------------------------*/
经典的joseph's problem。算法复杂度O(M)。
/*源代码 -------------------------------------------------------------------------------------------------------*/
int round(int x, int y)
{
return x % y ? x%y : y ;
}
int killer(int N, int M, int T)
{
if (N==3) {
if (M%3==T%3) return round(T+2,3);
else return round( (M%3) +1 ,3);
}
else{
int x, y;
if (M%N==T%N) x=(T+1)%N;
else x=M%N;
y=killer(N-1, M, T>x ? T-x : T+N-1-x );
return round(x+y, N);
}
}
- 2006年百度之星程序设计大赛复赛 第1题 另类杀人游戏
- PHP 求解:2006年百度之星程序设计大赛复赛题目:另类杀人游戏
- 2006年百度之星程序设计大赛复赛第4题 彩球游戏(zuma) 题目及解法
- php解:2006 年百度之星程序设计大赛复赛题目 4 ----彩球游戏
- 2005年百度之星程序设计大赛试题复赛的解答(八方块移动游戏)
- HDU-2017"百度之星"程序设计大赛-复赛-补题
- 赛题集锦—2008年百度之星程序设计大赛复赛题目
- [2017百度之星程序设计大赛- 复赛] C
- 2007年百度之星程序设计大赛试题复赛题目 Robots.txt 协议
- hdu 5258 数长方形-2015年百度之星程序设计大赛 - 复赛
- 2007年百度之星程序设计大赛初赛试题与解答 第1场 大话西游与数字游戏
- 2005年百度之星程序设计大赛初赛试题与解答 第1题
- 2006年百度之星程序设计大赛第一轮6题
- 2008年百度之星程序设计大赛初赛第1场 第4题 公平数 解法
- 2007年百度之星程序设计大赛试题初赛题目-题2-Wii 游戏开始啦!
- 百度之星2009程序设计大赛 晋级赛(复赛)试题
- HDU-2017"百度之星"程序设计大赛-复赛-1001-Arithmetic of Bomb
- HDU-2017"百度之星"程序设计大赛-复赛-1003-Pokémon GO
- C++中的虚函数
- WebService 之xfire服务器端开发
- Inventory COGS Account Generator
- 当析构函数遇到多线程──C++ 中线程安全的对象回调
- 2009网络营销策略
- 2006年百度之星程序设计大赛复赛 第1题 另类杀人游戏
- 无线路由器产业升级 五大性能决定用户体验度
- 车载卫星定位系统在交通运输业上的应用
- 2010-01-22
- Linux中实现快速搜索文件
- 编辑gtkrc,改变ubuntu菜单外观;编辑fstab,自动挂载硬盘
- 项目管理中的主动控制与被动控制
- 说说字符集和编码 --于javaeye by panny1982
- Emacs