博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA 11542 Square 高斯消元 异或方程组求解
阅读量:7092 次
发布时间:2019-06-28

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

题目链接:

白书的例题练练手。

P161

#include 
#include
#include
#include
#include
#include
using namespace std;#define ll int#define LL long longconst int mod = 1000000009;const int maxn = 510;const int maxp = 100;ll prime[1000],primenum;//有primenum个素数 math.hvoid PRIME(ll Max_Prime){ primenum=0; prime[primenum++]=2; for(ll i=3;i<=Max_Prime;i+=2) for(ll j=0;j
sqrt((double)i) || j==primenum-1) { prime[primenum++]=i; break; }}typedef int Matrix[maxn][maxn];int rank(Matrix A, int m, int n) { //m个方程n个变量 int i = 0, j = 0, k, r, u; while(i < m && j < n) { r = i; for(k = i; k < m; k++) if(A[k][j]) { r = k; break; } if(A[r][j]) { if(r != i) for(k = 0; k <= n; k++) swap(A[r][k], A[i][k]); for(u = i+1; u < m; u++) if(A[u][j]) for(k = i; k <= n; k++) A[u][k] ^= A[i][k]; i++; } j++; } return i;}Matrix A;int main(){ PRIME(500); int T; cin>>T; while(T--) { int n, maxp = 0; long long x; cin>> n; memset(A, 0, sizeof A); for(int i = 0; i < n; i++) { cin>> x; for(int j = 0; j < primenum; j++) while(x % prime[j] == 0) { maxp = max(maxp, j); x /= prime[j]; A[j][i] ^= 1; } } int r = rank(A, maxp+1, n); cout<< (1LL << (n-r))-1 <

转载地址:http://emnql.baihongyu.com/

你可能感兴趣的文章
nginx自定义站点目录及简单编写开发网页内容讲解
查看>>
查询是谁在用挂载的硬盘
查看>>
JavaScript之number类型的数值转换成某某进制
查看>>
iptables从入门到放弃
查看>>
PHP函数中默认参数的的写法
查看>>
Linux TCP/IP网络管理工具:net-tools VS iproute2
查看>>
linux
查看>>
CentOS6.5+Puppet3.7.3 安装、配置及测试
查看>>
grep、egrep及相应的正则表达式和用法
查看>>
Oracle修改数据文件名/移动数据文件
查看>>
Oracle内部错误:ORA-00600[17175]一例
查看>>
GATHER_STATS_JOB: Stopped by Scheduler. Consider increasing the maintenance window duration if this
查看>>
linux和windows下的clock函数
查看>>
seq命令
查看>>
JsonUtils 工具类
查看>>
shell 编写脚本批量ping ip
查看>>
MySQL5.6在线表结构变更(online ddl)总结
查看>>
人人都能学编程
查看>>
redis3.0.0 集群安装详细步骤
查看>>
31 天重构学习笔记22. 分解方法
查看>>