洛谷 P1338 末日的传说 解题报告

news/2024/12/27 3:30:56/

P1338 末日的传说

题目描述

只要是参加jsoi活动的同学一定都听说过Hanoi塔的传说:三根柱子上的金片每天被移动一次,当所有的金片都被移完之后,世界末日也就随之降临了。

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

我们用1-N来表示日历的元素,第一天日历就是

1, 2, 3, … N

第二天,日历自动变为

1, 2, 3, … N, N-1

……每次它都生成一个以前未出现过的“最小”的排列——把它转为N+1进制后数的数值最小。

日子一天一天地过着。有一天,一位预言者出现了——他预言道,当这个日历到达某个上帝安排的时刻,这个世界就会崩溃……他还预言到,假如某一个日期的逆序达到一个值M的时候,世界末日就要降临。

什么是逆序?日历中的两个不同符号,假如排在前面的那个比排在后面的那个更大,就是一个逆序,一个日期的逆序总数达到M后,末日就要降临,人们都期待一个贤者,能够预见那一天,到底将在什么时候到来?

输入输出格式

输入格式:

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

输出格式:

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

说明

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

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

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

所有数据均有解。


神仙题,我大概玩了半个多小时才玩出来

首先我们发现没必要关系它动了多少次。

然后我们发现只要某\(k\)位移动时,它在最大逆序对数是\(k \times (k-1) /2\),且它在移动时是最后达成的(也就是说,达到最大逆序对数后的下一次移动就要下一位了)

继续玩发现如果逆序对数夹在某两位之间,一定会被右边一位的最大逆序对贡献(因为它先),然后我们根据超过的值给左边安排一个就行了


Code:

#include <cstdio>
int main()
{int n,m,pos,cnt=0;scanf("%d%d",&n,&m);pos=n;do{cnt+=n-pos;pos--;}while(cnt+n-pos<=m);for(int i=1;i<pos;i++) printf("%d ",i);if(cnt==m){if(pos) printf("%d ",pos);for(int i=pos+1;i<=n;i++) printf("%d ",n+pos+1-i);return 0;}int t=pos+(m-cnt);printf("%d ",t);int k=n;for(int i=pos+1;i<=n;i++,k--){if(k==t) k--;printf("%d ",k);}return 0;
}

2018.7.27

转载于:https://www.cnblogs.com/butterflydew/p/9375519.html


http://www.ppmy.cn/news/927077.html

相关文章

洛谷 P1338 末日的传说

题目链接&#xff1a;https://www.luogu.org/problemnew/show/P1338 题目描述 只要是参加jsoi活动的同学一定都听说过Hanoi塔的传说&#xff1a;三根柱子上的金片每天被移动一次&#xff0c;当所有的金片都被移完之后&#xff0c;世界末日也就随之降临了。 在古老东方的幻想乡&…

洛谷P1338(末日的传说)

题目链接&#xff1a; https://www.luogu.org/problemnew/show/P1338 转载自&#xff1a; https://www.luogu.org/blog/user11765/solution-p1338 题目描述 只要是参加jsoi活动的同学一定都听说过Hanoi塔的传说&#xff1a;三根柱子上的金片每天被移动一次&#xff0c;当所有的…

[洛谷P1338] 末日的传说

洛谷题目链接:末日的传说 题目描述 只要是参加jsoi活动的同学一定都听说过Hanoi塔的传说&#xff1a;三根柱子上的金片每天被移动一次&#xff0c;当所有的金片都被移完之后&#xff0c;世界末日也就随之降临了。 在古老东方的幻想乡&#xff0c;人们都采用一种奇特的方式记录日…

第一章 古代东方文明

学习世界历史是在不同民族之间建立理解、尊重和交流的最好的方式之一。&#xff08;美国历史学家杰里本特利&#xff09;第一章 古代东方文明1.1早期东方文明概述古代东方文明&#xff1a;美索不达米亚、埃及、中国、印度。早期文明的共同特点&#xff1a;1.都是在相互孤立的状…

洛谷P1338 末日的传说

题目描述 只要是参加jsoi活动的同学一定都听说过Hanoi塔的传说&#xff1a;三根柱子上的金片每天被移动一次&#xff0c;当所有的金片都被移完之后&#xff0c;世界末日也就随之降临了。 在古老东方的幻想乡&#xff0c;人们都采用一种奇特的方式记录日期&#xff1a;他们用一…

末日的传说 洛谷p1338

题目描述 只要是参加jsoi活动的同学一定都听说过Hanoi塔的传说&#xff1a;三根柱子上的金片每天被移动一次&#xff0c;当所有的金片都被移完之后&#xff0c;世界末日也就随之降临了。 在古老东方的幻想乡&#xff0c;人们都采用一种奇特的方式记录日期&#xff1a;他们用一些…

昔日“东方神童”逝世,4岁读完初中课程,17岁中科院硕博连读,网友:湖南华容的传说...

杨净 发自 凹非寺量子位 报道 | 公众号 QbitAI 他4岁读完初中&#xff0c;我4岁刚不尿裤子。 他8岁进入重点高中&#xff0c;我8岁刚学加减法。 他13岁考入大学&#xff0c;我13岁还和同学打架。 他17岁硕博连读&#xff0c;我17岁忙着早恋。 …… 最近&#xff0c;天涯论坛上一…

luogu P1338 末日的传说

https://www.luogu.org/problem/P1338 题目描述 只要是参加jsoi活动的同学一定都听说过Hanoi塔的传说&#xff1a;三根柱子上的金片每天被移动一次&#xff0c;当所有的金片都被移完之后&#xff0c;世界末日也就随之降临了。 在古老东方的幻想乡&#xff0c;人们都采用一种…