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

洛谷 P1338 末日的传说 解题报告相关推荐

  1. 洛谷p1338末日的传说(思维好题,数学)

    题目链接:https://www.luogu.org/problemnew/show/P1338 题目暴力全排列是肯定不行的. 比较难想啊,关键抓住字典序小也就是小的数尽量往前排,找剩余的逆序对数! ...

  2. 【洛谷】P4147 玉蟾宫 解题报告

    [洛谷]P4147 玉蟾宫 解题报告 题目背景 有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地. 题目描述 这片土地被分成N* ...

  3. 洛谷 P4883 mzf的考验 解题报告

    P4883 mzf的考验 题目背景 \(mzf\)立志要成为一个豪杰,当然,他也是一个\(OIer\). 他希望自己除了会\(OI\)之外还会各种东西,比如心理学.吉他.把妹等等. 为了让自己有更大的 ...

  4. 洛谷 P3539 [POI2012]ROZ-Fibonacci Representation 解题报告

    P3539 [POI2012]ROZ-Fibonacci Representation 题意:给一个数,问最少可以用几个斐波那契数加加减减凑出来 多组数据10 数据范围1e17 第一次瞬间yy出做法, ...

  5. 「洛谷P1343」地震逃生 解题报告

    P1343 地震逃生 题目描述 汶川地震发生时,四川XX中学正在上课,一看地震发生,老师们立刻带领x名学生逃跑,整个学校可以抽象地看成一个有向图,图中有n个点,m条边.1号点为教室,n号点为安全地带, ...

  6. 洛谷 P4284 [SHOI2014]概率充电器 解题报告

    P4284 [SHOI2014]概率充电器 题目描述 著名的电子产品品牌SHOI 刚刚发布了引领世界潮流的下一代电子产品-- 概率充电器: "采用全新纳米级加工技术,实现元件与导线能否通电完 ...

  7. 洛谷 [SDOI2015]约数个数和 解题报告

    [SDOI2015]约数个数和 题目描述 设\(d(x)\)为\(x\)的约数个数,给定\(N,M\),求$ \sum\limits^N_{i=1}\sum\limits^M_{j=1}d(ij)$ ...

  8. 洛谷 CF1043F Make It One 解题报告

    CF1043F Make It One 题意 从一堆数中选择最少的数,使它们的\(\gcd=1\) 输入输出格式 输入格式 第一行:一个正整数\(n\). 第二行:\(n\)个正整数,给出了这个数列. ...

  9. 洛谷 P3521 [POI2011]ROT-Tree Rotations 解题报告

    P3521 [POI2011]ROT-Tree Rotations 题意:递归给出给一棵\(n(1≤n≤200000)\)个叶子的二叉树,可以交换每个点的左右子树,要求前序遍历叶子的逆序对最少. 大体 ...

  10. 洛谷 P2324 [SCOI2005]骑士精神 解题报告

    P2324 [SCOI2005]骑士精神 题目描述 输入输出格式 输入格式: 第一行有一个正整数T(T<=10),表示一共有N组数据.接下来有T个5×5的矩阵,0表示白色骑士,1表示黑色骑士,* ...

最新文章

  1. tensflow中加载 fashion_mnist 数据集时
  2. Canvas绘制星球轨迹移动
  3. 模板:无旋treap
  4. OFDM技术及其应用
  5. dfs Codeforces Round #356 (Div. 2) D
  6. 不要轻易在数据库(尤其是线上数据库)执行,update、delete数据 !!!
  7. Linux系统下配置JDK环境变量
  8. 国赛培训——最优化智能算法——模拟退火
  9. 微信个性化菜单 java_微信公众平台开发(109) 个性化菜单
  10. 无线安全测试方法_解决无线安全性的5种有效方法
  11. iter()——迭代器
  12. 齐商银行计算机岗面试题,2018齐商银行社会招聘笔试(真题笔经)
  13. 视频文件损坏无法播放怎么修复?
  14. 华为HCIA鲲鹏生态体系介绍
  15. 深入理解GO语言:GC原理及源码分析
  16. QPBOC快速借贷记流程(2)
  17. 计算机软件与理论 算法,几种几何约束求解算法的分析-计算机软件与理论专业论文.docx...
  18. 【论文阅读】Compact and Malicious Private Set Intersection for Small Sets
  19. 2020T电梯修理模拟考试题及T电梯修理考试软件
  20. 基于LSTM算法的风电功率区间预测【含源代码】

热门文章

  1. vb远程访问dde服务器,做wincc与VB的dde连接一定要用ddeserver吗?
  2. win7搭建nas存储服务器_FreeNas 0.7.1:普通电脑变成网络存储服务器
  3. 如何使用Internet Download Manager批量下载音乐素材?
  4. python 批量下载视频_Python一键批量下载抖音无水印视频
  5. 回想那些年我抛弃的技术
  6. Mysql-04-DQL-基础查询-条件查询-模糊查询-UNION和UNION ALL-排序-数量限制-分组查询-子查询
  7. 数据结构练习题――中序遍历二叉树
  8. matlab进行预测误差过大,神经网络预测误差太大怎么办,如何看预测结果
  9. 误差的基本性质与处理matlab实验,基于matlab的误差数据处理实验报告.doc
  10. 语音识别中的鸡尾酒会问题