题目名称 2046. JSOI 末日传说
输入输出 legend.in/out
难度等级 ★★
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试数据 10
题目来源 GravatarSkyo 于2015-09-27加入
开放分组 全部用户
提交状态
分类标签
分享题解
通过:6, 提交:10, 通过率:60%
Gravatardevil 100 0.038 s 0.50 MiB C++
GravatarSkyo 100 0.047 s 0.50 MiB C++
Gravatar四季木哥 100 0.047 s 0.50 MiB C++
Gravatarwoca 100 0.048 s 0.50 MiB C++
Gravatarthomount 100 0.083 s 2.01 MiB C++
Gravatar胡嘉兴 100 0.124 s 0.50 MiB C++
Gravatar胡嘉兴 70 3.785 s 0.49 MiB C++
Gravatarthomount 50 0.088 s 2.01 MiB C++
Gravatarthomount 10 0.089 s 2.01 MiB C++
Gravatarthomount 10 0.093 s 2.01 MiB C++
关于 JSOI 末日传说 的近10条评论(全部评论)
练习赋值的好题
Gravatar四季木哥
2015-09-27 16:06 1楼

2046. JSOI 末日传说

★★   输入文件:legend.in   输出文件:legend.out   简单对比
时间限制:1 s   内存限制:256 MiB

【题目描述】

在古老的东方,人们都采用一种奇妙的方式记录日期:他们用一些特殊的符号来表示从1开始的连续整数,1表示最小而N表示最大。创世纪的第一天,日历就被赋予了生命,它自动的开始计数,就像排列在不断地增加。

我们用1——N来表示日历的元素,第一天的日历是:1,2,3,……N-1,N;第二天,日历自动变为1,2,3,……N,N-1,每次他都生成一个以前从未出现过的“最小”的排列——将它转为(N+1)进制后数的数值最小。

有一天,一个预言者出现了——虽然没人让他出现——他预言道,当这个日历到达某个上帝安排的时刻(……),这个世界就会崩溃……他还预言,假如一个某一个日子的逆序到达一个指定数值M时,世界末日将来临。

逆序是什么?日历中两个不同的符号,假如排在前面的那个比后面的那个大,就是一个逆序(不一定相邻)。人们期待一个贤者来预见那一天。

任务:输出1到n的全排列中,字典序最小的包含m个逆序对的排列。 (i, j)是一个逆序对当且仅当(i < j && a[i] > a[j])。

【输入格式】

只包含一行两个正整数,分别为N和M。

【输出格式】

输出一行,为世界末日的日期,每个数字间用一个空格隔开。

【样例输入】

5 4

【样例输出】

1 3 5 4 2

【数据规模】

对于10%的数据有N<=10。

对于40%的数据有N<=1000。

对于100%的数据有N<=50000。

所有数据均有解。