P1963 [NOI2009]变换序列

    • 468通过
    • 1K提交
  • 题目提供者 洛谷OnlineJudge
  • 评测方式 云端评测
  • 标签 二分图 匈牙利算法 NOI系列 2009
  • 难度 省选/NOI-
  • 时空限制 1000ms / 128MB

题解

  • 提示:收藏到任务计划后,可在首页查看。
  • 最新讨论 显示

    推荐的相关题目 显示

    题目描述

    对于$N$个整数$0, 1, \cdots, N-1$,一个变换序列$T$可以将$i$变成$T_i$,其中 $T_i \in \{ 0,1,\cdots, N-1\}$ 且 $\bigcup_{i=0}^{N-1} \{T_i\} = \{0,1,\cdots , N-1\}$。 ,$\forall x,y \in \{0,1,\cdots , N-1\}$,定义x和y之间的距离$D(x,y)=min\{|x-y|,N-|x-y|\}$ 。给定每个$i$和$T_i$之间的距离$D(i,T_i)$,你需要求出一个满足要求的变换序列T。如果有多个满足条件的序列,输出其中字典序最小的一个。

    说明:对于两个变换序列$S$和$T$,如果存在$p<N$,满足对于$i=0,1,\cdots p-1$,$S_i=T_i$且$S_p<T_p$,我们称$S$比$T$字典序小。

    输入输出格式

    输入格式:

    第一行包含一个整数$N$,表示序列的长度。接下来的一行包含$N$个整数$D_i$,其中$D_i$表示$i$和$T_i$之间的距离。

    输出格式:

    如果至少存在一个满足要求的变换序列$T$,则输出文件中包含一行$N$个整数,表示你计算得到的字典序最小的$T$;否则输出No Answer(不含引号)。注意:输出文件中相邻两个数之间用一个空格分开,行末不包含多余空格。

    输入输出样例

    输入样例#1: 复制
    5
    1 1 2 2 1
    
    输出样例#1: 复制
    1 2 4 0 3

    说明

    对于30%的数据,满足:N<=50;

    对于60%的数据,满足:N<=500;

    对于100%的数据,满足:N<=10000。

    提示
    标程仅供做题后或实在无思路时参考。
    请自觉、自律地使用该功能并请对自己的学习负责。
    如果发现恶意抄袭标程,将按照I类违反进行处理。