称满足第1个条件的图为竞赛图,先来分析竞赛图

结论1:竞赛图点集上的导出子图也为竞赛图(证明略)

结论2:对于一张竞赛图,若不含有3元环,则该图为DAG

证明:反证法,若其不为DAG,设最小的简单环为$c_{1},c_{2},...,c_{k}$,必然有$k\ge 4$

根据第1个条件,考虑$c_{1}$和$c_{3}$之间边的方向,不论怎样都会有更小的简单环,与假设矛盾,因此不存在简单环

利用这个结论,来对$G$分类讨论:

1.若存在$d$使得$d$入度为0,那么$d$出度必然为$n-1$,即考虑将$d$删除并令$n$和$k$减小1的子问题(由于$a,b,c,d$四个点的入度都不为0,不影响第3个条件)

2.若所有点入度都不为0,任选一点$d$,令$V'=\{x|(x,d)\in E\}$,$V'$的导出子图不能含有3元环(否则三元环+$d$即不合法),则其为DAG

令$V_{补}={x|(d,x)\in E}$(注意$d\notin V_{补}\cup V'$),以下来证明$V_{补}$的导出子图也是一张DAG

考虑$x,y\in V_{补}$,不妨设边的方向为$(x,y)$,那么若存在$(x,z),(z,y)\in E$,则$(x,z,d,y)$不合法,换一种方式来描述这个条件:设$S_{x}=\{z|z\in V',(x,z)\in E\}$,则$S_{x}\subseteq S_{y}$

如果存在$x_{1},x_{2},x_{3}\in V_{补}$构成了三元环,则$S_{x_{1}}=S_{x_{2}}=S_{x_{3}}=\emptyset$(否则$(x_{1},x_{2},x_{3},z\in S_{x_{1}})$不合法)

再考虑一个点$x_{4}\in V_{补}$,若不存在$(x_{4},x_{i})\in E$(其中$i=1,2,3$),则$(x_{1},x_{2},x_{3},x_{4})$不合法,否则假设其所连的点为$x$,则$S_{x_{4}}\subseteq S_{x}=\emptyset$

对于$V'$的导出子图中度为0的点$z$(由于是DAG,必然存在),$\forall x\in V_{补},(x,z)\notin E$,因此$z$的入度为0,与‘所有点入度都不为0’矛盾,因此$V_{补}$中无三元环,即为DAG

考虑$(x_{1},x_{2},y_{1},y_{2})$这种形式所构成的不合法(其中$x_{1},x_{2}\in V'$且$(x_{1},x_{2})\in E$,$y_{1},y_{2}$类似),利用上面$S_{x}$的条件,有$S_{y_{1}}\subseteq S_{y_{2}}$

对于$d=x_{2}$和$d=y_{2}$(这里的$d$指四元组中的$d$,下同)分类讨论,由于$x_{2}\in S_{y_{1}}$且$\notin S_{y_{2}}$,后者是不合法的,因此考虑前者

取$x_{2}\in S_{y_{1}}$且$x_{1}\in C_{(S_{y_{2}})}S_{y_{1}}$,若$(x_{1},x_{2})\in E$一定不合法,因此$S_{y_{1}}$一定是$S_{y_{2}}$的一个‘前缀’(指在$V'$的拓扑序上)或$S_{y_{1}}$为空

另外由于每一个点入度都不为0,令$x$为$V'$中拓扑序最小的,$y$为$V_{补}$中拓扑序最大的,必然有$x\in S_{y}$,再结合上面的这个结论,有若$S_{y}\neq \emptyset$,则$x\in S_{y}$

再考虑$(x_{1},x_{2},x_{3},y)$这种形式的不合法($x_{i}\in V'$且$(x_{1},x_{2}),(x_{2},x_{3})\in E$,$y\in V_{补}$),同样对$d=x_{3}$和$d=y$分类讨论,后者显然无法使$(x_{1},x_{2},x_{3})$构成三元环,因此考虑前者

取$x_{1}$为字典序最小的位置,若$S_{y}\neq \empty$,则$x_{1}\in S_{y}$,那么接下来不能存在$x_{2}\notin S_{y}$且$x_{3}\in S_{y}$,换言之,$S_{y}$必须是$V'$的拓扑序上一个前缀(可以为空)

由于一个前缀仅通过长度确定,即令$a_{i}=|S_{y}|$(其中$y$为$V_{补}$中拓扑序为$i$的点),合法必要条件为:

1.$\forall 1\le i<|V_{补}|,a_{i}\le a_{i+1}$,$a_{|V_{补}|}>0$

2.$\forall 1\le i\le |V_{补}|,|V'|-a_{i}+i\le k$

3.$\forall 1\le i\le |V'|,(i-1+\sum [i\le a_{j}])\le k$

同时,上述分析已经考虑了所有情况,即这些条件也是充分条件

首先,每一个点都是相同的,先通过$n-1\choose |V'|$、$|V'|!$和$|V_{补}|!$来确定两边的点以及拓扑序(都是DAG),之后即统计合法的$a_{i}$方案数

对于第3个条件,仅取$i=a_{j}$判定即可,因此等价于$\forall 1\le i\le |V_{补}|,V_{补}-i+a_{i}\le k$,即每一个$a_{i}$有一个范围,使其不降的方案数,简单dp再用前缀和维护即可,总复杂度为$o(n^{4})$

 1 #include<bits/stdc++.h>
2 using namespace std;
3 #define N 205
4 int n,k,mod,ans,fac[N],inv[N],l[N],r[N],f[N][N];
5 int c(int n,int m){
6 return 1LL*fac[n]*inv[m]%mod*inv[n-m]%mod;
7 }
8 int sum(int k,int l,int r){
9 if (l>r)return 0;
10 if (!l)return f[k][r];
11 return (f[k][r]+mod-f[k][l-1])%mod;
12 }
13 int calc(int n){
14 memset(f,0,sizeof(f));
15 for(int i=l[1];i<=r[1];i++)f[1][i]=i-l[1]+1;
16 for(int i=2;i<=n;i++)
17 for(int j=l[i];j<=r[i];j++){
18 f[i][j]=sum(i-1,l[i-1],min(j,r[i-1]));
19 if (j>l[i])f[i][j]=(f[i][j]+f[i][j-1])%mod;
20 }
21 return sum(n,l[n],r[n]);
22 }
23 int main(){
24 scanf("%d%d%d",&n,&k,&mod);
25 fac[0]=inv[0]=inv[1]=1;
26 for(int i=1;i<N-4;i++)fac[i]=1LL*fac[i-1]*i%mod;
27 for(int i=2;i<N-4;i++)inv[i]=1LL*(mod-mod/i)*inv[mod%i]%mod;
28 for(int i=2;i<N-4;i++)inv[i]=1LL*inv[i-1]*inv[i]%mod;
29 for(int i=0;i<=k;i++){
30 int nn=n-i,kk=k-i;
31 if (nn==1){
32 ans=(ans+fac[n])%mod;
33 continue;
34 }
35 for(int j=1;j<=kk;j++){
36 int jj=nn-1-j;
37 for(int t=1;t<=jj;t++){
38 l[t]=max(j+t-kk,0);
39 r[t]=min(kk+t-jj,j);
40 }
41 l[jj]=max(l[jj],1);
42 int s=1LL*c(n,i)*fac[i]%mod*fac[nn-1]%mod;
43 ans=(ans+1LL*s*calc(jj))%mod;
44 }
45 }
46 printf("%d",ans);
47 }

[atAGC046F]Forbidden Tournament的更多相关文章

  1. Codeforces CF#628 Education 8 A. Tennis Tournament

    A. Tennis Tournament time limit per test 1 second memory limit per test 256 megabytes input standard ...

  2. 遇到 HTTP 错误 403.14 - Forbidden?

    打开 http://localhost:1609 报错: HTTP 错误 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容 解决方案一:设置默认首页 在 Web.conf ...

  3. Forbidden You don't have permission to access / on this server PHP

    在新安装的谷歌游览器里,打不了PHP网站了,错误显示: Forbidden You don't have permission to access / on this server. 原因还是配置权限 ...

  4. Apache2.4部署django出现403 Forbidden错误解决办法

    前言:Apache2.4部署django出现403 Forbidden错误最好要结合apache中的错误日志来观察出现何种错误导致出现403错误 下午百度了一下午没找到解决办法,试了n种方法,简直坑爹 ...

  5. vs2015启动网站调试提示 HTTP 错误 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容。 解决方法

    今天安装了vs2015 下载一个项目进行试用,启动调试的时候提示 HTTP 错误 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容. 最可能的原因: 没有为请求的 URL ...

  6. [Linux] Nginx networking 403 Forbidden 静态文件不允许查看

    nginx 的 403 Forbidden errors 表示你在请求一个资源文件但是nginx不允许你查看. 403 Forbidden 只是一个HTTP状态码,像404,200一样不是技术上的错误 ...

  7. [转]权限问题导致Nginx 403 Forbidden错误的解决方法

    权限问题导致Nginx 403 Forbidden错误的解决方法 投稿:junjie 字体:[增加 减小] 类型:转载 时间:2014-08-22 这篇文章主要介绍了权限问题导致Nginx 403 F ...

  8. xampp出现 Access forbidden! 问题解决

    解决 XAMPP 出现 A今天安装了XAMPP 试了下,增加虚拟主机时出现没权限,apache配置文件httpd.conf的allow属性,把下图中的文字注释掉: 然后公开于外网出现以下错误,也很容易 ...

  9. Wampserver2.5配置虚拟主机出现403 Forbidden的处理方案

    WampServer是一款由法国人开发的Apache Web服务器.PHP解释器以 及MySQL数据库的整合软件包.免去了开发人员将时间花费在繁琐的配置环境过程,从而腾出更多精力去做开发.在windo ...

随机推荐

  1. 将Oracle数据库数据每天备份恢复一次数据到另一台服务器上两份数据

    1.创建用户,授权,创建测试数据 创建用户 CREATE USER test identified by 123; 授权 grant dba to test; 创建测试数据 create table ...

  2. ubuntu20.04安装网易云音乐

    Ubuntu20.04安装网易云 进入网易云音乐下载地址 下载对应客户端 进入终端,安装 sudo dpkg -i 软件名.deb

  3. 从零入门 Serverless | 架构的演进

    作者 | 许晓斌 阿里云高级技术专家 本文整理自<Serverless 技术公开课>,关注"Serverless"公众号,回复 入门 ,即可获取 Serverless ...

  4. Python读取网页表格数据

    学会了从网格爬取数据,就可以告别从网站一页一页复制表格数据的时代了. 说个亲身经历的事: 以前我的本科毕业论文是关于"燃放烟花爆竹和空气质量"之间关系的,就要从环保局官网查资料. ...

  5. javascriptRemke之原型的重要性

    前言:JavaScript的原型对象一直是新人学习js的一大重大阻碍,但是原型的知识往往又是面试中常常会被深挖的一个点,为什么会这样呢?本文带你揭秘JavaScript原型的重要性,了解重要性之后再进 ...

  6. 洛谷2408不同字串个数/SPOJ 694/705 (后缀数组SA)

    真是一个三倍经验好题啊. 我们来观察这个题目,首先如果直接整体计算,怕是不太好计算. 首先,我们可以将每个子串都看成一个后缀的的前缀.那我们就可以考虑一个一个后缀来计算了. 为了方便起见,我们选择按照 ...

  7. OGG-如何只同步最近某个时间范围的数据

    一.需求,某客户希望使用OGG只同步时间大于2021-02-01日期之后的数据变换 需求如标题所示,如何使用OGG进行配置? 客户环境需要同步的表有几百G,表数据太大了;如果同步所有数据,目标库空间存 ...

  8. 51.N皇后问题

    n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 给定一个整数 n,返回所有不同的 n 皇后问题的解决方案. 每一种解法包含一个明确的 n 皇后问题的棋 ...

  9. [no code][scrum meeting] Alpha 4

    项目 内容 会议时间 2020-04-09 会议主题 OCR相关的技术展示与讨论 会议时长 30min 参会人员 全体成员 $( "#cnblogs_post_body" ).ca ...

  10. vs2010中release模式下调试程序

    debug模式调试信息全,但是速度很慢,在数据量比较大的时候非常影响调试效率,release模式速度快,但是没有调试信息.所以在编译的时候很多编译器会提供一种折中的编译方式,在release下提供调试 ...