H - Shifting Sort
思路:
开两个数组,其中一个没有排序的,另一个是未排序的,
首先把第一个最小值元素放到最前面,然后只关注怎么把剩下元素的最小值移动到前面,不关注其他元素发生了什么变化。
选择排序依次把最小值放到前面,然后记录两个位置,一个是最小值的位置即在sort后的位置,一个是sort前原数组的位置,然后输出每次需要的前者和后者,然后呢,得到两者间的距离,就是后者向前者移动的距离。
代码:
#include <iostream>
#include<algorithm>
using namespace std;
int main()
{int i,j,k,m,n,t;int ans[10001],a[10001];int r[10001],l[10001],cha[10001];for(i=0;i<10001;i++){ans[i]=0;a[i]=0;r[i]=0;cha[i]=0;l[i]=0;}scanf("%d",&t);while(t--){scanf("%d",&n);for(i=1;i<=n;i++){scanf("%d",&a[i]);ans[i]=a[i];}sort(ans+1,ans+1+n);int cnt = 0;for(i=1;i<n;i++){int flag=0;for(j=i;j<=n;j++){if(a[j]==ans[i]){for(k=j;k>i;k--){a[k]=a[k-1];}flag=j;break;}}if(flag!=i){cnt++;l[cnt]=i,r[cnt]=flag,cha[cnt]=flag-i;}}printf("%d\n",cnt);for(i=1;i<=cnt;i++){printf("%d %d %d\n",l[i],r[i],cha[i]);}}return 0;
}
H - Shifting Sort相关推荐
- 【最爱的暴力题】B. Shifting Sort
题目来源 Problem - 1579B - Codeforces 题干 解释 看到数组大小不超过50就非常开心 因为可以暴力法解决! 先将数组a传给数组b,再将它排序好 然后再是模拟,如果a[i]和 ...
- B. Shifting Sort (思维)
思路大家都能想到,代码不是很好写 // Problem: B. Shifting Sort // Contest: Codeforces - Codeforces Round #744 (Div. 3 ...
- Codeforces Round #744 (Div. 3) B. Shifting Sort
题目链接 一道模拟题,题意是给一个长度n的数组,用n次以下选定一个区域集体左移的操作把它排序成一个非递减的数组. 刚开始用冒泡写,结果下标和验重都出了问题,比赛直接寄了.之后换选择思路,还是在验重和不 ...
- Shifting Sort(选择排序)
题目链接:Problem - B - Codeforces 题意:给你n个数,让你执行交换,交换次数不多于n,使得原序列变为一个单调不递减的序列.交换规则见题目,注意交换次数的定义. 分析,n个数用选 ...
- H.Shifting
Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Submit Status Pr ...
- B. Shifting Sort(rotate函数旋转应用)
Problem - B - Codeforces rotate可以传入三个参数,将第二个参数到第三个参数的元素放到第一个参数前面 题意大体是给一个数列,然后通过选取区间进行旋转使得数列递增 AC代码: ...
- 排序只显示前5_Linux 文件大小统计与排序 du,df 和 sort!
不甩锅的码农 行胜于言,和锅锅一起成长. 01 du 与 df 作用与区别? Linux 最有用最常用的统计文件大小命令是什么?无疑就是 du 和 df 了. du(disk usage) du 能看 ...
- 指针:调用自定义排序函数sort,对输入的n个数进行从小到大输出。
Description 自定义函数sort(int *p, int n),功能是对n个数排序.在main函数中,调用它,对输入的任意个数排序. Input 多组测试数据,先输入n(n<100), ...
- C语言插入排序Insertion Sort算法(附完整源码)
插入排序Insertion Sort算法 插入排序Insertion Sort算法的完整源码(定义,实现,main函数测试) 插入排序Insertion Sort算法的完整源码(定义,实现,main函 ...
最新文章
- ::operator new、sgi stl alloc、dlmalloc测试结果
- 千万级在线推送系统架构解析
- 如何在Java中解析命令行参数?
- 2014/08/13 – Backbonejs
- linux redis php,Linux下编译redis和phpredis的方法
- 小论文期刊投稿相关整理资料
- loadrunner发送json_Loadrunner模拟JSON接口请求进行测试
- Eclipse GlassFish 5.1就在这里!
- CDH集群异常处理ERROR Failure due to stall on seeded torrent.、重装时hdfs提示目录已存在、CDH重启不正常
- 设置环境变量ANDROID_SDK_HOME有什么用?
- python pandas 排序_python – pandas:单独对每列进行排序
- 一步一步写算法(之通用算法的编写)
- 罗永浩出任“鲨纹科技”首席忽悠官;华为生产不含美国芯片的手机;PyCharm 2019.3 发布 | 极客头条...
- Duilib控件拖动改变大小
- 寻找百度图片搜索接口历程--one
- java中什么是实例化
- 中国移动盘古搜索开创全新服务模式
- 浏览器主页被hao123等篡改解决方法
- 【技巧】使用微信进行简单的拼接长图
- 2018年第九届C/C++ A组蓝桥杯省赛真题(python解法)