http://codeforces.com/problemset/problem/990/D

题意:

构造一张n阶简单无向图G,使得其连通分支个数为a,且其补图的连通分支个数为b。

题解:

第一眼看到题,一脸懵,嗯?这让我怎么建图???

还是菜啊,看别人的题解学习学习吧。。。

参考于:https://www.cnblogs.com/siuginhung/p/9172602.html

这是一个构造问题。

对于一张n阶简单无向图G,若此图不连通,则其补图是连通的。

证明:

首先,在简单无向图G中,若结点u、v(u≠v)不连通,则在其补图中,u、v必然连通。

将图G=<V,E>划分为k个连通分支,Gi=<Vi,Ei>,i=1,2,...,k。在V中任取两点u、v(u≠v)。

若u∈Vi,v∈Vj,且i≠j,则u、v在图G中不连通,则u、v必然在其补图中连通;

若u,v∈Vi,则必然存在w∈Vj,且i≠j,使得u、w和v、w在补图中连通。

于是,在题中,a、b中至少有一个为1。

接下来构造连通分支:若一个n阶简单无向图有k(k≥2)个连通分支,则可以构造其连通分支分别为{1},{2},...,{k-1},{k,k+1,...,n}。

代码如下:

 #include <stdio.h>
#include <string.h>
#include <iostream>
#include <string>
#include <math.h>
#include <algorithm>
#include <vector>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <sstream>
const int INF=0x3f3f3f3f;
typedef long long LL;
#define Bug cout<<"---------------------"<<endl
const int mod=1e9+;
const int maxn=2e5+;
using namespace std; int G[][]; int main()
{
int n,a,b;
scanf("%d %d %d",&n,&a,&b);
if((a!=&&b!=)||(n==||n==)&&(a==&&b==))
printf("NO\n");
else
{
printf("YES\n");
if(a==)
{
for(int i=;i<=n;i++)
{
G[i][i]=;
for(int j=i+;j<=n;j++)
G[i][j]=G[j][i]=;
}
for(int i=b;i<n;i++)
G[i][i+]=G[i+][i]=;
}
else
{
memset(G,,sizeof(G));
for(int i=a;i<n;i++)
{
G[i][i+]=G[i+][i]=;
}
}
for(int i=;i<=n;i++)
{
for(int j=;j<=n;j++)
printf("%d",G[i][j]);
printf("\n");
}
}
return ;
}

最新文章

  1. MFC 创建XML
  2. Java EE之servlet实现用户登录
  3. WM_COPYDATA进程间通信方案
  4. write/wall 1
  5. DataTable的筛选,过滤后绑定数据源的两种方法(DataTable的select和使用linq返回List集合)
  6. TopFreeTheme精选免费模板【20130629】
  7. lua语言入门之Sublime Text设置lua的Build System
  8. 《Oracle 从头来过》--第一篇
  9. #define和typedef在windows上的应用
  10. zabbix 3.4.1 解决中文乱码
  11. 有效的括号(Java实现)
  12. 「洛谷5283」「LOJ3048」「十二省联考2019」异或粽子【可持久化01trie+优先队列】
  13. Mac 系统下 mysql 的安装与配置
  14. Oracle 单引号 双引号 转义符 分隔符
  15. 第6章 静态路由和动态路由(3)_RIP动态路由协议
  16. Java 中转换为String类型的四种方法
  17. Go 语言机制之逃逸分析
  18. NodeJs 实现简单WebSocket 即时通讯
  19. mysql5.7用户密码策略问题
  20. FTP 服务器性能 测试点

热门文章

  1. Ubuntu18安装LAMP环境详细步骤
  2. SpringBoot安全认证Security
  3. 2016蓝桥杯省赛C/C++A组第二题 跳蚱蜢
  4. Mybatis实体类的映射文件中select,insert语句使用
  5. springboot整合mybatis与thymeleaf
  6. equals与hashcode分析
  7. sql server ------创建本地数据库 SQL Server 排序规则
  8. c# 异步和同步 多线程
  9. Python调用c++可执行程序
  10. POJ 1080:Human Gene Functions LCS经典DP