UVA 11542
来源:互联网 发布:python java效率 编辑:程序博客网 时间:2024/06/16 11:19
题目链接
11542 - Square
分析
每一个元素有选或则不选两种状态,因此设第
AC code
#include <cstdio>#include <iostream>#include <vector>#include <queue>#include <algorithm>#include <cmath>#include <cstring>#include <map>#include <set>#include <iomanip>#include <bitset>#define pb push_back#define mp make_pair#define PI acos(-1)#define fi first#define se second#define INF 0x3f3f3f3f#define INF64 0x3f3f3f3f3f3f3f3fusing namespace std;const int MOD = 1e9+7;const int MAX_P = 2e4+10;const int maxn = 500+10;const int MAX_V = 5e5+10;const double eps = 1e-8;typedef long long LL;typedef long double DB;typedef pair<int,int> Pair;typedef int Matrix[maxn][maxn];int prime[maxn];int get_prime(int maxv){ memset(prime,0,sizeof(prime)); int cnt =0; for(int i=2 ; i<=maxv ; ++i){ if(!prime[i]){ prime[cnt++] = i; } for(int j =0 ; j<cnt && prime[j]*i <=maxv ; ++j){ prime[prime[j]*i] = 1; if(i % prime[j] == 0)break; } } return cnt;}int my_rank(Matrix &A, int m,int n){ int i=0 ,j = 0,r; while (i<m && j < n) { int r =i ; for(int k =i ; k<m ; ++k) if(A[k][j]){r=k ; break;} if(A[r][j]){ if(r != i)for(int k = 0 ; k<n ; ++k)swap(A[r][k],A[i][k]); for(int u= i+1 ; u<m ; ++u) if(A[u][j]) for(int k = j ; k<n ; ++k) A[u][k] ^= A[i][k]; ++i; } j++; } return i;}Matrix A;int main() { int m = get_prime(500); int T; cin>>T; while (T--) { int n; scanf("%d",&n ); memset(A,0,sizeof(A)); int maxp = 0; for(int i=0 ;i<n ; ++i ){ LL x;scanf("%lld",&x ); for(int j=0 ; j<m ; ++j){ if(x %prime[j] == 0){ while (x%prime[j] ==0) { x /= prime[j]; maxp = max(maxp,j); A[j][i] ^=1; } } } } int r = my_rank(A,maxp+1,n); printf("%lld\n",(1LL << (n-r)) -1 ); } return 0;}
0 0
- UVA 11542
- UVA 11542 - Square
- uva 11542 - Square(高斯消元)
- uva 11542 Square (高斯消元)
- UVA - 11542 Square
- uva
- UVA
- UVA
- UVA
- uva
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- poj 1207
- 3.OKHTTP讲义
- 【数据结构】C语言实现栈的进栈,出栈,遍历,清空等操作
- Java工具 MyEclipse&F.lux(视力保护)
- ubuntu16.04安装ibus中文输入法
- UVA 11542
- Division, UVa 725 除法
- 线性表顺序存储结构(ArrayList底层实现原理)
- codeforces807div2 C.Success Rate[二分][数学]
- POJ NOI0105-33 计算分数加减表达式的值
- 可能有用的函数
- JS高级类,简单继承
- Linux 脚本攻略学习笔记8
- C++ HackerRank|Simple Text Editor