题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4063

Input

Output

Sample Input

2
3 1
4 3

Sample Output

Impossible
2 1 4 3
3 4 1 2
4 3 2 1

题意:

说现在有 $n$ 个人打比赛,要你安排 $k$ 轮比赛,要求每轮每个人都参加一场比赛。

所有轮次合起来,任意一对人最多比赛一场。

且对于任意的第 $i,j$ 轮,若 $a,b$ 在第 $i$ 轮进行了一场比赛,$c,d$ 在第 $i$ 进行了一场比赛,则 $a,c$ 在第 $j$ 轮必须进行一场比赛,$b,d$ 在第 $j$ 必须进行一场比赛。

现在要你安排比赛。

题解:

算法教材上有过一道题叫“循环赛日程表”:

把对于题目所给的 $n$,找到一个最小的 $m$ 满足 $2^m \ge n$,然后按照上面的思路递归打出表格,

然后从第二行开始进行打印前 $n$ 列,如果接下来的 $k$ 行中所有的数都是在 $1 \sim n$ 里的,说明是OK的。否则就做不到比赛 $k$ 轮。

AC代码:

#include<bits/stdc++.h>
using namespace std;
int n,k;
int mp[][];
void t(int x)
{
if(x==)
{
mp[][]=, mp[][]=;
mp[][]=, mp[][]=;
return;
}
t(x/);
for(int i=;i<=x/;i++)
{
for(int j=;j<=x/;j++)
{
mp[i][j+x/]=mp[i][j]+x/;
mp[i+x/][j+x/]=mp[i][j];
mp[i+x/][j]=mp[i][j]+x/;
}
}
}
bool ok()
{
for(int i=;i<=k+;i++) {
for(int j=;j<=n;j++) {
if(mp[i][j]>n) return ;
}
}
return ;
}
int main()
{
int T;
cin>>T;
while(T--)
{
scanf("%d%d",&n,&k);
if(n% || k>=n)
{
printf("Impossible\n");
continue;
} int N=;
while((N/)>=n) N/=; t(N); if(!ok())
{
printf("Impossible\n");
continue;
}
else
{
for(int i=;i<=k+;i++) {
for(int j=;j<=n;j++) {
printf("%d%c",mp[i][j],j==n?'\n':' ');
}
}
}
}
}

ZOJ 4063 - Tournament - [递归][2018 ACM-ICPC Asia Qingdao Regional Problem F]的更多相关文章

  1. ZOJ 4060 - Flippy Sequence - [思维题][2018 ACM-ICPC Asia Qingdao Regional Problem C]

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4060 题意: 给出两个 $0,1$ 字符串 $S,T$,现在你有 ...

  2. ZOJ 4062 - Plants vs. Zombies - [二分+贪心][2018 ACM-ICPC Asia Qingdao Regional Problem E]

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4062 题意: 现在在一条 $x$ 轴上玩植物大战僵尸,有 $n$ ...

  3. ZOJ 4067 - Books - [贪心][2018 ACM-ICPC Asia Qingdao Regional Problem J]

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4067 题意: 给出 $n$ 本书(编号 $1 \sim n$), ...

  4. ZOJ 4070 - Function and Function - [签到题][2018 ACM-ICPC Asia Qingdao Regional Problem M]

    题目链接:http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=5840 Time Limit: 1 Second Mem ...

  5. 2020 ICPC Asia Taipei-Hsinchu Regional Problem H Optimization for UltraNet (二分,最小生成树,dsu计数)

    题意:给你一张图,要你去边,使其成为一个边数为\(n-1\)的树,同时要求树的最小边权最大,如果最小边权最大的情况有多种,那么要求总边权最小.求生成树后的所有简单路径上的最小边权和. 题解:刚开始想写 ...

  6. 2020 ICPC Asia Taipei-Hsinchu Regional Problem B Make Numbers (dfs搜索)

    题意:给你四个数字,你可以用这四个数字凑出四个1位数,一个2位数和两个1位数,或一个3位数和一个1位数,你可以用你凑出的数字进行\(+,-,x\)运算(所有运算符号至少出现一次),问你一共能得到多少个 ...

  7. 2019 ICPC Asia Taipei-Hsinchu Regional Problem J Automatic Control Machine (DFS,bitset)

    题意:给你\(m\)个长度为\(n\)的二进制数,求最少选多少个使它们\(|\)运算后所有位置均为\(1\),如果不满足条件,则输出\(-1\). 题解:这题\(n\)的范围很大,所以我们先用\(st ...

  8. 2019 ICPC Asia Taipei-Hsinchu Regional Problem K Length of Bundle Rope (贪心,优先队列)

    题意:有\(n\)堆物品,每次可以将两堆捆成一堆,新堆长度等于两个之和,每次消耗两个堆长度之和的长度,求最小消耗使所有物品捆成一堆. 题解:贪心的话,每次选两个长度最小的来捆,这样的消耗一定是最小的, ...

  9. 2017 ACM ICPC Asia Regional - Daejeon

    2017 ACM ICPC Asia Regional - Daejeon Problem A Broadcast Stations 题目描述:给出一棵树,每一个点有一个辐射距离\(p_i\)(待确定 ...

随机推荐

  1. mysqlpump 和 mysql_config_editor测试

    The mysql_config_editor utility enables you to store authentication credentials in an obfuscated log ...

  2. Linux 修改时区

    CentOS 7修改方式如下: # lsb_release -a  --查看系统版本-CentOS Linux release 7.6 # timedatectl     --查看当前系统时区# ls ...

  3. PowerShe 消息提示框测试

    1. 使用powerShell 弹出一个简单的消息框,代码如下,创建test.ps1脚本文件. $ConfirmPreference = 'None' $ws = New-Object -ComObj ...

  4. html : 九宫格(响应式)

    talk is cheap, show you the code : <!DOCTYPE html> <html> <head> <title>html ...

  5. Unity应用架构设计(3)——构建View和ViewModel的生命周期

    对于一个View而言,本质上是一个MonoBehaviour.它本身就具备生命周期这个概念,比如,Awake,Start,Update,OnDestory等.这些是非常好的方法,可以让开发者在各个阶段 ...

  6. 【Vegas原创】VirtualBox扩容、分割的整体方案

    背景:在低压i7上跑vmware,卡顿无极限,决定转战virtual Box. 但是VirtualBox最讨厌的一点,就是vdi文件无法分割,平时习惯备份的我,百度网盘最大也就20G的上传.咋整? v ...

  7. 为Sublime Text 设置全局启动快捷键

    为Sublime Text创建快捷方式.找到Sublime Text安装目录中的“sublime_text.exe”文件,然后右击创建快捷方式,如下图:  为Sublime Tex设置全局快捷键.将上 ...

  8. ShiftRows方法简介

    ShiftRows 是HSSFSheet工作薄的方法 ShiftRows(int startRow,int endRow,int n)参数介绍:startRow:开始行endRow:末尾行n:移动n行 ...

  9. hdoj:2070

    Fibbonacci Number Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  10. 如何设计一款优秀的短视频 SDK

    2017 年,短视频成为了创业的新风口,各种短视频 App 如雨后春笋般先后上线,视频越来越像文字.图片一样,成为每一个 App 不可或缺的一部分. 1. 包体一定要尽可能小 如何做到尽可能的减小 S ...