翻纸牌游戏 【HDU - 2209】【规律】
题目链接
这道题竟是同时改变左右两个,一开始看成只改变其中一个,然后推了个状态,发现是偶数就行、奇数就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】【规律】相关推荐
- HDU 2209 C - 翻纸牌游戏
C - 翻纸牌游戏 Time Limit:3000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit St ...
- HDU 2209 翻纸牌游戏(DFS)
题目链接 Problem Description 有一种纸牌游戏,很有意思,给你N张纸牌,一字排开,纸牌有正反两面,开始的纸牌可能是一种乱的状态(有些朝正,有些朝反),现在你需要整理这些纸牌.但是麻烦 ...
- HDU 2209 翻纸牌游戏 模拟
Description 有一种纸牌游戏,很有意思,给你N张纸牌,一字排开,纸牌有正反两面,开始的纸牌可能是一种乱的状态(有些朝正,有些朝反),现在你需要整理这些纸牌.但是麻烦的是,每当你翻一张纸牌(由 ...
- 【HDOJ】2209 翻纸牌游戏
状态压缩+双向广搜.注意控制时间t. /* 2209 */ #include <iostream> #include <string> #include <map> ...
- hdu-2209 翻纸牌游戏
http://acm.hdu.edu.cn/showproblem.php?pid=2209 题解:把所有的状态看成01二进制,状态压缩,比较简单的bfs+状态压缩 #include<cstd ...
- 基于C++实现MFC简单的纸牌小游戏,附纸牌游戏引擎源码!
VC++ 纸牌戏框架源码,不是完整的游戏源代码,基于MFC,写的还不是太熟悉,唉,先凑合吧,偶会继续努力学习MFC的,这个框架也是做了好几天的东西,亏本奉献了.. 项目展示: 代码展示: 效果: VB ...
- 用计算机玩纸牌,《玩“纸牌”游戏》教学设计
[教学目标] 知识目标:1.进一步认识窗口.对话框和菜单命令. 2.让学生掌握纸牌游戏的玩法,使学生从玩中学计算机知识. 3.使学生熟练掌握鼠标器的操作方法. 4.初步使用"帮助" ...
- java中的纸牌游戏_JAVA课程设计纸牌游戏
<JAVA课程设计纸牌游戏>由会员分享,可在线阅读,更多相关<JAVA课程设计纸牌游戏(16页珍藏版)>请在人人文库网上搜索. 1.一.问题分析和任务定义1.题目:纸牌游戏:编 ...
- 浅谈 翻硬币游戏【Nim博弈】
ACM博客_kuangbin 博弈-翻硬币游戏 hihoCoder 1172 : 博弈游戏·Nim游戏·二 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Alice和B ...
最新文章
- Web SCADA 电力接线图工控组态编辑器
- 提升 DevOps 效率,试试 ChatOps 吧!
- Atlas Of Cardiovascular Emergencies 心血管急症图集
- 银联Apple Pay 总结
- 查看论坛隐藏链接_软连接与硬链接的区别
- 使用Junit对Spring进行单元测试实战小结
- ffmpeg 推流同时录像命令_ffmpeg推流命令
- 【Hive的高级查询详】
- Liferay7 BPM门户开发之24: Liferay7应用程序安全
- list.stream().map().collect(Collectors.toList())
- 在不确定的世界里,确定的当个程序员
- BZOJ 1069 最大土地面积(旋转卡壳求最大四边形)
- 资深iOS/Android开发工程师
- QDialog无边框
- 分析 | 多视角下图情热点分析与真题分析
- 开发者建议使用谷歌浏览器?
- 云服务器Redis集群部署及客户端通过公网IP连接问题
- The authenticity of host ‘gree129 (192.168.**.129)‘ can‘t be established.
- Verilog中#的使用与理解
- 定义一个抽象的Role类 有姓名 年龄 性别等成员变量 .......