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

1254 Flip and Shift

时间:2015-10-27 01:39:33      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:

这题是目的是把黑球和白球分开连续放,事实上只要把其中一种颜色分好在一边就可以,可以绕一个球转即是第n个球可以放在n-2或者n+2上,因为这是个环,所以只需要把黑球或者白球连续放好就可以,当一共有奇数个球时,如:7个  x 1 0 1 0 1 0(x为任意颜色球)——x一开始是为奇位,然后开始把x向右移动。0 1 x 1 0 1 0——0 1 0 1 x 1 0——0 1 0 1 0 1 x——0 x 0 1 0 1 1(注意这是环)   到这里x到了偶数位。。所以就是说当总球数为奇时奇偶位是可以互换的。所以当总球数为奇数时,无论如何都能分好。当总球数为偶数时,任意选一种球判断,我们假如分好了,那偶数位上的黑球和奇数位上黑球个数相差最大只能为1。所以以此判定

技术分享
 1 #include<stdio.h>
 2 #include<math.h>
 3 int a[30];
 4 int main()
 5 {
 6     int n,sum,i,ji=0,ou=0;
 7     scanf("%d",&n);
 8     while(n--)
 9     {
10         scanf("%d",&sum);
11         for(i=0;i<sum;i++)
12         {
13             scanf("%d",&a[i]);
14             if(a[i]==0&&i%2==0)
15                 ji++;\\判断白球在奇数位置有几个
16             else if(a[i]==0&&i%2!=0)
17                     ou++;\\判断白球在偶数位置有几个
18         }
19         if(sum%2!=0||fabs(ou-ji)<=1)
20             printf("YES\n");
21         else
22             printf("NO\n");
23     }
24     return 0;
25 
26 }
View Code

 

1254 Flip and Shift

标签:

原文地址:http://www.cnblogs.com/scau-zk/p/4912966.html

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