标签:
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 40424 | Accepted: 17556 |
Description
Input
Output
Sample Input
bwwb bbwb bwwb bwww
Sample Output
4
Source
#include <cstdio> #include <algorithm> using namespace std; const int INF = 0x7fffffff; char s[20]; int change[16] = {19,39,78,140,305,626,1252,2248,4880,8992,20032,35968,12544,29184,58368,51200}; int pos[16] = {1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768}; void solve() { int init_state = 0; for(int i = 0; i < 16; ++i){ if(s[i] == ‘b‘) init_state += pos[i]; } int res = INF; for(int i = 0; i < 65536; ++i){ int cnt = 0; int state = init_state; for(int j = 0; j < 16; ++j){ if(i&pos[j]){ ++cnt; state ^= change[j]; } } if(state == 0 || state == 65535) res = min(res, cnt); } if(res == INF) printf("Impossible\n"); else printf("%d\n", res); } int main() { for(int i = 0; i < 4; ++i) scanf("%s", &s[i*4]); solve(); return 0; }
标签:
原文地址:http://www.cnblogs.com/inmoonlight/p/5790786.html