博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA 11542 Square [XOR方程组]
阅读量:5878 次
发布时间:2019-06-19

本文共 1692 字,大约阅读时间需要 5 分钟。

  给一个集合S,问S有多少个子集满足子集中的数乘积是完全平方组。

  一个数是完全平方数当且仅当它所有的质因数都有偶数个,所以只要看这个集合中所有数的质因数是否是偶数个即可。和开灯方案数问题类似,矩阵中X[i][j]=1表示第j个数的第i个质因数(2,3,5,7...)有奇数个,等于0表示有偶数个。然后列出XOR方程组然后算有几个自由基即可。

 

1 #include 
2 #include
3 #include
4 using namespace std; 5 typedef long long LL; 6 int cas, n; 7 LL nx; 8 int isp[505], prs, pri[505]; 9 int x[505][505];10 void init(){11 for (int i = 2; i < 501; i++) if(!isp[i])12 for (int j = i*2; j < 501; j += i) isp[j] = 1;13 for (int i = 2; i < 501; i++) if(!isp[i]) pri[prs++] = i;14 }15 int gauss(int totr, int totc) {16 int r = 0, c = 0;17 while (r < totr && c < totc) {18 int maxr = r;19 for (int i = r+1; i < totr; i++)20 if (x[i][c]) maxr = i;21 if (x[maxr][c] != 0) {22 if (maxr != r)23 for (int i = 0; i <= totc; i++) swap(x[maxr][i], x[r][i]);24 for (int i = r+1; i < totr; i++) if(x[i][c]){25 for (int j = c; j <= totc; j++) x[i][j] ^= x[r][j];26 }27 r++;28 }29 c++;30 }31 return totc - r;32 }33 int main(){34 //freopen("test.in","r",stdin);35 init();36 scanf("%d", &cas);37 while (cas--) {38 scanf("%d", &n);39 memset(x, 0, sizeof x);40 for (int i = 0; i < n; i++) {41 scanf("%lld", &nx);42 for (int j = 0; j < prs; j++) {43 while (nx % pri[j] == 0)44 nx /= pri[j], x[j][i] ^= 1;45 }46 }47 int l = gauss(prs, n);48 printf("%lld\n", (1LL<

 

 

转载于:https://www.cnblogs.com/swm8023/archive/2012/10/31/2748150.html

你可能感兴趣的文章
微软同步发行Windows 10和Windows 10 Mobile系统更新
查看>>
Maven 传递依赖冲突解决(了解)
查看>>
Zeppelin的入门使用系列之使用Zeppelin运行shell命令(二)
查看>>
[Spark][Python]Spark Join 小例子
查看>>
form表单下的button按钮会自动提交表单的问题
查看>>
大战设计模式【11】—— 模板方法模式
查看>>
springBoot介绍
查看>>
Intellij IDEA 快捷键整理
查看>>
Redis 通用操作2
查看>>
11. Spring Boot JPA 连接数据库
查看>>
洛谷P2925 [USACO08DEC]干草出售Hay For Sale
查看>>
MapReduce工作原理流程简介
查看>>
那些年追过的......写过的技术博客
查看>>
小米手机解锁bootload教程及常见问题
查看>>
Python内置函数property()使用实例
查看>>
Spring MVC NoClassDefFoundError 问题的解决方法。
查看>>
CentOS 6.9配置网卡IP/网关/DNS命令详细介绍及一些常用网络配置命令(转)
查看>>
python基础教程_学习笔记19:标准库:一些最爱——集合、堆和双端队列
查看>>
C# 解决窗体闪烁
查看>>
CSS魔法堂:Transition就这么好玩
查看>>