BestCoder Round #67 (div.2) 1001——N bulbs

来源:互联网 发布:matlab mac版多少钱 编辑:程序博客网 时间:2024/05/16 17:19

题意:给定一个长度为n的灯泡的状态序列,经过每个灯泡时,都要开关一下(开变关,关变开),问能否在回到终点的条件下关掉所有的灯。


思路:没出现一个为1的灯,都需要走奇数步来关掉它,而灯的总数为奇数的时候才能走奇数步,偶数同理。那么总数和1的个数同奇同偶时为YES。


code:

#include <cstdio>#include <iostream>#include <algorithm>#include <string>#include <cstring>#include <cmath>#include <set>#include <queue>#include <map>using namespace std;#define ft(i,s,t) for (int i=s;i<=t;i++)#define cls(a,c) memset(a,c,sizeof(a))typedef long long ll;const int N=1000006;const int M=105;int main(){    int T;    scanf("%d",&T);    while (T--){        int s=0,t,n;        scanf("%d",&n);        ft(i,1,n) {            scanf("%d",&t);            if (t==1) s++;        }        if (n%2&&s%2) puts("YES");        else if (n%2==0&&s%2==0) puts("YES");        else puts("NO");    }}


0 0
原创粉丝点击