2019牛客暑期多校训练营(第六场)E 构造、原图是补图的同构图
https://ac.nowcoder.com/acm/contest/886#question
题意 问是否存在某个n个点的无向图G是其补图H的同构图,若存在输出G的邻接矩阵以及H关于G的映射。
解析 构造题,答案不唯一。原图与补图边数要一样,所以当n=4*k+2和4*k+3时无解
当n=4*k 时 将点分成4部分P1,P2,P3,P4 前两部分P1P2所有的点两两连边组成团,P3P1部分与部分之间两两连边,P4P2部分与部分之间两两连边
它的补图 是 P3P4组成团,P4P1之间连边,P3P2之间连边,与原图是同构的。
块之间映射关系,原图 P1P2P3P4 补图P3P4P2P1或其他方案。
当n=4*k+1时 剩下一个点随便和两个块连就好了。
代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 2e3+;
int g[maxn][maxn];
int main()
{
int t,n,kase=;
cin>>t;
while(t--){
cin>>n;
memset(g,,sizeof(g));
printf("Case #%d: ",kase++);
if(n%==||n%==){
cout<<"No"<<endl;
continue;
}
else {
cout<<"Yes"<<endl;
int block=n/;
for(int i=;i<=block;i++){
for(int j=block+;j<=*block;j++)
g[i][j]=g[j][i]=;
for(int j=*block+;j<=*block;j++)
g[i][j]=g[j][i]=;
for(int j=i+;j<=block;j++)
g[i][j]=g[j][i]=;
}
for(int i=block+;i<=*block;i++){
for(int j=*block+;j<=*block;j++)
g[i][j]=g[j][i]=;
for(int j=i+;j<=*block;j++)
g[i][j]=g[j][i]=;
}
if(n%==){
for(int i=;i<=*block;i++)
g[i][n]=g[n][i]=;
for(int i=;i<=n;i++){
for(int j=;j<=n;j++)
printf("%d",g[i][j]);
printf("\n");
}
for(int i=*block+;i<=*block;i++)
printf("%d ",i);
for(int i=*block;i>=;i--)
printf("%d ",i);
printf("%d\n",n);
}
else{
for(int i=;i<=n;i++){
for(int j=;j<=n;j++)
printf("%d",g[i][j]);
printf("\n");
}
for(int i=*block+;i<=*block;i++)
printf("%d ",i);
for(int i=*block;i>=;i--)
printf("%d%c",i,i==?'\n':' ');
}
} }
}
2019牛客暑期多校训练营(第六场)E 构造、原图是补图的同构图的更多相关文章
- 2019牛客暑期多校训练营(第六场)C - Palindrome Mouse (回文自动机)
https://ac.nowcoder.com/acm/contest/886/C 题意: 给出一个串A , 集合S里面为A串的回文字串 , 现在在集合S里面找出多少对(a,b),b为a的字串 分析: ...
- 2019牛客暑期多校训练营(第六场)J Upgrading Technology
传送门 题意: 就是给你n个技能,每个技能最高升到m级,每升一级就是耗费Cij钱,这个Cij可能是负的,如果所有技能都升到或者说超过j等级,就会获得Dj钱,这个Dj也有可能是负值,让你求你最多得到多少 ...
- 2019牛客暑期多校训练营(第九场)A:Power of Fibonacci(斐波拉契幂次和)
题意:求Σfi^m%p. zoj上p是1e9+7,牛客是1e9: 对于这两个,分别有不同的做法. 前者利用公式,公式里面有sqrt(5),我们只需要二次剩余求即可. 后者mod=1e9,5才 ...
- 2019牛客暑期多校训练营(第一场)A题【单调栈】(补题)
链接:https://ac.nowcoder.com/acm/contest/881/A来源:牛客网 题目描述 Two arrays u and v each with m distinct elem ...
- 2019牛客暑期多校训练营(第一场) B Integration (数学)
链接:https://ac.nowcoder.com/acm/contest/881/B 来源:牛客网 Integration 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 5242 ...
- 2019牛客暑期多校训练营(第一场) A Equivalent Prefixes ( st 表 + 二分+分治)
链接:https://ac.nowcoder.com/acm/contest/881/A 来源:牛客网 Equivalent Prefixes 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/ ...
- 2019牛客暑期多校训练营(第二场)F.Partition problem
链接:https://ac.nowcoder.com/acm/contest/882/F来源:牛客网 Given 2N people, you need to assign each of them ...
- 2019牛客暑期多校训练营(第一场)A Equivalent Prefixes(单调栈/二分+分治)
链接:https://ac.nowcoder.com/acm/contest/881/A来源:牛客网 Two arrays u and v each with m distinct elements ...
- [状态压缩,折半搜索] 2019牛客暑期多校训练营(第九场)Knapsack Cryptosystem
链接:https://ac.nowcoder.com/acm/contest/889/D来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262144K,其他语言52428 ...
- 2019牛客暑期多校训练营(第二场)J-Subarray(思维)
>传送门< 前言 这题我前前后后看了三遍,每次都是把网上相关的博客和通过代码认真看了再思考,然并卵,最后终于第三遍也就是现在终于看懂了,其实懂了之后发现其实没有那么难,但是的的确确需要思维 ...
随机推荐
- sql server 学习笔记 (nested transaction 嵌套事务)
什么时候会用到嵌套事务 ? 为了代码复用,我们会写许多的储蓄过程,而中间如果需要使用到 transaction 难免就会发生嵌套了. sql server 并不直接支持嵌套事务. 但它可以用一些招式来 ...
- VMware Workstation虚拟机安装
VMware Workstation虚拟机安装 我们缺乏资金, 所以吃土.我们想搭 hadoop 集群, redis 集群, k8s 集群, 怎么办? 用虚拟机!! 一. 安装普通版本(Worksta ...
- LinearSearch Java
Java LinearSearch /** * <html> * <body> * <P> Copyright 1994-2018 JasonInternation ...
- 使用Java Executor框架实现多线程
本文将涵盖两个主题: 通过实现Callable接口创建线程 在Java中使用Executor框架 实现Callable接口 为了创建一段可以在线程中运行的代码,我们创建了一个类,然后实现了Callab ...
- restTemplate源码解析(二)restTemplate的核心逻辑
所有文章 https://www.cnblogs.com/lay2017/p/11740855.html 正文 上一篇文章中,我们构造了一个RestTemplate的Bean实例对象.本文将主要了解一 ...
- 2 webpack 4 加vue搭建开发环境最终配置
1 package.json { "name": "c", "version": "1.0.0", "desc ...
- iOS有哪些数据类型/基本数据类型?
简述 本文主要探究使用OC作为iOS开发语言时,我们能使用哪些数据类型. 一切类型始于C. C语言的类型 基本数据类型: 基本数据类型(fundamental data types)也叫原始数据类型( ...
- 使用url_for()时,会自动调用转换器的to_url()方法
视图反推url,在动态url(转换器)反推中的应用 # -*- coding: utf-8 -*- from flask import Flask, url_for, redirect from we ...
- sklearn特征工程
目录 一. 特征工程是什么? 2 ①特征使用方案 3 ②特征获取方案 4 ③特征处理 4 1. 特征清洗 4 2. 数据预处理 4 3. 特 ...
- Flutter中的替换路由、返回到根路由
替换路由 当我们有三个页面,页面1,页面2,页面3. 期望点击页面1按钮,跳转到页面2,页面2点击返回,跳转到页面1: 点击页面2按钮,跳转到页面3,页面3点击返回,跳转到页面1,而不是页面2. 这时 ...