题目大意:

给出一张二分图,这张二分图完美匹配的个数是奇数,求删掉第$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. 配置Nginx反向代理WebSocket,以代理noVNC为例

    什么是Nginx Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器. Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮 ...

  2. WEB 小案例 -- 网上书城(四)

    针对于这个小案例我们今天讲解结账操作,也是有关这个案例的最后一次博文,说实话这个案例的博文写的很糟糕,不知道该如何去表述自己的思路,所以内容有点水,其实说到底还是功力不够. 处理思路 点击结账,发送结 ...

  3. 【nodejs】让nodejs像后端mvc框架(asp.net mvc)一orm篇【如EF般丝滑】typeorm介绍(8/8)

    文章目录 前情概要 在使用nodejs开发过程中,刚好碰到需要做一个小工具,需要用到数据库存储功能.而我又比较懒,一个小功能不想搞一个nodejs项目,又搞一个后端项目.不如直接在nodejs里面把对 ...

  4. Centos下分布式跟踪工具Pinpoint的完整部署记录

    一.Pinpoint简单介绍Pinpoint是一款对Java编写的大规模分布式系统的APM工具,有些人也喜欢称呼这类工具为调用链系统.分布式跟踪系统.一般来说,前端向后台发起一个查询请求,后台服务可能 ...

  5. ngx_pagespeed-nginx前端优化模块介绍

    ngx_pagespeed是Nginx的一个扩展模块,借助pagespeed,为Nginx网站服务器提速.主要的功能是针对前端页面而进行服务器端的优化,对前端设计人员来说,可以省去优化css.js以及 ...

  6. 基于SSH框架的考勤管理系统的设计与实现

    基于SSH框架的考勤管理系统的设计与实现

  7. Android 學習之旅!(2)

    早幾天因爲學車,弄了幾天時間和精力過去,今天終於考過了(科目二,還是補考的...)嗯..不管這麼多了..今天又開始我的android 學習之旅!! 筆記: platform-tools目錄下的文件: ...

  8. 阅读<构建之法>第10、11、12章

    第10章 典型用户和场景 10.2 规格说明书 10.3 功能驱动的设计 问题:怎样写好spec?功能驱动设计的功能设计阶段怎样实现一个具体的功能? 第11章 软件设计与实现 11.2开发阶段的日常管 ...

  9. 【软件工程Ⅱ】作业四 |个人项目-小学四则运算 “软件”之初版(C语言)

    本次作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2186 本次作业代码的github地址:https://gith ...

  10. 同步或者重构Activiti Identify用户数据的多种方案比较

    http://www.kafeitu.me/activiti/2012/04/23/synchronize-or-redesign-user-and-role-for-activiti.html 如何 ...