Problem A:Euclid's Game(欧几里德游戏)
题目的大意为:在一块板上一开始写有两个不相等的正整数。两个玩家交替写数字,每一次,当前玩家都必须在板上写出任意两个板上数字的差,而且这个数字必须是新的,也就是说,不能与板上任何一个已有的数字相同。当玩家再也写不出新数字时,他就输了。假设有A、B两个玩家,A先写,B后写。对于给定的两个数字,写程序判断是 A赢还是B赢。
提示:A赢还是B赢的关键是找出能写在板上的数字的个数,如果是奇数个数字可写,则A赢,如果是偶数个,则B赢。能写在板上的数字个数刚好可以用欧几里德算法(GCD)得到,假设开始数板上的两个数字为M和N,且M>N,则能写在板上的数字个数=M/GCD(M,N),因此,只需要判断该数字的奇数还是偶数即可。(算法略)
Problem B:Locker doors(带锁的门)
题目大意:在走廊上有n个带锁的门,从1到n依次编号。最初所有的门都是关着的。我们从门前经过n次,每一次都从1号门开始。在第i次经过时(i=1,2,..., n)我们改变i的整数倍号锁的状态:也就是如果门是关的,就打开它;如果门是打开的,就关上它。举例来说,第一次经过后,所有的门都是打开的;第二次经过后,偶数门是关着的,奇数门是开着的;以此类推,在最后一次经过后,有多少门是开着的。
提示:门的状态只有两种,没经过一次,状态就会发生变化。如果一道门经过奇数次,那么结果状态和原始状态就会不一样,而经过偶数次则不会发生变化。因此问题的关键就是找出那些经过奇数次的门有多少道。很幸运,那些门的编号正好是整数i的完全平方数即1,4,9,16,...,因此只需要找出这样的数字有多少个即可。(算法略)
分享到:
相关推荐
杭州电子科技大学ACM基础题,是对C语言的理解和学习的简单题
杭电ACM基础题
acm递归基础题目详解。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。...
acm基础训练题,比如N皇后问题,排球队员站位问题等等,都有详细算法解答,还有各种ACM中运用到的算法详解,对ACM有浓厚兴趣的同学应该很有帮助
SDUTACM基础刷题题库(实验一)
ACM的题的解法!有很多经典的算法和巧妙的思路,是适合立志参加程序设计比赛同学的好助手!
ACM主办的国际大学生程序设计竞赛 (International Collegiate Programming Contest),简称ACM / ICPC,自从1977年开始至今已经连续举办34届。其宗旨是提供一个让大学生向IT界展示自己分析问题和解决问题的能力的绝好...
ACM竞赛数学基础题,新手请下载练练手!下载了就不会后悔的!
ACM基础经典题.docx
【题目1】N皇后问题(八皇后问题的扩展) 【题目2】排球队员站位问题 【题目3】把自然数N分解为若干个自然数之和。 【题目4】把自然数N分解为若干个自然数之积。 【题目5】马的遍历问题。...
acm经典基础入门题目,希望对acm大赛感兴趣的同学有所帮助。
SDUTACM基础刷题题库(实验二)
ACM培训基础算法之逻辑思维 用编程实现现实生活中常见的问题
适合初学者的ACM入门级别的练习题。
ACM题目分类 基础算法教案 算法设计题集
资源为acm经典的基础题库,用来给新手刷题再合适不过了。源代码是用c语言编写的,题目生动有趣。(若侵权会立即删除)
收集的部分HDOJ杭电ACM题的代码 大牛勿下 全是基础供初级acmer使用
适合懂得编程的菜鸟提高自己的水平,只要你懂得最基础的几个规则,你就有办法做出里面的题,也许有几题稍难,可以稍微熟练再做,不过大部分是基础题
ACM基础题型的问题描述与解答代码,望对致力于ACM的同学有所帮助!
杭电ACM 200多道基础题的代码,自己断断续续花了半个月时间写完的,用C++编写的,全部都是已AC代码,给初学者做个参考!