博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【纪中集训2019.3.29】循环流
阅读量:7092 次
发布时间:2019-06-28

本文共 1780 字,大约阅读时间需要 5 分钟。

题目

描述

对于一个$n$个点的循环流网络,只存在容量为$1$或者$2$的边;满足容量为$1$的边有$a$条,容量为$2$的边有$b$条;询问是否存在这样的容量网络;

范围

$1 \le T \le 127449 \ , \ 2 \le n \le 50   \ , \ 0 \le a,b \le 50  $ ;

题解

  • 出题人故意把范围出得比较小来迷惑选手也不是没有可能。。。;
  • 分类构造,主要是要仔细一点;
  • 没有\(n==1\)的情况;
  • \(n==2\)
    • \(a + 2 b\) 必须要为偶数,否则无解,记\(mid = \frac{a+2b}{2}\)
    • 如果\(a=0\),必选要有\(b \% 2 = 0\) ,否则无解;
    • 如果\(b>0\)那么一定可以通过先选\(2\)边,再选\(1\)边的方法达到\(mid\),即有解;
  • $n>2 $
    • \(a+b<n\),图一定不连通,无解;
    • \(a+b=n\),连通的图只能是一个环,如果只存在一种类型的边才有解;
    • \(a+b > n\)
      • \(a=1\),剩下的全都是偶数度数,此时一定无解;
      • \(a \neq 1 ,b = 1\),可以将两条反向的\(1\)\(2\)边合成为一个\(1\)边,注意到\(a>=n\);
      • \(a \neq 1 ,b \neq 1\),可以将\(a 和 b\)组成\(min(a,n)和min(b,n)\)的两个平衡的图,合起来有解;
      • 所以另外需要再说明如何让\(a(>=n)\)条相同的\(1\)\(2\)边有解,只需要考虑\(a<2n\)的情况;
        • \(a==n\)直接构造成环;
        • \(a==n+1\)直接构造成一个\(n-1\)环和一个\(2\)元环,且两者有一个点重复;
        • \(a>n+1\)\(a-n>2\),先构成一个\(n\)元环,由于\(n>=3\)\(2x+3y\)可以有任意正整数,所以随便补上一些\(2\)元环和\(3\)元环就好了;
  • 模拟赛的时候大样例比较水,以为自己随便就过了,然后只有20,下次注意这类题。。。。;
#include
using namespace std;int C,T;int main(){ freopen("flow.in","r",stdin); freopen("flow.out","w",stdout); scanf("%d%d",&C,&T); while(T--){ int n,a,b; scanf("%d%d%d",&n,&a,&b); if(n==2){ if(!a&&!b){puts("0");continue;}//如果两个都没有则一定无法构成,否则其中一个一定有; if(a&1){puts("0");continue;}//如果1边为奇数,那么一定不存在mid = (a+2b)/2,否则存在; if(!a&&(b&1)){puts("0");continue;}//如果没有1边,那么2边的个数必须要是偶数才能达到mid; puts("1");//否则一定可以先选2,再选1填到mid; }else{ if(a==1){puts("0");continue;}//如果1边只有一个一定无法构成,否则1边的个数为0或者>=2; if(a+b
n>=3,分以下情况去证明: //首先明确2 和 3 可以构成所有>=2 的整数; //1 : b == 1 , 可以将反向的1 + 2 - > 1 , 1边的个数 >= n >= 3, ; //2 : b >= 2 , 此时很容易可以分别将a(已经讨论了a==1)和b分别成环,再组合起来,最小是a+b-1>=n的,可以覆盖; } } return 0;}

转载于:https://www.cnblogs.com/Paul-Guderian/p/10635397.html

你可能感兴趣的文章
5-1 array 数组的基本概念
查看>>
httpclient4.3 设置cookie
查看>>
dd懒也是一种境地
查看>>
使用SQL语句中的Group by分组并计算每组的数量
查看>>
ThinkPHP自定义标签
查看>>
Ioc容器
查看>>
Eclipse插件开发 RCP生成jar包后获取jar包中的Plugin/Bundle文件资源——以FreeMarker为例...
查看>>
String去掉后面空格
查看>>
Linux常用命令(1)
查看>>
linux命令
查看>>
Adobe吸引世界目光 数字出版让生活更精彩——软盛携Adobe DPS闪耀2013中国武汉期刊交易博览会...
查看>>
程序员之路
查看>>
Windows Server 2012 Hyper-V新特性(10)
查看>>
不指定文件类型日志
查看>>
4. 抽象方法
查看>>
convert time-24小时制转换为12小时制
查看>>
MISP2:初始阶段
查看>>
在Linux下创建空文件的方法
查看>>
项目整体管理
查看>>
打算搭建一个***视频下载网站
查看>>