题目大意:

给出一张二分图,这张二分图完美匹配的个数是奇数,求删掉第$i(1<=i<=m)$条边后完美匹配个数的奇偶性。

设这张图的邻接矩阵为$A$,那么完美匹配的个数为$A$的积和式,即
$$\sum_p \prod_i^n a_{pi}$$
因为乘上-1不影响奇偶性,所以这个东西和行列式的奇偶性是一样的。
因为矩阵的行列式可以表示为某一行或一列上所有元素与这个位置的代数余子式之积的和,即
$$\sum _{i=1}^{n}a_{i,j} \times m_{i,j}$$

$$\sum _{j=1}^{n}a_{i,j} \times m_{i,j}$$
$m_{i,j}$为这个位置的代数余子式,所以我们只要求出每个位置的代数余子式就能知道任意$a_{i,j}$从$1$变$0$答案会改变多少

设$A$的伴随矩阵为$C$,根据定义$C_{i,j}=m_{j,i}$,即$m$所构成的矩阵的转置,而$C=|A|\times A^{-1}$,这题就可以bitset压位跑过了

证明$C=|A|\times A^{-1}$:
根据定义$C_{i,j}=m_{j,i}$,因此
$$(C \times A)_{i,j} \\ =\sum_{k=1}^{n} C_{i,k} \times A_{k,j} \\=\sum_{k=1}^{n} m_{k,i} \times A_{k,j}$$
这个式子相当于把第$i$列复制到第$j$列,然后在第$j$列展开求行列式。
根据常识,当$i=j$时,$(C \times A)_{i,j}=|A|$
当$i!=j$时,$(C \times A)_{i,j}=0$
则$C \times A=|A|\times I,C=|A|\times A^{-1}$

#include<bits/stdc++.h>
#define N 500005
using namespace std;
int n,m;
bitset<2048>a[2005],b[2005];
int x[N],y[N];
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++)
{
scanf("%d%d",&x[i],&y[i]);
a[x[i]][y[i]]=1;
}
for(int i=1;i<=n;i++)b[i][i]=1;
for(int i=1;i<=n;i++)
{
int p=0;
for(int j=i;j<=n;j++)if(a[j][i]){p=j;break;}
if(p!=i)swap(a[p],a[i]),swap(b[p],b[i]);
for(int k=1;k<=n;k++)if(a[k][i]&&k!=i)a[k]^=a[i],b[k]^=b[i];
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<i;j++)
{
int t1=b[i][j],t2=b[j][i];
b[i][j]=t2;b[j][i]=t1;
}
}
for(int i=1;i<=m;i++)
{
if(b[x[i]][y[i]])
{
puts("NO");
}
else puts("YES");
}
return 0;
}

  

Codeforces 382 D Permutations的更多相关文章

  1. Codeforces 323C Two permutations

    题目描述 You are given two permutations pp and qq , consisting of nn elements, and mm queries of the for ...

  2. Codeforces 1089I - Interval-Free Permutations(析合树计数)

    Codeforces 题面传送门 & 洛谷题面传送门 首先题目中涉及排列的 interval,因此可以想到析合树.由于本蒟蒻太菜了以至于没有听过这种神仙黑科技,因此简单介绍一下这种数据结构:我 ...

  3. codeforces Gargari and Permutations(DAG+BFS)

    /* 题意:求出多个全排列的lcs! 思路:因为是全排列,所以每一行的每一个数字都不会重复,所以如果有每一个全排列的数字 i 都在数字 j的前面,那么i, j建立一条有向边! 最后用bfs遍历整个图, ...

  4. CodeForces - 296A-Yaroslav and Permutations(思维)

    Yaroslav has an array that consists of n integers. In one second Yaroslav can swap two neighboring a ...

  5. Codeforces Round #485 (Div. 2) E. Petr and Permutations

    Codeforces Round #485 (Div. 2) E. Petr and Permutations 题目连接: http://codeforces.com/contest/987/prob ...

  6. Codeforces 285 E. Positions in Permutations

    \(>Codeforces \space 285 E. Positions in Permutations<\) 题目大意 : 定义一个长度为 \(n\) 的排列中第 \(i\) 个元素是 ...

  7. Codeforces Round #198 (Div. 2) E. Iahub and Permutations —— 容斥原理

    题目链接:http://codeforces.com/contest/340/problem/E E. Iahub and Permutations time limit per test 1 sec ...

  8. 贪心 CodeForces 124B Permutations

    题目传送门 /* 贪心:全排列函数使用,更新最值 */ #include <cstdio> #include <algorithm> #include <cstring& ...

  9. Codeforces Round #382 Div. 2【数论】

    C. Tennis Championship(递推,斐波那契) 题意:n个人比赛,淘汰制,要求进行比赛双方的胜场数之差小于等于1.问冠军最多能打多少场比赛.题解:因为n太大,感觉是个构造.写写小数据, ...

随机推荐

  1. Python基础(上)

    前言 正式开始Python之旅,主要学习内容专注在爬虫和人工智能领域,如Web开发之类将跳过不研究. Python的意思是蟒蛇,源于作者Guido van Rossum(龟叔)喜欢的一部电视剧.所以现 ...

  2. windows下docker启动.net core mvc随手记

    docker基本命令: 查看当前的版本docker--version查看本地所有镜像:docker images查看当前正在运行的所有容器docker ps停止某个容器:docker stop 容器I ...

  3. element-ui + vue + node.js 与 服务器 Python 应用的跨域问题

    跨越问题解决的两种办法: 1. 在 config => index.js 中配置 proxyTable 代理: proxyTable: { '/charts': { target: 'http: ...

  4. Python初始编码-3

    01010100 新11010000 开11010100 一01100000 家11000000 看11000000 看 01010100011101110101011110110A B C01000 ...

  5. C-数据结构-typedef的用法

    .typedef的用法 # include <stdio.h> typedef int zhang; //为数据类为int从新取名为zhang 等价于int typedef struct ...

  6. 结构体内嵌比较函数bool operator < (const node &x) const {}

    直接看别人的链接 [http://www.cnblogs.com/ZERO-/p/9347296.html]

  7. Substrings Sort

    You are given nn strings. Each string consists of lowercase English letters. Rearrange (reorder) the ...

  8. layui使用记录

    一.layui表格渲染 如果后台返回的实力类里面包含另一个实体类,那么需要使用如下方式取出相应的值 var tableResult = table.render({ elem: '#' + Serve ...

  9. input file multiple 批量上传文件

    这几天维护系统,有一个批量上传文件功能,出现了一点小问题 我的笔记本选择要上传的文件很正常 但在测试环境上,别人的电脑上,选择上传文件之后 一开始,以为是代码问题,网上找了很多的资料,但还是没用,然后 ...

  10. 集美大学1414-团队作业2:需求分析&原型设计分数发布

    1.评分标准 检查项 分数 编号 调研文档或截图 1 1 软件需求分析说明书 2 2  NABCD 2 3  描述每个成员具体分工 1 4  原型设计 2 5  编码规范 1 6  推广视频 1 7  ...