思路:

设: 方程为

1*x1 ^ 1*x2 ^ 0*x3 = 0;

0*x1 ^ 1*x2 ^ 1*x3 = 0;

1*x1 ^ 0*x2 ^ 0*x3 = 0

把每一列压缩成一个64位整数,因为x范围为 (0 1 2 3) 二进制位不超过2, 方程组行数不超过30 则用一个大于60位整数就能表示每一列的状态,然后枚举各列就可以了。

如上面方程组

第一列为 1 0 1 ,可写为a1 = 11 00 11, 假设x1取2, 则第一列 s1 = 10 10 10, s1&a1 = 10 00 10 即为第一列的状态

第二列 a2 = 11 11 00 设x2 = 1 则 s2 = 01 01 01, 第二列状态为 a2&s2 = 01 01 00

第三列 a3 = 00 11 00 设x3 = 3 则 s3 = 11 11 11, 第三列状态为 a3&s3 = 00 11 00

对每列状态异或 (a1&s1) ^ (a2&s2) ^ (a3&s3) = 11 10 10 显然 x1=2 x2=1 x3=3 不是方程组的解

代码如下:

 #include<cstdio>
#include<map>
#include<cstring>
#define ll __int64
using namespace std;
ll a[],x[][],ans;
map<ll,ll>p;
void dfs(int d,int n,ll res,ll f)
{
if(d==n){
if(f) p[res]++;
else if(p[res]) ans+=p[res];
return ;
}
for(int i=;i<=x[d][];i++){
ll temp=x[d][i]&a[d];
dfs(d+,n,temp^res,f);
}
}
int main()
{
int t,i,j,n,m,k;
ll temp=,te;
scanf("%d",&t);
while(t--){
scanf("%d%d",&n,&m);
memset(a,,sizeof(a));
memset(x,,sizeof(x));
p.clear();
for(i=;i<n;i++)
for(j=;j<m;j++){
scanf("%I64d",&te);
if(te)
a[j]|=(temp<<(*i));
}
for(i=;i<m;i++){
scanf("%d",&x[i][]);
for(j=;j<=x[i][];j++){
scanf("%I64d",&te);
x[i][j]=te;
for(k=;k<n;k++){
x[i][j]|=(te<<(*k));
}
}
}
ans=;
dfs(,m/,,);
dfs(m/,m,,);
printf("%I64d\n",ans);
}
return ;
}

最新文章

  1. C++四种类型转换方式。
  2. mysq大数据分页
  3. Java—FileOperator
  4. 3种用组策略将域帐号加入本地管理员组的方法_jinifly_新浪博客
  5. uwsgi 启动脚本 每隔三小时重启
  6. [翻译]投影变换 Projection Transform (Direct3D 9)
  7. 【转】Qt数据库总结
  8. C#获取程序集的版本号和最后编译时间
  9. jQuery 源码分析和使用心得 - 关于源码
  10. 把项目做成jar包
  11. 使用CefSharp 在C#用户控件中嵌入Chrome浏览器使用方法
  12. UWP 创建动画的极简方式 — LottieUWP
  13. 多线程之Synchronized锁的基本介绍
  14. To the Max 二维dp(一维的变形)
  15. Angular的MVC理解--节自Adam Free的Pro angularv2
  16. flask的基础认识
  17. 【原】在Matplotlib绘图中添加Latex风格公式
  18. js-数组方法的使用和详谈
  19. es5中类与继承
  20. 并发编程之 LinkedBolckingQueue 源码剖析

热门文章

  1. Strusts2笔记8--文件的上传和下载
  2. 【codeforces】【比赛题解】#931 CF Round #468 (Div. 2)
  3. 【codeforces】【比赛题解】#872 CF Round #440 (Div.2)
  4. linux文件管理 -&gt; 系统目录结构
  5. Scrapy:创建爬虫程序的方式
  6. PHP计算字符串的长度
  7. css-css背景
  8. Python基础三(选择,循环)
  9. 练习题 --- 10种Xpath定位
  10. python+selenium第一步 - 环境搭建