hdu 2209 翻纸牌游戏
2015-05-06 11:50
337 查看
就是按照贪心的思路来,分成第一张牌翻不翻来考虑,接下来每次搜索看前面一张是0还是1,1的话就翻,最后看一下最后一张牌的状态。
#include<stdio.h> #include<algorithm> #include<string.h> using namespace std; const int inf=1<<30; int ans,len,a[25]; char s[25]; int dfs(int cnt ,int now) { if(now==len) { if(a[now-1]==0) return cnt; else return inf; } else if(a[now-1]) { a[now-1]=!a[now-1]; a[now]=!a[now]; a[now+1]=!a[now+1]; cnt++; } dfs(cnt,now+1); } int main() { int i; while(~scanf("%s",s)) { ans=inf; len=strlen(s); for(i=0; i<len; i++) a[i]=s[i]-'0'; a[0]=!a[0]; a[1]=!a[1]; ans=min(ans,dfs(1,1)); for(i=0; i<len; i++) a[i]=s[i]-'0'; ans=min(ans,dfs(0,1)); if(ans==inf) printf("NO\n"); else printf("%d\n",ans); } return 0; }
相关文章推荐
- HDU 2209 翻纸牌游戏
- hdu 2209 -- 翻纸牌游戏
- hdu 2209 翻纸牌游戏 模拟||bfs
- hdu 2209 翻纸牌游戏
- 翻纸牌游戏(HDU-2209)
- 翻纸牌游戏 HDU - 2209
- HDU 2209 翻纸牌游戏
- ☆HDU 2209 翻纸牌游戏(反转、开关问题)
- hdu 2209 翻纸牌的游戏
- hdu 2209 翻纸牌游戏
- HDU 2209 翻纸牌游戏
- HDU 2209 翻纸牌游戏
- hdu 2209 翻纸牌游戏
- hdu 2209 翻纸牌游戏 (状态压缩+逆向BFS)
- HDU 2209 翻纸牌游戏
- hdu 2209——翻纸牌游戏
- HDU 2209 翻纸牌游戏(双广||状态压缩)
- 翻纸牌游戏_hdu_2209(双向广搜).java
- hdu 2209 翻纸牌游戏
- HDU - 2209 翻纸牌游戏(贪心)