Codeforces 382 D Permutations
题目大意:
给出一张二分图,这张二分图完美匹配的个数是奇数,求删掉第$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的更多相关文章
- Codeforces 323C Two permutations
题目描述 You are given two permutations pp and qq , consisting of nn elements, and mm queries of the for ...
- Codeforces 1089I - Interval-Free Permutations(析合树计数)
Codeforces 题面传送门 & 洛谷题面传送门 首先题目中涉及排列的 interval,因此可以想到析合树.由于本蒟蒻太菜了以至于没有听过这种神仙黑科技,因此简单介绍一下这种数据结构:我 ...
- codeforces Gargari and Permutations(DAG+BFS)
/* 题意:求出多个全排列的lcs! 思路:因为是全排列,所以每一行的每一个数字都不会重复,所以如果有每一个全排列的数字 i 都在数字 j的前面,那么i, j建立一条有向边! 最后用bfs遍历整个图, ...
- CodeForces - 296A-Yaroslav and Permutations(思维)
Yaroslav has an array that consists of n integers. In one second Yaroslav can swap two neighboring a ...
- Codeforces Round #485 (Div. 2) E. Petr and Permutations
Codeforces Round #485 (Div. 2) E. Petr and Permutations 题目连接: http://codeforces.com/contest/987/prob ...
- Codeforces 285 E. Positions in Permutations
\(>Codeforces \space 285 E. Positions in Permutations<\) 题目大意 : 定义一个长度为 \(n\) 的排列中第 \(i\) 个元素是 ...
- 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 ...
- 贪心 CodeForces 124B Permutations
题目传送门 /* 贪心:全排列函数使用,更新最值 */ #include <cstdio> #include <algorithm> #include <cstring& ...
- Codeforces Round #382 Div. 2【数论】
C. Tennis Championship(递推,斐波那契) 题意:n个人比赛,淘汰制,要求进行比赛双方的胜场数之差小于等于1.问冠军最多能打多少场比赛.题解:因为n太大,感觉是个构造.写写小数据, ...
随机推荐
- (7)学习笔记 ) ASP.NET CORE微服务 Micro-Service ---- 利用Polly+AOP+依赖注入封装的降级框架
创建简单的熔断降级框架 要达到的目标是: 参与降级的方法参数要一样,当HelloAsync执行出错的时候执行HelloFallBackAsync方法. public class Person { [H ...
- Quartz.Net分布式任务管理平台
无关主题:一段时间没有更新文章了,与自己心里的坚持还是背驰,虽然这期间在公司做了统计分析,由于资源分配问题,自己或多或少的原因,确实拖得有点久了,自己这段时间也有点松懈,借口就不说那么多 ...
- Mesos+Zookeeper+Marathon的Docker管理平台部署记录(2)- 负载均衡marathon-lb
之前介绍了Mesos+Zookeeper+Marathon的Docker管理平台部署记录(1)的操作,多余的废话不说了,下面接着说下在该集群环境下的负载均衡marathon-lb的部署过程: 默认情况 ...
- 关键字搜索:jQuery过滤器插件fastLiveFilter||显示结果条数
引用js库 <script src="jquery-1.6.4.min.js"></script> <script src="jquery. ...
- Linux常用指令【转载】
[收藏]Linux常用指令[转载] $ 命令行提示符 粗体表示命令 斜体表示参数 filename, file1, file2 都是文件名.有时文件名有后缀,比如file.zip command 命令 ...
- S2X环境搭建与示例运行
S2X环境搭建与示例运行 http://dbis.informatik.uni-freiburg.de/forschung/projekte/DiPoS/S2X.html 环境 Maven proje ...
- Linux内核分析 读书笔记 (第五章)
第五章 系统调用 5.1 与内核通信 1.调用在用户空间进程和硬件设备之间添加了一个中间层.该层主要作用有三个: 为用户空间提供了硬件的抽象接口. 系统调用保证了系统的稳定和安全. 实现多任务和虚拟内 ...
- LINUX内核分析第八周总结:进程的切换和系统的一般执行过程
一.进程调度与进程切换 1.不同的进程有不同的调度需求 第一种分类: I/O密集型(I/O-bound) 频繁的进行I/O 通常会花费很多时间等待I/O操作的完成 CPU密集型(CPU-bound) ...
- 小学四则运算APP 第二个冲刺 第一天
团队成员:陈淑筠.杨家安.陈曦 团队选题:小学四则运算APP 第二次冲刺阶段时间:11.29~12.09 本次发布的是已完成的功能二(选择题): ChoiceActivity.java: packag ...
- 博客用Markdown编辑器插入视频
要展示一些App的效果用或者更方便地展示工具的操作,可以使用视频. 以下有两种方式可以在博客中插入视频 第一种 此方法适用于插入来源优酷的视频或者你自己录制了视频上传到优酷,这种方法的好处是可以插入时 ...