码迷,mamicode.com
首页 > 其他好文 > 详细

【弱省胡策】Round #5 Construct 解题报告

时间:2015-06-18 18:47:22      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:

这个题是传说中的 Hack 狂魔 qmqmqm 出的构造题。当然要神。

这个题的本质实际上就是构造一个图,然后使得任意两点间都有长度为 $k$ 的路径相连,然后对于任意的 $i < k$,都存在两个点使得这两个点没有长度为 $i$ 的路径相连。

我的构造方法就是:

  • 首先给每个点连一个自环。
  • 构造一个大小为 $n-k+1$ 的团。
  • 然后剩下的点造成一条链并与 $n-k+1$ 号点相连。

这样的解是一组可行解。

时间复杂度 $O(n^2)$,空间复杂度 $O(1)$。

技术分享
 1 #include <cstdio>
 2 #define abs(x) ((x) > 0 ? (x) : -(x))
 3 int n, k;
 4 int main()
 5 {
 6     scanf("%d%d", &n, &k);
 7     for (int i = 1; i <= n; putchar(\n), i ++)
 8         for (int j = 1; j <= n; j ++)
 9             if ((i <= n - k + 1 && j <= n - k + 1) || abs(i - j) <= 1) putchar(1);
10                 else putchar(0);
11     return 0;
12 }
Construct_Gromah

 

【弱省胡策】Round #5 Construct 解题报告

标签:

原文地址:http://www.cnblogs.com/gromah/p/4586542.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!