码迷,mamicode.com
首页 > 其他好文 > 详细

暑假集训(4)第七弹——— 组合(hdu1850)

时间:2016-08-06 18:55:26      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:

题意概括:你赢得了第一局。魔鬼给出的第二局是,如果有N堆牌,先手的人有几种可能胜利。

 

问题分析:尼姆游戏,先得到n堆牌的数量异或和,再将异或和与每一个牌组的数量异或,如果结果小于原牌组数量

则可能++。

 

技术分享
 1 #include "cstdio"
 2 int M[104];
 3 int main()
 4 {
 5     int m,sum,f;
 6     while (scanf ("%d",&m) && m)
 7     {
 8         sum=f=0;
 9         for (int i=1;i<=m;i++)
10         {
11             scanf ("%d",&M[i]);
12             sum^=M[i];
13         }
14         for (int i=1;i<=m;i++)
15         {
16             if (M[i] > (M[i]^sum))
17                 f++;
18         }
19         printf ("%d\n",f);
20     }
21     return 0;
22 }
View Code

 

暑假集训(4)第七弹——— 组合(hdu1850)

标签:

原文地址:http://www.cnblogs.com/huas-zlw/p/5744452.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!