[ACM_模拟] ZJUT 1155 爱乐大街的门牌号 (规律 长为n的含k个逆序数的最小字典序)
Description
Input
Output
Sample Input
3
5 1
4 2
2 0
Sample Output
1 2 3 5 4
1 3 4 2
题目大意:给一个N个自然数(1-N),要求找出逆序对数为K的最小字典序排列的那一个排列方式
解题思路:想要最小字典序那么前面的数字就尽量少的向后面去,因此先计算出满足K个逆序数最少需要LMMN位数字(也就是后LMMN要调动) ②\又因为剩下的数字第一位要尽量小,所以剩下的LMNN-1个数必然倒序排列。③\又因为后LMMN-1个数倒序排列有NXN=(LMMN-1)*(LMMN-2)/2个逆序数,所以剩下数字的第一位的逆序数为K-NXN ④\所以可以确定剩下数字的排列方式。
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
int getLastMostMoveNum(int k){
return (int)ceil((1.0+sqrt(1.0+*k))/);
}
int getNumOfNiXu(int k){
return k*(k-)/;
}
int main(){
int T;cin>>T;
while(T--){
int N,K,i;
cin>>N>>K;
if(K==){//顺序输出即可
for(i=;i<N;i++)
cout<<i<<' ';
cout<<N<<'\n';
}else{//存在逆序对
int LMMN=getLastMostMoveNum(K);//计算后LMMN位要变化顺序
for(i=;i<=N-LMMN;i++)//输出前面不用调序的序列
cout<<i<<' ';
int Last[];//保存剩下的数字
for(int j=;i<=N;j++,i++)Last[j]=i;
int NXN=getNumOfNiXu(LMMN-);//计算LMMN-1个数完全逆序的逆序数NXN
//所以要用后LMMN位组成K个逆序数就要把Last[K-NXN]放到第一位,其他完全倒序
cout<<Last[K-NXN];
for(int j=LMMN-;j>=;j--)if(j!=K-NXN)cout<<' '<<Last[j];
cout<<'\n';
}
}return ;
}
[ACM_模拟] ZJUT 1155 爱乐大街的门牌号 (规律 长为n的含k个逆序数的最小字典序)的更多相关文章
- [ACM_模拟] ZJUT OJ 1139 七龙珠 (追及类问题,s-t图像,模拟)
Description 话说孙悟饭与小林正在与刚造访地球的赛亚人贝吉塔交战,因为连贝吉塔的手下纳巴的实力也远在他俩之上,由于差距悬殊,小林不得不设脱离战场,去寻找正在修炼中的悟空求救,而赛亚人一伙 ...
- [ACM_模拟] POJ1068 Parencodings (两种括号编码转化 规律 模拟)
Description Let S = s1 s2...s2n be a well-formed string of parentheses. S can be encoded in two diff ...
- [ACM_模拟][ACM_数学] LA 2995 Image Is Everything [由6个视图计算立方体最大体积]
Description Your new company is building a robot that can hold small lightweight objects. The robo ...
- [ACM_模拟] UVA 10881 Piotr's Ants[蚂蚁移动 数组映射 排序技巧]
"One thing is for certain: there is no stopping them;the ants will soon be here. And I, for one ...
- [ACM_模拟][ACM_暴力] Lazier Salesgirl [暴力 懒销售睡觉]
Description Kochiya Sanae is a lazy girl who makes and sells bread. She is an expert at bread making ...
- [ACM_模拟] ACM - Draw Something Cheat [n个长12的大写字母串,找出交集,按字母序输出]
Description Have you played Draw Something? It's currently one of the hottest social drawing games o ...
- [ACM_模拟] ZOJ 3713 [In 7-bit 特殊输出规则 7bits 16进制]
Very often, especially in programming contests, we treat a sequence of non-whitespace characters as ...
- [ACM_模拟] POJ 1094 Sorting It All Out (拓扑排序+Floyd算法 判断关系是否矛盾或统一)
Description An ascending sorted sequence of distinct values is one in which some form of a less-than ...
- [ACM_模拟] The Willy Memorial Program (poj 1073 ,联通水管注水模拟)
Description Willy the spider used to live in the chemistry laboratory of Dr. Petro. He used to wande ...
随机推荐
- exports 和 module.exports 的区别
https://cnodejs.org/topic/5231a630101e574521e45ef8 //一句话总结:exports是对module.exports的引用,require()返回的是 ...
- 关于64位windows2003 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0” 的问题
我了个去啊! 在自己机器上测试通过的excel导入功能在客户服务器上死活都不好用,查了半天后来发现客户服务器是64位的win2003!! try catch捕捉问题为:未在本地计算机上注册“Micro ...
- 天气api
http://php.weather.sina.com.cn/xml.php?city=%D6%D8%C7%EC&password=DJOYnieT8234jlsK&day=0 cit ...
- DIOCP之注册编码解码器与ClientContext
FTcpServer.registerCoderClass(TIOCPStreamDecoder, TIOCPStreamEncoder);//注册编码器与解码器 FTcpServer.registe ...
- Servlet 添加购物车
import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import java.util.It ...
- JSON.parse()和JSON.stringify()(转载)
parse用于从一个字符串中解析出json对象,如 var str = '{"name":"huangxiaojian","age":&qu ...
- HttpModule的一些初步认识
新建一个类 ValidaterHttpModuleEvents继承管道接口 IHttpModule,代码如下 public class ValidaterHttpModuleEvents:IHttpM ...
- mesos框架编译部署
mesos是什么呢? 一个分布式调度框架,让你编写代码时面对整个集群像面对一台机器那么简单.所有的运行,资源调度都可以由它来帮你搞掂. 1.mesos安装有两种方式: 1)参考官网的getstart, ...
- iOS项目中常用的第三方开源库
1.项目使用的第三方开源库 项目使用了CocoaPods(类似java中的maven)管理常用的第三方库,一些特殊的单独引用,下面介绍下比较好用的几个. (1)AFNetworking 目前比较推荐的 ...
- 加密算法—MD5、RSA、DES
最近因为要做一个加密的功能,简单了解了一下加密算法,现在比较常用的有三个加密算法MD5加密算法.RSA加密算法.DES加密算法. MD5加密算法 定义:MD5算法是将任意长度的“字 ...