题目链接

这道题竟是同时改变左右两个,一开始看成只改变其中一个,然后推了个状态,发现是偶数就行、奇数就NO,后来看到时就知道给WA了,并且还得重新推过。

那么,这道题又该如何求解?我们知道对于左右两端是个变数,不如就从左右两端开始考虑,我以左端作为一个起始来看,无非就是有左端要与不要的情况,若是要走左,就是懂第一个点,a[1]^=1,a[2]^=1,然后在往后判断,为1点的状态用后两个点来改变其;另外一个,就是不动一点,我们就是直接判断即可.

#include <iostream>
#include <cstdio>
#include <cmath>
#include <string>
#include <cstring>
#include <algorithm>
#include <limits>
#include <vector>
#include <stack>
#include <queue>
#include <set>
#include <map>
#define lowbit(x) ( x&(-x) )
#define pi 3.141592653589793
#define e 2.718281828459045
using namespace std;
typedef long long ll;
const int INF=1e9;
const int maxN=25;
string s;
int cnt=0, ans=0, a[maxN], b[maxN];
int main()
{while(cin>>s){int len=(int)s.size();  ans=INF;if(len==1){if(s[0]=='1') printf("1\n");else printf("0\n");continue;}for(int i=0; i<len; i++) b[i+1]=a[i+1]=(int)(s[i]-'0');a[1]^=1;    a[2]^=1;    cnt=1;for(int i=1; i<len; i++){if(a[i]){cnt++;a[i]=0;a[i+1]^=1;a[i+2]^=1;}}ans=min(ans, a[len]?INF:cnt);   cnt=0;for(int i=1; i<len; i++){if(b[i]){cnt++;b[i]=0;b[i+1]^=1;b[i+2]^=1;}}ans=min(ans, b[len]?INF:cnt);if(ans==INF) printf("NO\n");else printf("%d\n", ans);}return 0;
}

翻纸牌游戏 【HDU - 2209】【规律】相关推荐

  1. HDU 2209 C - 翻纸牌游戏

    C - 翻纸牌游戏 Time Limit:3000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit St ...

  2. HDU 2209 翻纸牌游戏(DFS)

    题目链接 Problem Description 有一种纸牌游戏,很有意思,给你N张纸牌,一字排开,纸牌有正反两面,开始的纸牌可能是一种乱的状态(有些朝正,有些朝反),现在你需要整理这些纸牌.但是麻烦 ...

  3. HDU 2209 翻纸牌游戏 模拟

    Description 有一种纸牌游戏,很有意思,给你N张纸牌,一字排开,纸牌有正反两面,开始的纸牌可能是一种乱的状态(有些朝正,有些朝反),现在你需要整理这些纸牌.但是麻烦的是,每当你翻一张纸牌(由 ...

  4. 【HDOJ】2209 翻纸牌游戏

    状态压缩+双向广搜.注意控制时间t. /* 2209 */ #include <iostream> #include <string> #include <map> ...

  5. hdu-2209 翻纸牌游戏

    http://acm.hdu.edu.cn/showproblem.php?pid=2209  题解:把所有的状态看成01二进制,状态压缩,比较简单的bfs+状态压缩 #include<cstd ...

  6. 基于C++实现MFC简单的纸牌小游戏,附纸牌游戏引擎源码!

    VC++ 纸牌戏框架源码,不是完整的游戏源代码,基于MFC,写的还不是太熟悉,唉,先凑合吧,偶会继续努力学习MFC的,这个框架也是做了好几天的东西,亏本奉献了.. 项目展示: 代码展示: 效果: VB ...

  7. 用计算机玩纸牌,《玩“纸牌”游戏》教学设计

    [教学目标] 知识目标:1.进一步认识窗口.对话框和菜单命令. 2.让学生掌握纸牌游戏的玩法,使学生从玩中学计算机知识. 3.使学生熟练掌握鼠标器的操作方法. 4.初步使用"帮助" ...

  8. java中的纸牌游戏_JAVA课程设计纸牌游戏

    <JAVA课程设计纸牌游戏>由会员分享,可在线阅读,更多相关<JAVA课程设计纸牌游戏(16页珍藏版)>请在人人文库网上搜索. 1.一.问题分析和任务定义1.题目:纸牌游戏:编 ...

  9. 浅谈 翻硬币游戏【Nim博弈】

    ACM博客_kuangbin 博弈-翻硬币游戏 hihoCoder 1172 : 博弈游戏·Nim游戏·二 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Alice和B ...

最新文章

  1. Web SCADA 电力接线图工控组态编辑器
  2. 提升 DevOps 效率,试试 ChatOps 吧!
  3. Atlas Of Cardiovascular Emergencies 心血管急症图集
  4. 银联Apple Pay 总结
  5. 查看论坛隐藏链接_软连接与硬链接的区别
  6. 使用Junit对Spring进行单元测试实战小结
  7. ffmpeg 推流同时录像命令_ffmpeg推流命令
  8. 【Hive的高级查询详】
  9. Liferay7 BPM门户开发之24: Liferay7应用程序安全
  10. list.stream().map().collect(Collectors.toList())
  11. 在不确定的世界里,确定的当个程序员
  12. BZOJ 1069 最大土地面积(旋转卡壳求最大四边形)
  13. 资深iOS/Android开发工程师
  14. QDialog无边框
  15. 分析 | 多视角下图情热点分析与真题分析
  16. 开发者建议使用谷歌浏览器?
  17. 云服务器Redis集群部署及客户端通过公网IP连接问题
  18. The authenticity of host ‘gree129 (192.168.**.129)‘ can‘t be established.
  19. Verilog中#的使用与理解
  20. 定义一个抽象的Role类 有姓名 年龄 性别等成员变量 .......

热门文章

  1. 图文详解丨iOS App上架全流程及审核避坑指南
  2. [数据处理与分析] Pandas 中的 DataFrame对象
  3. CM+CDH构建企业大数据平台系列(一)
  4. DOS(bat) 字符串替换原理
  5. 购买人脸识别体温检测系统的必要性
  6. 中科院计算所培训中心开启课程研发新征程
  7. Bubba 迷你效劳器
  8. 【每日早报】2019/0604
  9. 关于python3的分号:
  10. 《写给大家看的设计书(第3版)》