HDU 5512 Pagodas 2015ACM/ICPC亚洲区沈阳站-重现赛(感谢东北大学)
来源:互联网 发布:js数字转字符串 补0 编辑:程序博客网 时间:2024/05/16 06:46
题目网址:http://acm.hdu.edu.cn/showproblem.php?pid=5512
题目:
Pagodas
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 518 Accepted Submission(s): 384
Problem Description
n pagodas were standing erect in Hong Jue Si between the Niushou Mountain and the Yuntai Mountain, labelled from 1 to n. However, only two of them (labelled a and b, where 1≤a≠b≤n) withstood the test of time.
Two monks, Yuwgna and Iaka, decide to make glories great again. They take turns to build pagodas and Yuwgna takes first. For each turn, one can rebuild a new pagodas labelled i (i∉{a,b} and 1≤i≤n) if there exist two pagodas standing erect, labelled j and k respectively, such that i=j+k or i=j−k. Each pagoda can not be rebuilt twice.
This is a game for them. The monk who can not rebuild a new pagoda will lose the game.
Input
The first line contains an integer t (1≤t≤500) which is the number of test cases.
For each test case, the first line provides the positive integer n (2≤n≤20000) and two different integers a and b.
Output
For each test case, output the winner (Yuwgna" or
Iaka”). Both of them will make the best possible decision each time.
Sample Input
16
2 1 2
3 1 3
67 1 2
100 1 2
8 6 8
9 6 8
10 6 8
11 6 8
12 6 8
13 6 8
14 6 8
15 6 8
16 6 8
1314 6 8
1994 1 13
1994 7 12
Sample Output
Case #1: Iaka
Case #2: Yuwgna
Case #3: Yuwgna
Case #4: Iaka
Case #5: Iaka
Case #6: Iaka
Case #7: Yuwgna
Case #8: Yuwgna
Case #9: Iaka
Case #10: Iaka
Case #11: Yuwgna
Case #12: Yuwgna
Case #13: Iaka
Case #14: Yuwgna
Case #15: Iaka
Case #16: Iaka
Source
2015ACM/ICPC亚洲区沈阳站-重现赛(感谢东北大学)
讲道理的话,还是我们太菜了,英语渣渣。
题意:
Yuwgna 和 Iaka 两个和尚,修复古塔,分别从a和b开始修,Yuwgna 先修,修复的塔号i = j+k || i = j-k, 开始的时候对k和j挺懵逼的,j和k分别是已经修复好了的古塔,最后谁不能修复古塔了,谁输(不能重复修复古塔),输出赢家
思路:
a==1和a ,b互质是一样的,n个古塔都能修复,所以谁是赢家则取决于n是奇数还是偶数;
a != 1, 并且 a和b不互质,那么一共可以修复的古塔为n/gcd(a, b),最后谁是赢家还是取决于n/gcd(a, b)的奇偶性。
还是自己太菜了。
#include <iostream>using namespace std;int gcd(int a, int b){ if(b == 0) { return a; } else{ gcd(b, a%b); }}int main(){ int t; int k = 1; cin >> t; while(t--) { int n, a, b; cin >> n >> a >> b; cout << "Case #" << k++ << ": "; if(a == 1 && gcd(a, b) == 1) { if(n % 2 == 0){ cout << "Iaka" << endl; } else{ cout << "Yuwgna" << endl; } } else { int cnt = n / gcd(a,b); if(cnt % 2 == 0){ cout << "Iaka" << endl; }else{ cout << "Yuwgna" << endl; } } } return 0;}
路漫漫其修远兮
吾将上下而求索
只想为你成为更好的人,静静的生活。
- 2015ACM/ICPC亚洲区沈阳站-重现赛(感谢东北大学) HDU 5512 Pagodas
- HDU 5512 Pagodas 2015ACM/ICPC亚洲区沈阳站-重现赛(感谢东北大学)
- hdu5512 Pagodas(2015ACM/ICPC亚洲区沈阳站-重现赛(感谢东北大学) )
- 2015ACM/ICPC亚洲区沈阳站-重现赛(感谢东北大学)HDU5512 Pagodas
- HDU 5950 Recursive sequence(2016ACM/ICPC亚洲区沈阳站-重现赛(感谢东北大学))
- HDU 5512 Pagodas (GCD博弈 + 2015ACM/ICPC亚洲区沈阳站-重现赛)
- HDU-5512 Pagodas(GCD)(2015ACM/ICPC亚洲区沈阳站-重现赛)
- 2015ACM/ICPC亚洲区沈阳站-重现赛(感谢东北大学) Meeting(SPAF+拆点)
- HDU 5514 Frogs(容斥原理)——2015ACM/ICPC亚洲区沈阳站-重现赛(感谢东北大学)
- 2016ACM/ICPC亚洲区沈阳站-重现赛(感谢东北大学) 1003Recursive sequence(题解)
- Pagodas --(hdu5512)2015ACM/ICPC亚洲区沈阳站
- HDU 5512 Pagodas(gcd + 奇偶性判断)——2015ACM/ICPC亚洲区沈阳站
- HDU 5512 Pagodas 找规律 (2015ACM/ICPC亚洲区沈阳站)
- [HDU 5512][2015ACM/ICPC亚洲区沈阳站] Pagodas 博弈论
- hdu 5512 (Pagodas) 2015 ACM/ICPC 亚洲区沈阳赛区 (题目编号1004)
- 【hdu 5512】【 2015ACM/ICPC亚洲区沈阳站】Pagodas 题意&题解&代码(C++)
- 【hdu 5521】【 2015ACM/ICPC亚洲区沈阳站重现赛】Meeting 题意&题解&代码
- hdu 5510 Bazinga 2015ACM/ICPC亚洲区沈阳站-重现赛
- Openstack 远程调试 - pycharm
- LeetCode 251. Flatten 2D Vector
- php foreach
- openstack远程调试 - eclipse + pydev
- c++第四次作业—求1000以内的偶数之和
- HDU 5512 Pagodas 2015ACM/ICPC亚洲区沈阳站-重现赛(感谢东北大学)
- The operation couldn’t be completed. (LaunchServicesError error 0.)
- Feescale K64开发笔记1: 开发环境的建立
- 14串聚合物锂电池保护板和电路图(带均衡功能)
- Shell脚本学习笔记-用户输入处理
- ajax后台处理响应(java)
- jenkins在centos下的安装
- Android学习笔记(43):Java开发SQLite程序
- TextView之二:常用属性