题目链接:https://www.luogu.org/problemnew/show/P1338

题目暴力全排列是肯定不行的。

比较难想啊,关键抓住字典序小也就是小的数尽量往前排,找剩余的逆序对数!

思考逆序对数需要用到数学排列组合的知识,长度为n的序列最多有n(n-1)/2个逆序对,组合数知识一算就知道。

还需要long long才过= =

 1 #include <iostream>
 2 using namespace std;
 3 typedef long long ll;
 4 const int maxn=1e5+5;
 5 ll a[maxn];
 6 ll n,m;
 7
 8 int main()
 9 {
10     ios::sync_with_stdio(false); cin.tie(0);
11
12     cin>>n>>m;
13
14     ll last=n,first=1;
15     for(int i=1;i<=n;i++)
16     {
17         int t=(n-i)*(n-i-1)/2;//长度为n的序列最多有这么多对
18
19         if(t>=m) a[first++]=i;//放开头
20         else
21         {
22             a[last--]=i;
23             m=m-(last-first+1);//放最后
24         }
25     }
26
27     for(int i=1;i<=n-1;i++) cout<<a[i]<<' ';
28     cout<<a[n]<<endl;
29
30     return 0;
31 }

完。

转载于:https://www.cnblogs.com/redblackk/p/9940374.html

洛谷p1338末日的传说(思维好题,数学)相关推荐

  1. #模拟#洛谷 1338 末日的传说

    题目 就是求 1 ∼ n 1\sim n 1∼n排列逆序对总数为 m m m,字典序最小 分析 一开始最大逆序对总数为 n ∗ ( n − 1 ) / 2 n*(n-1)/2 n∗(n−1)/2 ( ...

  2. 洛谷P1119 灾后重建 图论 脑洞题

    洛谷P1119 灾后重建 图论   脑洞题   floyd    floyd中 k 的意义 通过前 k 个点 作为中间的节点 更新 i 到 j 的最短路 也就是 只经过前 k 个点 的最短路 帮助理解 ...

  3. 洛谷 P1196 银河英雄传说

    题目描述 公元五八○一年,地球居民迁移至金牛座α第二行星,在那里发表银河联邦 创立宣言,同年改元为宇宙历元年,并开始向银河系深处拓展. 宇宙历七九九年,银河系的两大军事集团在巴米利恩星域爆发战争.泰山 ...

  4. 洛谷入门1【顺序结构】题单题解

    目录 超级玛丽 字母转换 数字反转 再分肥皂水 小鱼的游泳时间 小学数学N合1 三角形面积 苹果和虫子 对角线 上学迟到 [入门1]顺序结构 - 题单 - 洛谷 | 计算机科学教育新生态 (luogu ...

  5. 洛谷OJ U552 守墓人 线段树模板题

    题目描述 Description 在一个荒凉的墓地上 有一个令人尊敬的守墓人, 他看守的墓地从来 没有被盗过, 所以人们很放心的把自己的先人的墓 安顿在他那 守墓人能看好这片墓地是必然而不是偶然... ...

  6. P1338 末日的传说

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

  7. 洛谷1852 BZOJ2144 跳跳棋 思维题

    题目链接 题意: 坐标轴上告诉你三个互不相同的位置作为三个棋子的起点,再告诉你三个不同的位置作为三个棋子的终点,每次操作可以让一个棋子以另一个棋子为轴跳到对称位置,并且只能跳过一个棋子,问你是否能最终 ...

  8. 洛谷P1196 银河英雄传说

    题目大意: 一些战舰,初始时每个都在自己编号对应的队列中,现在有两个操作 : M a b:把a战舰所在的队列顺序不变的接到b战舰所在队列尾部 C a b:询问a b在同一个队列之间的距离 如果a b不 ...

  9. 洛谷P1110 报表统计 multiset stl好题

    题目链接 一开始自己想的是multiset维护顺序结构,然后查找所有的值差最小时候找加入的当前点的前驱以及后继,然后查找相邻两个的就用线段树维护一个差最小值~,但是后来发现是全局的,直接再开一个mul ...

最新文章

  1. 如何查看一个命令是否被修改过
  2. python免费试听-Python
  3. php docker开发环境,使用Docker的PHP开发环境
  4. shell 做加法运算_C语言探索之旅 | 第一部分第七课:运算那点事
  5. std::thread 不 join
  6. 网络传输之TCP/IP协议族
  7. [前台]---js+jquery校验姓名,手机号,身份证号
  8. 贪吃蛇的编程python_python实现贪吃蛇游戏
  9. CSS li 一半左浮一半右浮
  10. Linux父进程如何发信号给子进程,在父进程和子进程之间发送信号
  11. 【公众号系列】站在烦恼里仰望幸福
  12. 百度云html提取码,百度网盘提取码怎么设置?百度云设置提取码的操作方法
  13. 共享经济-共享汽车市场调研报告
  14. 查看电脑ip地址、查看手机ip地址、根据域名查看ip地址
  15. iPhone 日历事件自动消失
  16. CorelDRAW2022订阅版本最新更新内容
  17. 内存不能为read或written的解决方案
  18. APISpace 预热开启
  19. JDK软件安装+环境变量配置图文详解(Win10环境)
  20. LiteOS通信模组教程05-LiteOS的SAL及socket编程实例

热门文章

  1. 论高校计算机信息管理能力的提升,论高校计算机信息管理能力的提升
  2. nginx main user
  3. class matplotlib.markers.MarkerStyle(marker=None, fillstyle=None)
  4. Pandas 文本数据方法 join( )
  5. 小宝机器人怎么开机_是我低估了网友的脑洞 扫地机器人充电“事故现场”
  6. c语言数组处理实验报告心得体会,C语言实验报告总结计划数组.doc
  7. vSAN 6.7培训_第1章-Virtual SAN各版本功能介绍
  8. 通过Server 2019中的组策略部署桌面墙纸 详解组策略环回处理
  9. 银行核心系统之应用集成
  10. Tomcat学习总结(4)——基于Tomcat7、Java、WebSocket的服务器推送聊天室