HDU 5591 ZYB's Game
2015-12-05 23:30
316 查看
题目大意
两个人玩游戏,都已知数X,在[1,N]中猜中X则算输。若没猜中,则缩小范围。假设两人都足够聪明,求对于任意的X属于[1,N],能使得后手赢的X有多少个。
分析
类似两堆石子,每堆石子若干个,两个人可在任意一堆石子中捡取若干个,最后一个捡完石子的人胜利。若要使得后手能够胜利,则必然是先手面临两堆石子数量相等的情况。
若两堆石子数量相等,则后手可捡取先手所捡取得同样数量的石子。从而立于不败之地。 若两堆石子数量不等,则先手可捡取一定若干石子,使得两堆石子数量相等。
因此,答案要么是1,要么是0。只有当N是奇数的时候,才会出现两边数的个数相等的情况,从而 ans = n & 1 ? 1 : 0;
代码
#include <iostream> using namespace std; int main() { int t , n; cin >> t; while(t--) { cin >> n; cout << (n & 1 ? 1 : 0) << endl; } return 0; }
相关文章推荐
- 云报表XDOC:带参数的HTML
- 云报表XDOC:基于HTML入门
- 云报表XDOC发布了
- 把文档放到PNG图片中
- 基于新浪云(SAE)的免费在线Office
- XDOC支持谷歌地图和涂鸦
- 将iteye的博客、新闻转换为长微博
- 用视频快速了解XDOC
- XDOC,Linux下Hold住□□
- 用XDOC制作Flash出国签证
- XDOC发布9.1.8版
- A Simple Task
- 黑马程序员——Foundation框架——NSDate、NSCalendar类介绍和使用
- CSS-三角形及其原理
- 用JavaScript生成PDF、word。。。
- 轮播图
- 对PDF进行数字签名,生成可信的文档
- 用XDOC生成个性化二维码
- XDOC的九宫格绘图
- Flash的便携式文档格式(FPD)