【题目分析】 每个数没有超过500的因子。很容易想到把每一个数表示成一个二进制的数。 (0代表该质数的次数为偶数,1代表是奇数) 然后问题转化成了选取一些二进制数,使他们的异或和为0。 高斯消元,2^(自由元)即为答案,需要把空集的情况减去,所以减一。 然而发现并不需要知道哪些是自由元,所以只需要用 ...
分类:
其他好文 时间:
2017-01-15 19:13:31
阅读次数:
158
把每个数唯一分解, 要让乘积是完全平方数, 那就得让每个质数是偶数次方, 列出t条方程然后解它们在mod 2意义下的自由元个数v(异或方程组). 答案就是2^v-1(空集不算), 高精度...------------------------------------------------------...
分类:
其他好文 时间:
2015-12-14 14:28:46
阅读次数:
318
高斯消元解xor方程组...暴搜自由元+最优性剪枝-----------------------------------------------------------------------------#include#include#include#includeusing namespace ...
分类:
其他好文 时间:
2015-11-22 10:02:18
阅读次数:
177
高斯消元解异或方程组...然后对自由元进行暴搜。树形dp应该也是可以的...--------------------------------------------------------------------------------------#include#include#include#i...
分类:
其他好文 时间:
2015-11-22 00:12:58
阅读次数:
183
题意:
给你n个人m条关系
每条关系包含a,b
代表a和b可以是线上朋友也可以是线下朋友
然后保证每个人的线上朋友数和线下朋友数相等
问你有多少种组成方法
思路:
官方题解是爆搜+剪枝,然而并不会写。。
比赛的时候想到用高斯消元来剪枝
最后枚举自由元
因为关系的话到了最后肯定有些关系是确定的。
这样一定会消掉一些部分
最后G++AC C++TLE。。
代码:
#incl...
分类:
其他好文 时间:
2015-07-24 18:37:56
阅读次数:
169
对于每个灯,我们用一个变量表示其决策,xu=0表示不选,xu=1表示选。因为每个灯最后必须都亮,所以每个等都对应一个异或方程。解这个异或方程组,有几种情况: 1、存在唯一解(得到的上三角系数矩阵的主对角线上的元素全部为1) 2、存在v个自由元(即主对角线上有v个0) 我们枚举每个自由元的取...
分类:
其他好文 时间:
2015-05-23 11:11:36
阅读次数:
106
题目大意:树上拉灯游戏
高斯消元解异或方程组,对于所有的自由元暴力2^n枚举状态,代入计算
这做法真是一点也不优雅。。。
#include
#include
#include
#include
#define M 110
using namespace std;
int n,m;
int f[M][M],is_free[M],tot;
int ans[M],cnt;
void Gau...
分类:
其他好文 时间:
2015-03-17 14:17:49
阅读次数:
127
题解:
随便搞搞就好。
自由元全当成1就好了么~~~
代码:
#include
#include
#include
#include
#define P 45
#define N 1800
using namespace std;
const int dx[]={0,0,0,1,-1};
const int dy[]={0,1,-1,0,0};
int a[N][N],x...
分类:
其他好文 时间:
2015-02-10 11:19:04
阅读次数:
121
题目大意:给出m和n,求出一种方案使得每一个点和周围的四个点的1的个数为偶数。
思路:根据题意可以列出m*n个异或方程,然后组成异或方程组。解这个异或方程组然后输出任意一个解就可以了。
PS:值得注意的是,全是0肯定是一个解,显然你不能输出这个解。所以你需要让一个或一些自由元的值为1,至于怎么做,随便yy就行了。
PS2:这个题的样例吞掉了空格,然而又是SPJ,所以就是wa。。然后我...
分类:
其他好文 时间:
2015-02-09 23:13:09
阅读次数:
249