dreamangel
C++博客
::
首页
::
新随笔
::
联系
::
聚合
::
管理
::
14 随笔 :: 0 文章 :: 0 评论 :: 0 Trackbacks
<
2010年1月
>
日
一
二
三
四
五
六
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔分类
ACM(9)
(rss)
Photoshop(2)
(rss)
游戏编程(2)
(rss)
随笔档案
2011年12月 (1)
2010年10月 (1)
2010年9月 (2)
2010年6月 (1)
2010年4月 (1)
2010年1月 (2)
2009年12月 (2)
2009年11月 (3)
2009年10月 (1)
搜索
最新评论
阅读排行榜
1. vc中创建控件数组(完整版)(2426)
2. 64位整数全解(1301)
3. Win32游戏编程 1(713)
4. fjnu 1925 Factstone Benchmark(519)
5. abcd*e=fghi(501)
评论排行榜
1. 64位整数全解(0)
2. fjnu 1872 Function Run Fun(0)
3. Contest - 2009低年级学生程序设计大赛解题报告(0)
4. PS水晶边框制作(0)
5. FJNU2009系列赛二总结(0)
foj 1534 阿甘的珠宝
http://acm.fzu.edu.cn/problem.php?pid=1534
Nim游戏改进型,SG函数x%3(x为某一堆的石子数量)
首先统计各堆石子%3的结果,
(1)如果%3以后全部为1,则把最后的胜负情况当作第n+1堆石头,把n+1堆石头数分别%3后异或,当结果为0时必败,反之必胜。
(2)如果%3以后全部为1或者0,处理的方式参照(1),因为所有%3为0的情况都可以设法保证用偶数次取完,%为0的堆数对胜负不产生影响。
(3)余下的情况下,即%3以后全部为1或者2的情况,只要统计1和2的情况的个数是不是都是偶数,如果是偶数,则必败,反之必胜。
#include
<
iostream
>
using
namespace
std;
int
main()
{
int
n;
while
(cin
>>
n)
{
int
i,x,sum
=
0
,f,k1
=
0
,k2
=
0
,flag;
for
(i
=
0
;i
<
n;i
++
)
{
cin
>>
x;
x
%=
3
;
if
(x
==
1
)
k1
++
;
else
if
(x
==
2
)
k2
++
;
sum
=
sum
^
x;
}
cin
>>
f;
if
(k1
==
n
||
k2
==
0
)
flag
=
sum
^
f;
else
if
(k1
%
2
==
0
&&
k2
%
2
==
0
)
flag
=
0
;
else
flag
=
1
;
if
(flag
==
1
)
cout
<<
"
yes
"
<<
endl;
else
cout
<<
"
no
"
<<
endl;
}
return
0
;
}
posted on 2010-09-03 10:27
飞翔天使
阅读(281)
评论(0)
编辑
收藏
引用
所属分类:
ACM
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
poj 1740 A New Stone Game
foj 1534 阿甘的珠宝
abcd*e=fghi
福建师范大学第七届程序设计竞赛(专业组)解题报告
fjnu 1925 Factstone Benchmark
FJNU2009系列赛二总结
Contest - 2009低年级学生程序设计大赛解题报告
fjnu 1872 Function Run Fun
64位整数全解
网站导航:
博客园
IT新闻
BlogJava
博问
Chat2DB
管理
Powered by:
C++博客
Copyright © 飞翔天使