题目链接:传送门

假思路:

  根据题意要求,只能按字典序最小的方法安排比赛。

  所以第一场必定是1和2比,3和4比。。。。

  选手:1 2

  对手:2 1

  根据要求如果1与2比过赛了,1再与其它的人(不妨设为a)比赛的话,2就必须与(第一场与a比赛的人,不妨设为b)比赛。

  因为要求字典序小,所以1应该和a、b中较小者先比赛,再与较大者比赛,那么不妨令a < b,则1、2、a、b比赛时就会是这样安排的:

  选手:1 2 a b

  对手:2 1 b a

        a b 1 2

        b a 2 1

  因为要求字典序最小,所以a、b应当先与3、4比赛:

  选手:1 2 3 4

  对手:2 1 4 3

        3 4 1 2

        4 3 2 1

  (然后陈某人脑子一片空白打了个表。。。。验证一下能不能比k轮就交上去了。)

  同样地,1已经与2、3、4比过赛了,那么它再碰见a、b、c、d(不妨令a < b < c < d)时,就会因为字典序要求依次与a、b、c、d比赛。(a、b、c、d取到最小,所以对应了5、6、7、8)

  选手:1 2 3 4 a b c d

  对手:2 1 4 3 b a d c

      3 4 1 2 c d a b

     4 3 2 1 d c b a

      a b c d 1 2 3 4

     b a d c 2 1 4 3

     c d a b 3 4 1 2

      d c b a 4 3 2 1

  这样安排首先能保证字典序最小和满足第四个规则,其次也能使得比赛的轮数尽量多(较大的数与前面的数比赛的时间更迟),所以答案就在表里。验证表中的前k行的前n个数是否出现了比n大的数即可判断是否为Impossible。

代码:

#include <bits/stdc++.h>

using namespace std;
typedef long long ll;
const int MAX_N = 1e3 + ; int N, K;
int mat[MAX_N][MAX_N]; void work(int len)
{
if (*len > MAX_N)
return;
for (int i = ; i <= len; i++) {
for (int j = ; j <= len; j++) {
mat[i+len][j] = mat[i][j] + len;
mat[i+len][j+len] = mat[i][j];
mat[i][j+len] = mat[i][j] + len;
}
}
work(*len);
} void init()
{
mat[][] = ; mat[][] = ;
mat[][] = ; mat[][] = ;
work();
} bool check()
{
for (int i = ; i <= K+; i++) {
for (int j = ; j <= N; j++) {
if (mat[i][j] > N) {
return false;
}
}
}
return true;
} int main()
{
init();
int T;
cin >> T;
while (T--) {
scanf("%d%d", &N, &K);
bool ok = check();
if (!ok) {
puts("Impossible");
continue;
}
for (int i = ; i <= K+; i++) {
bool firstprint = true;
for (int j = ; j <= N; j++) {
if (firstprint)
firstprint = false;
else
printf(" ");
printf("%d", mat[i][j]);
}
puts("");
}
}
}

ZOJ5833 Tournament(递归打表)的更多相关文章

  1. 算法模板——sap网络最大流 3(递归+邻接表)

    实现功能:同前 程序还是一如既往的优美,虽然比起邻接矩阵的稍稍长了那么些,不过没关系这是必然,但更重要的一个必然是——速度将是一个质的飞跃^_^(这里面的point指针稍作了些创新——anti指针,这 ...

  2. 算法模板——sap网络最大流 2(非递归+邻接表)

    实现功能:同最大流 1 这里面主要是把前面的邻接矩阵改成了邻接表,相比之下速度大大提高——本人实测,当M=1000000 N=10000 时,暂且不考虑邻接矩阵会不会MLE,新的程序速度快了很多倍(我 ...

  3. ZOJ 4063 - Tournament - [递归][2018 ACM-ICPC Asia Qingdao Regional Problem F]

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4063 Input Output Sample Input 2 3 ...

  4. Lua非常有用的工具——递归打印表数据

    摘要: Lua是一种非常小巧的语言.虽小,但五脏俱全. 在Lua中,我认为最最核心的数据结构就是表.表不仅可用作数组,还可以用作字典.Lua面向对象的实现也是用表实现的. 表对于Lua实在是太重要了! ...

  5. RS查询报错之递归公用表表达式不包含顶级 UNION ALL运算符

    在FM里面涉及模型的时候,修改了物理层的查询SQL如下 select * from TARGET_VISIT_GH where ghksdm in(select dept_id from DIM_BI ...

  6. T-SQL with关键字 with as 递归循环表

    )SET @OrgId = N'901205CA-6C22-4EE7-AE4B-96CC7165D07F'; WITH Childs AS ( SELECT * FROM HROrgRelation ...

  7. 1.c语言非递归乘法表(帧栈理解)

    1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <stdbool.h> 4 5 typedef stru ...

  8. 公用表表达式 (CTE)、递归、所有子节点、sqlserver

    指定临时命名的结果集,这些结果集称为公用表表达式 (CTE).公用表表达式可以包括对自身的引用.这种表达式称为递归公用表表达式. 对于递归公用表达式来说,实现原理也是相同的,同样需要在语句中定义两部分 ...

  9. 公用表表达式 (CTE)、递归

    指定临时命名的结果集,这些结果集称为公用表表达式 (CTE).公用表表达式可以包括对自身的引用.这种表达式称为递归公用表表达式. 对于递归公用表达式来说,实现原理也是相同的,同样需要在语句中定义两部分 ...

随机推荐

  1. textarea输入框限制字数

    <textarea onkeyup="checkLen(this)"></textarea> <div>您还可以输入 <span id=& ...

  2. Ubuntu安装openssh-server并通过xshell连接

    #安装ssh sudo apt-get install openssh-server openssh-client sudo apt-get update sudo apt-get upgrade 查 ...

  3. Python 自然语言处理笔记(一)

    一. NLTK的几个常用函数 1. Concordance 实例如下: >>> text1.concordance("monstrous") Displaying ...

  4. linux系统管理 系统进程

    进程介绍 '进程' 进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源 ps命令基本使用 ps命令用来查看在计算机系统中那些程序正在执行,以及执行的 ...

  5. 如何用iptables实现NAT(转)

    http://www.cnblogs.com/little-ant/p/3548087.html

  6. go语言byte类型报错cannot use "c" (type string) as type byte in assignment

    练习Go修改字符串的时候遇到这个问题:cannot use "c" (type string) as type byte in assignment,代码如下: package m ...

  7. unity3D打包发布Apk详细步骤

    1.复制android-sdk-windows文件夹到C盘或者D盘或者你可以找到的任意盘任意目录,注意:不能在中文目录下!! 复制完成之后,打开unity,新建一个项目,打开Edit-Preferen ...

  8. 【原创】<笔试题> 深圳市天软科技开发有限公司

    时间:2018.03.03  上午 1.编写函数,实现字符串比较功能. 参考:http://blog.csdn.net/liubinzi123/article/details/8271683 /* * ...

  9. Django ajax提交 登录

    一.url from django.contrib import adminfrom django.urls import pathfrom appo1 import views urlpattern ...

  10. nginx启用php

    1. php下载https://secure.php.net/downloads.php搜索china镜像站点,从这里下载http://cn2.php.net/get/php-7.2.3.tar.gz ...