题意:

给定点数,构造自补图,要求输出邻接矩阵,和原图与补图的同构映射。

题解:

只有点数为4k和4k+1的情况才能构造自补图,因为只有这些情况下边数才为偶数。

一种构造方式是,邻接矩阵和同构映射增量构造,每次加四个边xyzw,x和w连接原来的所有边,yz不连,同构映射是交换xy,zw

参考:www.matrix67.com/blog/archives/6221

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int M = 2e3 + ;
const LL mod = ;
const LL lINF = 0x3f3f3f3f3f3f3f3f;
bool mp[M][M];
int t;
int n;
int a[M];
int main()
{
scanf("%d", &t);
for (int cnt = ; cnt <= t; cnt++)
{
scanf("%d", &n);
if (n % == )
{
printf("Case #%d: Yes\n", cnt);
memset(mp, , sizeof mp);
mp[][] = mp[][] = ;
mp[][] = mp[][] = ;
mp[][] = mp[][] = ;
a[] = ;
a[] = ;
a[] = ;
a[] = ;
for (int i = ; i <= n; i += )
{
mp[i][i + ] = mp[i + ][i] = ;
mp[i + ][i + ] = mp[i + ][i + ] = ;
mp[i + ][i + ] = mp[i + ][i + ] = ;
for (int j = ; j < ; j+=)
{
for (int k = ; k < i; k++)
{
mp[i + j][k] = mp[k][i + j] = ;
}
}
a[i] = i + ;
a[i + ] = i;
a[i + ] = i + ;
a[i + ] = i + ;
swap(a[i+], a[i + ]);
}
for (int i = ; i <= n; i++)
{
for (int j = ; j <= n; j++)
{
printf("%d", mp[i][j]);
}
puts("");
}
for (int i = ; i < n; i++)
{
printf("%d ", a[i]);
}
printf("%d\n", a[n]);
}
else if (n % == )
{
printf("Case #%d: Yes\n", cnt);
memset(mp, , sizeof mp);
a[] = ;
for (int i = ; i <= n; i += )
{
mp[i][i + ] = mp[i + ][i] = ;
mp[i + ][i + ] = mp[i + ][i + ] = ;
mp[i + ][i + ] = mp[i + ][i + ] = ;
for (int j = ; j < ; j+=)
{
for (int k = ; k < i; k++)
{
mp[i + j][k] = mp[k][i + j] = ;
}
}
a[i] = i + ;
a[i + ] = i;
a[i + ] = i + ;
a[i + ] = i + ;
swap(a[i+], a[i + ]);
}
for (int i = ; i <= n; i++)
{
for (int j = ; j <= n; j++)
{
printf("%d", mp[i][j]);
}
puts("");
}
for (int i = ; i < n; i++)
{
printf("%d ", a[i]);
}
printf("%d\n", a[n]);
}
else
{
printf("Case #%d: No\n", cnt);
}
}
}

