Box Game
Input: Standard Input
Output: Standard Output
There are two identical boxes. One of them contains n balls, while the other box contains one ball.
Alice and Bob invented a game with the boxes and balls, which is played as follows:
Alice and Bob moves alternatively, Alice moves first. For each move, the player finds out the box
having fewer number of balls inside, and empties that box (the balls inside will be removed forever),
and redistribute the balls in the other box. After the redistribution, each box should contain at least one
ball. If a player cannot perform a valid move, he loses. A typical game is shown below:
When both boxes contain only one ball, Bob cannot do anything more, so Alice wins.
Question: if Alice and Bob are both clever enough, who will win? Suppose both of them are very
smart and always follows a perfect strategy.
Input
There will be at most 300 test cases. Each test case contains an integer n (2<=n<=109) in a single line.
The input terminates by n=0.
Output
For each test case, print a single line, the name of the winner.
Sample Input
2
3
4
0
Output for Sample Input
Alice
Bob
Alice
Problemsetter: Rujia Liu, Special Thanks: Yiming Li & Jane Alam Jan
题意:
给出 n,代表有一个筐子有 n 个球,另一个筐子有 1 个球。游戏由 Alice 开始,每次先把两个筐子中小的球取出来,再将另一个筐子中的球分任意个到另一个筐子中。如果当遇到不能取出球的情况,则另一个人为赢。输出最后赢的人。
思路:
规律。当遇到偶数的时候,则那个人就会赢,所以每次分出去的一定要是个偶数。所以如果是偶数的话,绝对会是 Alice 赢。所以考虑奇数的情况。
3 -> B 相反赢
5 -> A 本身赢
7 -> B 相反赢
9 -> A 本身赢
11 -> A 本身赢
13 -> A 本身赢
15 -> B (可以分的情况为 2 - 13,4 - 11, 6 - 9,因为这几种情况都是本身赢,分出去之后先权就轮到了 Bob,所以就是 Bob 赢)……
类似情况继续讨论,就会得到,Bob 会在 ai = ai-1 X 2 + 1 赢。
AC:
#include <cstdio> #include <cstring> #include <algorithm> using namespace std; int main() { int n; while (~scanf("%d", &n) && n) { if (n % 2) { while (n > 10) { --n; if (n % 2) break; n /= 2; } if (n ==3 || n == 7) puts("Bob"); else puts("Alice"); } else puts("Alice"); } return 0; }
相关推荐
3. **物理引擎**:为了模拟真实世界的追逐,游戏通常会集成一个物理引擎,如Box2D或PhysX,处理碰撞检测、重力以及其他物理效果,确保玩家角色的移动和交互符合现实规律。 4. **游戏逻辑**:玩家一需设法捕捉玩家二...
jBox2D是一个Java版本的Box2D物理引擎,它是由Erin Catto开发的著名2D物理引擎Box2D的移植,广泛应用于各种2D游戏开发中,提供真实的物理模拟效果,如重力、碰撞检测、摩擦力等。对于想要学习Android游戏开发,尤其...
此外,“rocket-man-game”可能还使用了Cocos2d-x的物理引擎,如Box2D,来实现角色的跳跃和碰撞检测。物理引擎通过XML文件配置物体的物理属性,如质量、摩擦力、弹性等,使得游戏中的动作更符合真实世界的物理规律。...
通过深入理解这部分代码,开发者不仅可以学习到如何用JavaScript构建一个简单游戏,还能掌握如何利用编程来模拟现实世界的物理规律,这对于提升Web开发技能和游戏设计能力都非常有帮助。 总之,"Angry Birds Stage ...
开发者可能使用自定义的物理引擎或者现成的库,如Box2D或Matter.js,来模拟这些物理现象,确保游戏的弹射和碰撞行为符合真实世界的物理规律。 6. **动画框架**:为了实现流畅的游戏动画,开发者可能会使用...
这款游戏的设计初衷可能是为了帮助用户理解物理运动规律,或者提供一种轻松娱乐的方式。通过这个压缩包"球类游戏.rar",我们可以推测它包含了游戏的源代码、资源文件或可执行程序,其中"BallGame2013.8.28"很可能是...
例如,`draw_box()`和`draw_ball()`函数可能用于绘制盒子和球。 3. **事件处理**:游戏中的事件处理是关键,比如用户的键盘输入、鼠标点击等。`handle_events()`函数可能会监听这些事件并做出相应反应,如改变盒子...
对于可数名词的复数形式,遵循以下规律: A. 大多数名词只需在单数形式后加-s,如 game 变为 games,boy 变为 boys。 B. 以 s, x, sh, ch 结尾的名词,需加-es,例如 box 变为 boxes,peach 变为 peaches。 C. 以 o...
- 在词汇教学中,通过角色扮演和游戏(如Guessing Game)激发学生兴趣,强调名词单复数的区别,特别是不可数名词和单复数同形词的特点。 - 句型教学采用先答后问的方式,让学生在反复练习中自然掌握"How many...?"的...
print(game_data.box_score()) # 获取整个赛季的比赛列表 season_games = games.season_schedule(season='2021-22') for game in season_games: print(game['gameDate'], game['homeTeam']['triCode'], game['...
游戏中的物体运动往往需要遵循物理规律,JavaScript库如Box2D或matter.js可以模拟碰撞检测和物理行为。 1. 碰撞检测:理解如何判断游戏物体间的碰撞,以及处理碰撞后的结果。 2. 物理属性:设置物体的质量、速度、加...
虽然JavaScript没有内置的物理引擎,但开发者可以通过编写自己的简单物理模拟或者使用第三方库(如Box2D或Matter.js)来实现。 【AI设计】 僵尸的行走路径和行为策略也是游戏的一部分。源码中可能包含简单的AI算法...
其强大的2D和3D图形API,如LWJGL( Lightweight Java Game Library)后端,使得创建视觉效果丰富的游戏成为可能。 二、游戏设计基础 在设计弹幕射击游戏时,我们首先需要定义游戏的基本规则和元素,如玩家角色、...
为了让坦克的行为更加真实,项目可能需要引入物理引擎,如Bullet或Box2D,来处理碰撞检测、重力、摩擦力等物理现象。这样,坦克在地图上的移动和战斗过程将更符合现实世界的规律。 5. 网络编程(Network ...
3. **现在进行时与即时情境结合**:如题【2015 辽宁沈阳】15,"The old man is pulling a big box into the house." 表示此刻正在进行的动作。 4. **一般过去时与具体时间点**:如题【2015 辽宁沈阳】3,"She ...
物理引擎用于模拟游戏中物体的运动规律,包括碰撞检测、重力效果等。C++的高效性能使得开发者可以实现复杂的物理模拟,从而让游戏更加真实可信。常见的物理引擎有Box2D、Bullet等。 #### 4. 资源管理 游戏开发过程...
例如,在单词"cake"、"date"、"fat"和"game"中,字母"a"发的是短音/æ/;在"bag"、"bat"、"bake"和"date"中,"a"与"e"结合发长音/ ei /。这种分类和对比帮助学生理解字母组合的发音规律。 接下来,课件展示了"-e"的...
3. **物理引擎集成**:虽然Ogre本身并不包含物理引擎,但可以通过接口与其他物理库(如Box2D或Bullet)结合,实现乒乓球的运动轨迹和碰撞检测,确保球的弹跳行为符合真实物理规律。 4. **输入处理**:游戏需要响应...
- **三维游戏的运动原理**:理解物体在虚拟空间中的移动规律。 - **三维游戏的时间设置**:掌握游戏时间控制方法。 - **矢量基础**:学习矢量在游戏开发中的应用。 - **程序设计语言选择**:介绍常用的编程语言及其...
比如,字母"a"在"name", "game"中发[ei]的音;"e"在"he", "she", "me"中发[i:]的音;"i"在"fine", "like"中发[ai]的音;"o"在"go", "home"中发[ou]的音;"u"在"use", "blue"中可以发[ju:]或[u:]的音。而在重读闭音节...