uva11542 Square
来源:互联网 发布:网络之大神我只是路过 编辑:程序博客网 时间:2024/06/05 04:37
Given n integers you can generate 2 n
用
#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;#define LL long longconst int maxp=500;int prm[510],tot,n,m,a[110][110];bool have[510];void init(){ int i,j; for (i=2;i<=maxp;i++) { if (!have[i]) prm[tot++]=i; for (j=0;j<tot&&prm[j]*i<=maxp;j++) { have[prm[j]*i]=1; if (i%prm[j]==0) break; } }}void build(){ int i,j; LL x; m=0; scanf("%d",&n); memset(a,0,sizeof(a)); for (i=0;i<n;i++) { scanf("%lld",&x); for (j=0;j<tot&&x>1;j++) if (x%prm[j]==0) { m=max(m,j+1); while (x%prm[j]==0) { x/=prm[j]; a[j][i]^=1; } } }}void solve(){ int i=0,j,k,r,x; for (j=0;j<n&&i<m;j++) { r=i; for (k=i;k<m;k++) if (a[k][j]) { r=k; break; } if (r!=i) for (k=0;k<=n;k++) swap(a[r][k],a[i][k]); if (a[i][j]) { for (k=i+1;k<m;k++) if (a[k][j]) for (x=i;x<=n;x++) a[k][x]^=a[i][x]; i++; } } printf("%lld\n",(1LL<<n-i)-1);}int main(){ int T; init(); scanf("%d",&T); while (T--) { build(); solve(); }}
0 0
- uva11542 Square
- uva11542 Square
- [UVA11542] Square 高斯消元
- 【UVA11542】Square(高斯消元)
- uva11542 Square(异或方程组)
- UVa11542
- uva11542(高斯消元)
- 【高斯消元】UVA11542
- Uva11542 求矩阵的秩
- Square
- Square
- Square
- Square
- Square
- Square
- Square
- Square
- Square
- Spring MVC教程快速入门
- 路由算法入门
- Java 发送 Email
- java异常 java.lang.ClassNotFoundException: javassist.util.proxy.MethodFilter
- JD京东物流电子面单接口对接文档-快递鸟
- uva11542 Square
- 使用iText生成pdf文件
- Oracle中to_char的用法
- UpdatePanel控件使用
- 安卓Dialog封装
- Nova启动虚拟机执行过程
- [FAQ18962][voip call]使用skype、line、微信等apk进行voip通话,出现回音、啸叫、杂音、卡顿等现象
- 限制客户端访问服务器算法
- AFNetworking 使用HTTPS请求 添加证书