牛客多校第六场 E Androgynos 自补图的更多相关文章

  1. 牛客多校第六场 C Generation I 组合数学 阶乘逆元模板

    链接:https://www.nowcoder.com/acm/contest/144/C来源:牛客网 Oak is given N empty and non-repeatable sets whi ...

  2. 牛客多校第六场 J Heritage of skywalkert 随即互质概率 nth_element(求最大多少项模板)

    链接:https://www.nowcoder.com/acm/contest/144/J来源:牛客网 skywalkert, the new legend of Beihang University ...

  3. 牛客多校第六场-H-Pair

    链接:https://ac.nowcoder.com/acm/contest/887/H来源:牛客网 题目描述 Given three integers A, B, C. Count the numb ...

  4. 同构图+思维构造——牛客多校第六场E

    考的其实是同构图的性质: 1.同构图的顶点数,边数相等 2.同构图通过点的映射后邻接矩阵相同 这篇博客讲的很好https://www.jianshu.com/p/c33b5d1b4cd9 本题还需要一 ...

  5. 2018牛客多校第六场 G.Pikachu

    题意: 给出一棵n个点的树,每条边有边权.对这个树加边变成一个完全图.新加的边的权值为边上两点在树上的距离.求完全图上任意两点的最大流之和. 题解: 一共有C(n,2)个点对.假设当前求s到t之间的最 ...

  6. 2018牛客多校第六场 I.Team Rocket

    题意: 给出n个区间和m个点(点按顺序给出且强制在线).每个区间只会被第一个他包含的点摧毁.问每个点能摧毁多少个区间以及每个区间是被哪个点摧毁的. 题解: 将n个区间按照左端点排序,然后用vector ...

  7. 牛客多校第六场C

    一个数很大,并不能预处理,所以要进行公式变换,存前一个的值就好 #include <bits/stdc++.h> using namespace std; typedef long lon ...

  8. Palindrome Mouse(2019年牛客多校第六场C题+回文树+树状数组)

    目录 题目链接 题意 思路 代码 题目链接 传送门 题意 问\(s\)串中所有本质不同的回文子串中有多少对回文子串满足\(a\)是\(b\)的子串. 思路 参考代码:传送门 本质不同的回文子串肯定是要 ...

  9. 2019牛客多校第六场 B - Shorten IPv6 Address 模拟

    B - Shorten IPv6 Address 题意 给你\(128\)位的二进制,转换为十六进制. 每\(4\)位十六进制分为\(1\)组,每两组用一个\(":"\)分开. 每 ...

随机推荐

  1. linux安装lolcat实现彩色文字输出信息

    [root@localhost ~]# mount /dev/sr0 /media/[root@localhost ~]# rpm -ivh epel-release-latest-7.noarch. ...

  2. 一个简易h5涉及的ps技巧

    事实证明,很长时间不做,是会忘掉的呀,的呀,呀,啊~ 1.合并图层 CTRL+E合并多个图层 2.切片 3.导出 文件-------导出------存储为web所用格式-------->> ...

  3. SpringBoot中使用Scheduling执行定时任务

    SpringBoot自带的 Schedule,可以将它看成一个轻量级的Quartz,而且使用起来比Quartz简单许多 以下任务都是在单线程下执行的 第一步 创建SpringBoot项目 第二步 外汇 ...

  4. centos做免密登录

    CentOS 6.9 SSH配置用户免密码登录 1. 演示环境: 192.168.1.144:CentOS 6.9 x86_64 192.168.1.146:CentOS 7.4 x86_64 2.  ...

  5. 微信小程序布局篇

    刚刚接触小程序,小程序与HTML5有一定的差别,小程序就几个标签,而HTML5一大堆标签,还不断更新,但是新增标签功能强大.做一下微信小程序的布局练练手.感觉还是挺不错的,也封装了很多东西功能出来,与 ...

  6. 理解MITRE ATT&CK矩阵

    最近准备学习一下关于ATT&CK的知识,这里面先来理解一下什么是ATT&CK(通过对ATT&CK的学习,可以很快的对安全领域有一个比较全面的认识). 什么是MITRE MITR ...

  7. NX-二次开发删除对象UF_OBJ_delete_object

    NX9+VS2012 #include <uf.h> #include <uf_curve.h> #include <uf_obj.h> UF_initialize ...

  8. string的find("")

    ); string strleft; int FindMin = TempRangeData1.find(("_")); ) { strleft = (TempRangeData1 ...

  9. mysql数据库名有 横杠 横线 - dash 怎么办

    '''SELECT date FROM `%s` ORDER BY date DESC LIMIT 1''' % 'ZXS-QZCSCRB-3' 重点就是这个符号 ` 键盘左上角

  10. 312. 戳气球【困难】【区间DP】

    题目链接 有 n 个气球,编号为0 到 n-1,每个气球上都标有一个数字,这些数字存在数组 nums 中. 现在要求你戳破所有的气球.每当你戳破一个气球 i 时,你可以获得 nums[left] * ...