博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 1063 Flip and Shift
阅读量:6311 次
发布时间:2019-06-22

本文共 804 字,大约阅读时间需要 2 分钟。

题意:给你一个环,上面有一些0和1,你可以进行一些操作将隔着1个数的两个数交换位置,问能否使得0和1最终都是连着的

题解:首先可以发现两个0或两个1可以在这个环上随便动,其次0110或1001可以通过一次操作变为合法,而除了11 和 00外长度为2的序列只有01与10,所以统计01与10的个数,两两消去,最终只剩下1个01或10或不剩就说明合法。

#include
#include
using namespace std;int T,cnt1,cnt2,n,x;int main(){ scanf("%d",&T); while(T--) { scanf("%d",&n); int last=-1; cnt1=cnt2=0; for(int i=1;i<=n;i++) { scanf("%d",&x); if(last==-1) last=x; else { if(last==x) { last=-1; continue; } cnt1+=last; cnt2+=(!last); last=-1; } } if(n&1) { puts("YES"); continue; } if(abs(cnt1-cnt2)<=1)puts("YES"); else puts("NO"); } return 0;}

 

转载于:https://www.cnblogs.com/pigba/p/8989789.html

你可能感兴趣的文章
css3 canvas之刮刮卡效果
查看>>
并查集模板
查看>>
RESTful Mongodb
查看>>
BZOJ3237:[AHOI2013]连通图(线段树分治,并查集)
查看>>
如何提高Ajax性能
查看>>
Android--自定义加载框
查看>>
LINUX下 lamp安装及配置
查看>>
BZOJ3105 [cqoi2013]新Nim游戏
查看>>
困惑的前置操作与后置操作
查看>>
SDNU 1269.整数序列(水题)
查看>>
BZOJ 2118 Dijkstra
查看>>
Go语言基础之结构体
查看>>
SpringCloud:Eureka Client项目搭建(Gradle项目)
查看>>
jqueryValidate
查看>>
ATL使用IE控件,并且屏蔽右键
查看>>
Jenkins
查看>>
linux下使用screen和ping命令对网络质量进行监控
查看>>
数据库设计技巧
查看>>
css定位概述
查看>>
C# 动态修改配置文件 (二)
查看>>