题意:

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

题解:

只有点数为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);
}
}
}

最新文章

  1. .htaccess基本语法和应用 (2012-11-09 16:13:47)转载▼
  2. 10分钟学会前端调试利器——FireBug
  3. Week13(12月5日):不怕错误,慢慢来 :)
  4. jQuery(expression, [context]) , $(即jQuery)的參数问题
  5. Codeforces 10C Digital Root 法冠军
  6. JS或jQuery实现一组复选框的全选和取消全选?
  7. MYSQL:alter语句中change和modify的区别
  8. java8 快速实现List转map 、分组、过滤等操作
  9. How to enable mp3 on Ubuntu
  10. java基础-day19
  11. UniGUI的TUniLoginForm窗口自定义背景色和背景图片
  12. 常见的网络攻击(XSS,SQL注入,CSRF)
  13. samba 服务器搭建
  14. Linux下grep命令查找带有tab(退格)的字符
  15. jenkins权限设置
  16. you-get 下载网络上的富媒体信息
  17. ICLR 2013 International Conference on Learning Representations深度学习论文papers
  18. POJ1061:青蛙的约会——题解
  19. thinkphp的select和find的区别(转)
  20. MySql多对多关系中外键的应用

热门文章

  1. js 404页面跳转
  2. php获取数组中指定值的下标
  3. php Excel导出id
  4. 【NIO】NIO之浅谈内存映射文件原理与DirectMemory
  5. thinkphp 储存驱动
  6. thinkphp session驱动
  7. csp-s模拟测试98
  8. Comparison of FastText and Word2Vec
  9. JavaScript-Tool:wechatHelper.js
  10. 全面解析HTML5优缺点