隐藏页面特效

运算符专项练习

1003:玩诈欺的小杉

总时间限制:
500000ms
内存限制:
65536kB
描述
小杉的幻想来到了经典日剧《诈欺游戏》的场景里……
他正在参加诈欺游戏的第四回合。话说第四回合不就是“人生”吗……总之,无论如何,小杉身为新一代的松田翔太,必须要赢得这场游戏!第四回合的参赛者只有一个人,庄家贝洛尼亚告诉了小杉第四回合的游戏。
是这样的,在小杉的面前有一个N行M列的棋盘,棋盘上有N*M个有黑白棋的棋子(一面为黑,一面为白),一开始都是白面朝上。
小杉可以对任意一个格子进行至多一次的操作(最多进行N*M个操作),该操作使得与该格同列的上下各2个格子以及与该格同行的左右各1个格子以及该格子本身翻面。
例如,对于一个5*5的棋盘,仅对第三行第三列的格子进行该操作,得到如下棋盘(0表示白面向上,1表示黑面向上)。

00100
00100
01110
00100
00100

对一个棋盘进行适当的操作,使得初始棋盘(都是白面朝上)变成已给出的目标棋盘的操作集合称作一个解法。
小杉的任务是:对给出的目标棋盘,求出所有解法的总数。
输入
每组测试数据的第一行有3个正整数,分别是N、M和T(1<=N、M<=20,1<=T<=5)
接下来T个目标棋盘,每个目标棋盘N行,每行M个整数之前没有空格且非0即1,表示目标棋盘(0表示白面朝上,1表示黑面朝上);两个目标棋盘之间有一个空行。
特别地,对于30%的数据,有1<=N、M<=15。
输出
对每组数据输出T行,每行一个整数,表示能使初始棋盘达到目标棋盘的解法总数。
样例输入
4 4 2 0010 0010 0111 0010 0010 0110 0111 0010
样例输出
1 1
提示
样例解释 Sample Explanation:
对于输入的数据,两个目标棋盘各有一种解法:
1:
0000
0000
0010
0000
2:
1011
1101
0111
1011
其中1表示对该格进行操作,0表示不操作。

Death or alive.
命运掌握在自己手中.

全局题号
3951
添加于
2011-09-28
提交次数
6
尝试人数
3
通过人数
3

你的提交记录

# 结果 时间
1 Accepted 06-06
#include<cstdio> #include<cstring> #include<iostream> #define ref(i,a,b) for(i=a;i<=b;i++) using namespace std; int a[22],n,m,t; char c[22][22]; int main() { cin>>n>>m>>t; scanf("\n"); while (t-->0){ int i,j; memset(a,0,sizeof(a)); ref(i,1,n){ ref(j,1,m){ cin>>c[i][j]; } scanf("\n"); } int v; ref(j,1,m){ v=1; ref(i,1,n){//我是把整个图顺时针转了90度,更好操作 a[j]+=v*(c[i][j]-48);//二进制转换成十进制状态 v*=2; } } int ans=0,k,b[21],al=(1<<n)-1; ref(a[0],0,al){ ref(i,0,m) b[i]=a[i]; ref(i,1,m){ b[i]=(b[i]^(b[i-1]*2)^(b[i-1]*4)^(b[i-1]/4)^(b[i-1]/2)^b[i-1])&al; //操作当前的状态 b[i+1]=(b[i+1]^b[i-1])&al;//操作下一状态 } if ((b[m]&al)==0) ans++; } cout<<ans<<endl; } return 0; } /*http://blog.csdn.net/hzj1054689699/article/details/50571564*/

 


__EOF__

本文作者shenben
本文链接https://www.cnblogs.com/shenben/p/5564136.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   神犇(shenben)  阅读(349)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示