hdu 5833 Zhu and 772002 异或方程组高斯消元
ccpc网赛卡住的一道题
蓝书上的原题 但是当时没看过蓝书
今天又找出来看看 其实也不是特别懂 但比以前是了解了一点了
主要还是要想到构造异或方程组 异或方程组的消元只需要xor就好搞了
数学真的是硬伤啊……
(链接:蓝书161页详细讲解 我也在看……
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<string>
#define cl(a,b) memset(a,b,sizeof(a))
#define debug(x) cerr<<#x<<"=="<<(x)<<endl
using namespace std;
typedef long long ll; const int maxn=3e2+;
const int maxx=2e3+;
const int mod=1e9+; int n,maxp,tol;
int prime[maxn];
int A[maxn][maxn]; ll powmod(ll a,ll x)
{
ll t=;
while(x)
{
if(x&) t=t*a%mod;
a=a*a%mod;
x>>=;
}
return t;
} void init()
{
bool notprime[maxx];
cl(notprime,false);
notprime[]=notprime[]=true;
for(int i=; i<maxx; i++)
{
if(!notprime[i])
{
if(i*i>maxx) continue;
for(int j=i*i; j<maxx; j+=i)
notprime[j]=true;
}
}
tol=;
for(int i=; i<maxx; i++)
if(!notprime[i]) prime[tol++]=i;
} ll Gauss(int m)
{
int i=,j=,r;
while(j<m&&i<n)
{
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=; k<=n; k++) swap(A[r][k],A[i][k]);
for(int u=i+; u<m; u++) if(A[u][j])
for(int k=i; k<=n; k++) A[u][k]^=A[i][k];
i++;
}
j++;
}
return i;
} int main()
{
int T,cas=;
scanf("%d",&T);
init();
while(T--)
{
int maxp=;
ll x;
scanf("%d",&n);
memset(A,,sizeof(A));
for(int i=; i<n; i++)
{
scanf("%lld",&x);
for(int j=; j<tol; j++)
{
while(x%prime[j]==)
{
maxp=max(maxp,j);
x/=prime[j];
A[j][i]^=;
}
}
}
ll r=Gauss(maxp+);
ll tmp=n-r;
ll ans=powmod(,tmp)-;
printf("Case #%d:\n",cas++);
printf("%lld\n",ans);
}
return ;
} /* 3
4
4 6 10 15
3
3 3 4
3
2 2 2 */
hdu 5833 Zhu and 772002 异或方程组高斯消元的更多相关文章
- 【HDU 5833】Zhu and 772002(异或方程组高斯消元)
300个最大质因数小于2000的数,选若干个它们的乘积为完全平方数有多少种方案. 合法方案的每个数的质因数的个数的奇偶值异或起来为0. 比如12=2^2*3,对应的奇偶值为01(2的个数是偶数为0,3 ...
- 【HDU 5833】Zhu and 772002(异或方程组高斯消元讲解)
题目大意:给出n个数字a[],将a[]分解为质因子(保证分解所得的质因子不大于2000),任选一个或多个质因子,使其乘积为完全平方数.求其方法数. 学长学姐们比赛时做的,当时我一脸懵逼的不会搞……所以 ...
- 3364 Lanterns (异或方程组高斯消元)
基本思路.首先构造一个n*(m+1)的矩阵,同时标记一个行数row,row从零开始,然后找出每一列第一个非零的数,和第row行互换, 然后对row到n行,异或运算.最终的结果为2^(m-row) #i ...
- hdu 5833 Zhu and 772002 ccpc网络赛 高斯消元法
传送门:hdu 5833 Zhu and 772002 题意:给n个数,每个数的素数因子不大于2000,让你从其中选则大于等于1个数相乘之后的结果为完全平方数 思路: 小于等于2000的素数一共也只有 ...
- HDU 5833 Zhu and 772002
HDU 5833 Zhu and 772002 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/ ...
- HDU 5833 Zhu and 772002 (高斯消元)
Zhu and 772002 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5833 Description Zhu and 772002 are b ...
- hdu 5833 Zhu and 772002 高斯消元
Zhu and 772002 Problem Description Zhu and 772002 are both good at math. One day, Zhu wants to test ...
- HDU 2262 Where is the canteen 期望dp+高斯消元
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2262 Where is the canteen Time Limit: 10000/5000 MS ...
- 【HDU 3949】 XOR (线性基,高斯消元)
XOR Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
随机推荐
- C语言中的内存对齐
最近看了好多,也编了好多C语言的浩强哥书后的题,总觉的很不爽,真的真的好怀念linux驱动的代码,好怀念那下划线,那结构体,虽然自己还很菜. 同时看了一遍陈正冲老师的C语言深度剖析,收益很多,又把唐老 ...
- 使用EasyUI的树控件构建Web界面
最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开发框架保持一致,而在Web上,我主要采用EasyUI的前端界面处理技术,走MVC的技术路线,在重 ...
- 使用shell+awk完成Hive查询结果格式化输出
好久不写,一方面是工作原因,有些东西没发直接发,另外的也是习惯给丢了,内因所致.今天是个好日子,走起! btw,实际上这种格式化输出应该不只限于某一种需求,差不多是通用的. 需求: --基本的:当前H ...
- 利用redis的订阅和发布来实现实时监控的一个DEMO(Python版本)
redis的list类型有个很好的特性,就是每次添加元素后会返回当前list的长度,利用这个特点,我们可以监控它的长度,比如我们的key是用户注册的IP地址,list中存放的是已经在此IP地址上注册的 ...
- Media Formatters媒体格式化器
Media Formatters媒体格式化器 前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/344 ...
- C++ 顺序容器 vector list deque 之比较
在C++标准库中定义了三种顺序容器类型:vector,list和deque.所谓顺序容器就是根据位置来存储和访问元素,元素的排列次序与元素的值无关,而是由元素添加到容器的次序决定的. vector的底 ...
- [转]iOS: About diagnostic capabilities
Source:http://support.apple.com/kb/HT6331 Each of these diagnostic capabilities requires the user to ...
- 1047找环环&1503整数探究
1047就是判断一个数乘以他的位数1~n后是这个数转来转去的一个形式.主要就是大整数乘法 贴shi代码 #include<iostream> #include<string> ...
- Discuz! X2.5数据库字典(转)
DROP TABLE IF EXISTS pre_common_admincp_cmenu; CREATE TABLE pre_common_admincp_cmenu ( `id` SMALLINT ...
- 使用C#实现DHT磁力搜索的BT种子后端管理程序+数据库设计(开源)
使用C#实现DHT磁力搜索的BT种子后端管理程序+数据库设计(开源) 先直接上程序界面,了解整体工作流程是什么样子的,求服务器进行挂机测试,需要固定IP,空间大概需要10G左右(主要是BT种子占用空间 ...