比赛场次 | 545 |
---|---|
比赛名称 | 2022级数学专题练习赛4 |
比赛状态 | 已结束比赛成绩 |
开始时间 | 2023-01-02 19:00:00 |
结束时间 | 2023-01-02 22:20:00 |
开放分组 | 全部用户 |
注释介绍 | 以赛代练,2023走起~ |
题目名称 | 完全排序网络 |
---|---|
输入输出 | sortingnet.in/out |
时间限制 | 1000 ms (1 s) |
内存限制 | 256 MiB |
测试点数 | 10 简单对比 |
用户 | 结果 | 时间 | 内存 | 得分 |
---|---|---|---|---|
op_组撒头屯 | AAAAAATTWA | 2.032 s | 3.63 MiB | 70 |
排序网络是这样一个模型:
有 $n$ 条水平的导线,由上至下分别标号为 $1$ 至 $n$,导线与导线之间不相交。在任意两导线之间可以搭上“电桥”。每条导线的左端放置一数字,数字沿导线由左向右同步运行,当遇上一电桥时,比较电桥两端的两根导线上的数字,将其中较大的放到上面的导线上,而将较小的放到下面的导线上,然后继续运行,保证同一时刻最多只有一个电桥。(如图)
若一个 $n$ 行的排序网络共包含 $m$ 个电桥,对于左端输入的任意顺序的数列,都能在右端得到一个由大到小的数列,我们称这个排序网络是一个完全排序网络。
我们的程序需要做的,就是判断一个排序网络是否是一个完全排序网络。
第一行是一个整数 $N$,表示排序网络的行数;
第二行是一个整数 $M$,表示排序网络的电桥数;
接下来的 $M$ 行,每行有两个整数 $i,j$,表示导线 $i$ 和 $j$ 之间有一条电桥。
电桥按从左向右的顺序依次给出。
一行。若这个排序网络是完全排序网络,那么输出"$Yes!$",否则输出"$No!$"。
当然,你的输出中不包含引号。
6 15 1 2 2 3 3 4 4 5 5 6 1 2 2 3 3 4 4 5 1 2 2 3 3 4 1 2 2 3 1 2
Yes!
样例描述了一个等价于 $N = 6$ 的冒泡排序法的排序网络;
点击下载样例2
对于 $40\%$ 的数据,$N \leq 10,M \leq 100$;
对于 $100\%$ 的数据,$N \leq 100,M \leq 200000$。
$NOI1999$北京集训队训练题
杨江明,《论数学策略在信息学问题中的应用》,$IOI2000$国家集训队论文集