xor方程组消元 UVA 11542 Square

 

题目传送门

题意:给n个数,选择一些数字乘积为平方数的选择方案数。训练指南题目。

分析:每一个数字分解质因数。比如4, 6, 10, 15,, 令表示选择第i个数字,那么,如果p是平方数,那么每个质因数上的指数为偶数,x1系数为2已经是偶数不考虑。可以转换为异或为0判断偶数,即奇数置为1,偶数置为0,然后n个数字m个质因数的增广矩阵消元看有几个自由变量(取0或1无所谓),答案是2^r - 1(全部都不取方案不算)

#include <bits/stdc++.h>const int N = 500 + 5;
bool vis[N];
int prime[N];
int A[N][105];void sieve(int n) {int m = sqrt (n + 0.5);for (int i=2; i<=m; ++i) {if (!vis[i]) {for (int j=i*2; j<=n; j+=i) {vis[j] = true;}}}
}int gen_prime(int n) {memset (vis, false, sizeof (vis));sieve (n);int c = 0;for (int i=2; i<=n; ++i) {if (!vis[i]) {prime[c++] = i;}}return c;
}int rank(int m, int n) {int i = 0, j = 0;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) {std::swap (A[r][k], A[i][k]);}}for (int k=i+1; k<m; ++k) {if (A[k][j]) {for (int c=i; c<=n; ++c) {A[k][c] ^= A[i][c];}}}++i;}++j;}return i;
}//Running_Time
int main() {int T; scanf ("%d", &T);int m = gen_prime (500);while (T--) {int n; scanf ("%d", &n);memset (A, 0, sizeof (A));int maxp = 100;for (int i=0; i<n; ++i) {long long x; scanf ("%lld", &x);for (int j=0; j<m; ++j) {while (x % prime[j] == 0) {x /= prime[j];A[j][i] ^= 1;maxp = std::max (maxp, j);}}}int r = rank (maxp+1, n);std::cout << ((1LL << (n - r)) - 1) << '\n';}return 0;
}

  

转载于:https://www.cnblogs.com/Running-Time/p/5365681.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/398552.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从汇编去分析线程安全

首先要知道什么是线程安全&#xff1f; 当多个线程访问某个类时&#xff0c;不管运行环境采用何种调度方式或者这些线程将如何交替执行&#xff0c;并且在主调代码中不需要任何额外的同步或协同&#xff0c;这个类都能表现出正确的行为&#xff0c;那么就称这个类是线程安全的。…

前端面试问题汇总

面试技术问题&#xff1a; Null 与 undefined区别&#xff1f;l NULL的类型是object&#xff1b;undefined的类型是undefined类型&#xff0c;一个变量如果没有初始化的话就是undefined。 l null 表示此处数值为空&#xff0c;undefined表示此处应该有值&#xff0c;但是确…

深度学习修炼(八)——经典卷积网络

文章目录8 经典卷积网络8.1 LeNet模型8.2 Alexnet8.3 VGG8.4 ResNet8.5 感受野8 经典卷积网络 在前面一讲&#xff0c;我们谈论了关于卷积神经网络的诸多细节。综合来讲&#xff0c;卷积神经网络就是含卷积层的网络。在本讲中&#xff0c;我们将会根据卷积神经网络发展的历史&…

Lua语法基础(1)---简介、基本数据类型、表达式

我觉得我已经陷入了一个坑内。因为&#xff0c;安装了Lua和SublimeText3编辑器之后&#xff0c;怎么使自己编写的lua代码在untiy内运行起来&#xff0c;是个我完全不了解的机制。先放一放吧。首先&#xff0c;来回顾一下Lua的语法基础。 第一 起点 在Lua中具有一个Chunks的概念…

视觉中的经典图像特征小结(一): 颜色直方图, HOG, LBP

[普兒原创, 如有错误和纰漏欢迎指正. 更新中...] 1. 颜色直方图 颜色空间在本质上是定义在某种坐标系统下的子空间&#xff0c;空间中的每一个坐标表示一种不同的颜色。颜色空间的目的在于给出某种颜色标准&#xff0c;使得不同的设备和用途都能对颜色有一致的描述。这里主要介…

C++从0到1的入门级教学(七)——指针

文章目录7 指针7.1 指针的基本概念7.2 指针变量的定义和使用7.3 指针所占内存空间7.4 空指针7.5 野指针7.6 void*指针7.7 指向指针的指针7.8 const修饰指针7.9 指针和数组7.10 指针和函数7 指针 指针是指向另外一种类型的符合类型&#xff0c;和引用类似&#xff0c;指针也实现…

urllib库的使用

#使用urllib库&#xff0c;将langlang2017全站网页请求并保存 #1、引入模块 from urllib import request from urllib import error#2、操作 #&#xff08;1&#xff09;创建url base_url "http://www.langlang2017.com/route.html"try:# &#xff08;2&#xff09;…

一个显示日期的工具类

一个显示日期的工具类 .h文件 #import <Foundation/Foundation.h>interface TimeUtil : NSObject (NSString*)getTimeStr1:(long long)time;(NSString*) getTimeStrStyle1:(long long)time;(NSString*)getTimeStr1Short:(long long)time;(NSString*) getTimeStrStyle2:(l…

【leetcode】Median of Two Sorted Arrays

题目简述&#xff1a; There are two sorted arrays A and B of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity should be O(log (mn)). 解题思路&#xff1a; 这本身是个很简单的题目&#xff0c;但是题目要求他的复…

C++从0到1的入门级教学(五)——字符串、向量和数组

文章目录5 字符串、向量和数组5.1 命名空间5.2 标准库string5.2.1 定义和初始化string对象5.2.2 string对象上的操作5.2.2.1 读取string对象5.2.2.2 风格5.2.2.3 使用getline读取一整行5.2.2.4 empty和size操作5.2.2.5 size_type类型5.2.2.6 比较string对象5.2.2.7 string对象的…

媒体格式分析之flv -- 基于FFMPEG

本来是应该先写一个媒体文件格式的简单讲解的&#xff0c;还没来得及写&#xff0c;以后再写。今天就先根据ffmpeg的flv.c的flv_demux这个结构体来讲解一下当前比较流行的媒体格式flv. FLV 是FLASH VIDEO的简称&#xff0c;FLV流媒体格式是随着Flash MX的推出发展而来的视频格式…

Linux命令整合之find

描述Linux下find命令在目录结构中搜索文件&#xff0c;并执行指定的操作。用法find 路径 -命令参数 [输出形式]参数说明路径&#xff1a;告诉find在哪儿去找你要的东西&#xff0c;命令参数&#xff1a;参数很多下面会说到输出形式&#xff1a;输出形式很多&#xff0c;-print,…

[HEOI2015]兔子与樱花

题目描述 很久很久之前&#xff0c;森林里住着一群兔子。有一天&#xff0c;兔子们突然决定要去看樱花。兔子们所在森林里的樱花树很特殊。樱花树由n个树枝分叉点组成&#xff0c;编号从0到n-1&#xff0c;这n个分叉点由n-1个树枝连接&#xff0c;我们可以把它看成一个有根树结…

C++从0到1的入门级教学(三)——表达式和运算符

文章目录3 运算符3.1 表达式3.1.1 基本概念3.1.2 运算符和运算对象3.1.3 运算对象的转换3.1.4 左值和右值3.2 运算符3.2.1 算术运算符3.2.2 赋值运算符3.2.3 比较运算符3.2.4 逻辑运算符3.2.5 成员访问运算符3.2.6 条件运算符3 运算符 C提供了一套供操作内置数据类型的运算符&…

谈谈用SQLite和FMDB而不用Core Data

谈谈用SQLite和FMDB而不用Core Data 发布于&#xff1a;2014-04-22 11:22阅读数&#xff1a;4235 凭良心讲&#xff0c;我不能告诉你不去使用Core Data。它不错&#xff0c;而且也在变好&#xff0c;并且它被很多其他Cocoa开发者所理解&#xff0c;当有新人加入你的组或者需要别…

Idea工具开发 SpringBoot整合JSP(毕设亲测可用)

因为&#xff0c;临近毕业了&#xff0c;自己虽然也学了很多框架。但是&#xff0c;都是在别人搭建好的基础上进行项目开发。但是springboot的官方文档上明确指出不提倡使用jsp进行前端开发&#xff0c;但是在校期间只学了jsp作为前端页面。所以&#xff0c;废话不多说&#xf…

深度学习番外——Yolov5服务器环境搭建

文章目录1 服务器搭建yolov5环境1.1 创建环境1.2 跟随官方指引2 下载预训练权重3 推理4 测试1 服务器搭建yolov5环境 1.1 创建环境 首先先的在本地环境下搭建一个我们的环境&#xff0c;名字设为yolo5-6 conda create -n yolov5-6 python3.7#创建环境 conda activate yolov5…

计算球体积

Problem Description 根据输入的半径值&#xff0c;计算球的体积。Input 输入数据有多组&#xff0c;每组占一行&#xff0c;每行包括一个实数&#xff0c;表示球的半径。Output 输出对应的球的体积&#xff0c;对于每组输入数据&#xff0c;输出一行&#xff0c;计算结果保留三…

机器学习实战(一)——员工离职预测

文章目录员工离职预测——逻辑回归的应用1 读取文件2 独热编码3 划分数据集4 归一化5 逻辑回归预测6 模型预测及评估员工离职预测——逻辑回归的应用 开始这个案例之前&#xff0c;请先点击这里的数据集进行下载&#xff1a;HR_comma_sep.zip - 蓝奏云 (lanzout.com) 1 读取文…

Mac版Anaconda安装Tweepy包

Anaconda官网给出的tweepy包安装方法&#xff1a;https://anaconda.org/conda-forge/tweepy 查阅Anaconda官方文档&#xff0c;可以通过以下控制台命令安装Tweepy包。 conda install -c conda-forge tweepy 在控制台执行后&#xff0c;系统可能会提示未找到conda指令&#xff…