Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
2^16 暴力能过 704ms枚举所有状态,暴力过了再谈优化··· 找规律 对于一个+,反转该行+该列所有值,发现只有+这个位置会反转7次,其他都是4次,意味着只有自己变其他不变 所以我们遇到+就进行上述操作,最后将结果%2,因为偶数操作不必要,输出反转为奇数的结果即可 16ms ———————————————————————————— for(int i = 0; i < 4; ++i) { scanf("%s",game[i]); for(int j = 0; j < 4; ++j) { if(game[i][j] == '+') { ans[i][0]++; ans[i][1]++; ans[i][2]++; ans[i][3]++; ans[0][j]++; ans[1][j]++; ans[2][j]++; ans[3][j]++; ans[i][j]--; } } } int now = 0; for(int i = 0;i < 4;++i){ for(int j = 0;j < 4;++j) if(ans[i][j] & 1) now++; } printf("%d\n",now); for(int i = 0;i < 4;++i){ for(int j = 0;j < 4;++j) if(ans[i][j] & 1)printf("%d %d\n",i+1,j+1); } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator