10651

最近一星期状态就不是很好,也不知道为什么,很多时候连看题都看不进去,偶尔A的几道题也是强逼着自己看的总之不是一种很正常的学习状态。

这种蛋疼的状态终于在今天下午一觉睡醒之后完全消除了,我又回到了那个什么都不怕,内心极度阳光的我,GOGOGO!!!

好了,这道题真不知道别人是怎么想的。。。我直接dfs搜,别人有的用的bfs,刘汝佳还归类到dp里,算了,过了就好

//============================================================================
// Name        : 10651.cpp
// Author      :
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================

#include <iostream>
#include <cstdio>
using namespace std;
#define INF 1<<30

string s;
int d[30];
int temp, ans, n;

void dfs(){
	int tag = 0;
	for(int i = 0;i < 12;i++){
		if(i+2 < 12&&d[i] == 1&&d[i+1] == 1&&d[i+2] == 0){
			tag = 1;
			d[i] = 0;
			d[i+1] = 0;
			d[i+2] = 1;
			dfs();
			d[i+2] = 0;
			d[i+1] = 1;
			d[i] = 1;
		}
		else if(i-2 >= 0&&d[i] == 1&&d[i-1] == 1&&d[i-2] == 0){
			tag = 1;
			d[i] = 0;
			d[i-1] = 0;
			d[i-2] = 1;
			dfs();
			d[i] = 1;
			d[i-1] = 1;
			d[i-2] = 0;
		}
	}
	if(tag == 0){
		temp = 0;
		for(int i = 0;i < 12;i++){
			if(d[i] == 1) temp++;
		}

		if(ans > temp) ans = temp;
	}
	return;
}




int main() {
	freopen("a.txt", "r", stdin);
	scanf("%d", &n);
	while(n--){
		cin >> s;
		for(int i = 0;i < 12;i++){
			if(s[i] == '-') d[i] = 0;
			else d[i] = 1;
		}
		ans = INF;
		dfs();
		printf("%d\n", ans);
	}
	return 0;
}

posted @ 2011-06-06 19:12  KOKO's  阅读(518)  评论(0编辑  收藏  举报