题目描述

给定一个循环流(每个点均满足流量平衡条件),这个循环流有$n$个点,且每条边的流量只有 $1$ 或$ 2$,其中$a$条边流量为$1$,$b$条边流量为$2$,判断是否存在一个流满足上述条件.

多组数据,其中$T\leq127749$,$2\leq n\leq50$,$a,b\leq50$.

比赛记录

比赛的时候一直在想这道题,想到了一个结论,就是一个这样的合法的流一定是由若干个简单环拼在一起,于是就写了一个暴力,但是由于对题目理解的不够深,导致我判断一个$(a,b)$状态是否可以构成一个简单环时出现了问题,于是暴力凉凉

题目解析

因为是循环流,所以显然一个合法的流网络是由若干个简单环拼接成的,这些简单环有点或边相交,我们可以构造一个简单dp,令$f[i][j][k]$表示$i$条流量为$1$的边,$j$条流量为$2$的边是否可以构成一个有$k$个节点的循环流,考虑转移

$$

f[i][j][k] = f[a][b][c] \& f[d][e][f] \ 其中a+b=i,b+e=j,c<=k,f<=k,c+f-1>=k

$$

这个dp复杂度是$O(n^7)$的.

考虑如下优化:

1.若$i+j <k$,$f[i][j][k]$显然不合法.

2.若$f[i][j][k]$合法,则$f[i+2*l][j-l][k]$也合法.

3.将$f$前缀和,可以少枚举一维.

经过如下玄学优化,可以通过本题.

另外讲一下如何判定$i$条流量为$1$,$j$条流量为$2$的边是否能构成一个长度为$k$的环的循环流.

因为我们知道假如我们固定了让每一条边都从$i$流向$i+1$,那么就很好判断这个状态是否合法,但我们其实可以将一条流量流量为$2$的边和一条流量为$1$的边捆绑变成一条流量为$1$的边,于是我们枚举有多少条边捆绑在一起,暴力判断即可.

更加高明的做法

首先$n=2$特判,对于$n \geq 3$时,我们可以直接判断出解的情况

1.若$i+j<k$,显然不合法.

2.若$i=1$,不合法,因为若流出一点的流量是奇数,那么流入这个点的流量也需要是奇数,所以至少需要$2$条.

3.若$i+j=k$,若$i=n$或$j=n$,则合法,否则不合法,因为只有$k$条边所以只能构成一个简单环,所以当$i \neq n$或$j \neq n$时,构成的环不合法.

4.若$i+j>k$,且$i\neq1$,那么一定合法

考虑证明第四条结论

首先,当$n=3$时,我们可以简单构造证明该结论成立.

对于$n\geq 3$,假设第四条结论对$k=n-1$成立,当$k=n$时,当$i=0$或$j=0$时显然成立,当$i,j>0$时,由第二条结论知道$i>1$,因此$(i-1,j)$对于$k=n-1$成立,因为$i-1>0$,所以我们有至少一条流量为$1$的边,假设这条边由$x$指向$y$,那么我们可以把这条边去掉,加上$(x,k)$,和$(k,y)$这两条边,显然这样依然满足条件,所以结论成立

最新文章

  1. 关于css的新思考
  2. t2712:字符串移位包含问题
  3. 7.3---直线是否相交(CC150)
  4. iOS LoginDemo
  5. 【资源】mp3的外链资源
  6. Swift3.0 iOS获取当前时间 - 年月日时分秒星期
  7. windows phone版的一个儿教app
  8. Xcode8 - apploader 上传失败 - ERROR ITMS-90168: &quot;The binary you uploaded was invalid.&quot;
  9. pom.xml报错
  10. spark 启动时候报 Unable to load native-hadoop library for your platform 警告
  11. Filter 字符编码Filter 一
  12. 环境配置-云服务器jdk与tomcat配置
  13. python全局解释器GIL
  14. ext window嵌jsp页面自适应
  15. C#学习-类的成员
  16. linux /etc/shadow--passwd/pam.d/system-auth文件详解
  17. 使用iframe实现同域跨站提交数据
  18. socke+epoll
  19. 读CSV转换datatable
  20. python 编码规范起源:PEP8 编码规范中文版

热门文章

  1. Identity角色管理四(删除角色)
  2. VUE001. 拖动div盒子(自定义指令v-directives)
  3. weblogic漏洞分析之CVE-2016-0638
  4. FastJson之autotype bypass
  5. Spring系列-SpringBase+IOC
  6. HDU - 3790 最短路径问题 (dijkstra算法)
  7. 学习PHP中Fileinfo扩展的使用
  8. php 单向链表反转 reverse (没有空的头结点)
  9. CF453C-Little Pony and Summer Sun Celebration【构造】
  10. 单页应用后退不刷新方案(vue &amp; react)