巨巨来袭
来源:互联网 发布:电视上的点播软件 编辑:程序博客网 时间:2024/04/30 04:33
题目描述:
Description
hcbbt巨巨,正宗GFS,深受万千学妹的爱慕,人们为了得到他的一张照片日思夜想,也没有个结果.如今,巨巨为了帮助无奈的霞姐,做出巨大牺牲.他出了一道思考题,凡是能够解出来的,可以获得巨巨的照片.
题意如下:有n个人,巨巨对这些人的身高进行编号,最 矮的为1,以此类推,最高的为n,我们保证每个人的身高都不一样,所以每个人的编号都是不一样的.现在打乱这n个人的顺序,问最少的移动次数使其编号从小 到大排序,移动的规则限定如下:每次只能把其中一个人放在第一个人的最前面,这样算一次操作.
Input
包含T组数据。每组数据第一行为一个整数n,代表有n个人
第二行是现在n个人的编号顺序(0<n<5000)
Output
每组数据输出一行,表示最小的移动次数使得序列从小到大排列。
Sample Input
241 2 3 441 3 2 4
Sample Output
02
解题思路:在整个数组中寻找数组中最大的数,s=1;在最大的数之前寻找整个数组里次大的数。如果不存在,结果为数组长度(n)-s,退出寻找;如果存在则s++,寻找次大数之前是否有第三大的数。以此类推。
代码如下:
#include<iostream>#include<string.h>#include<algorithm>using namespace std;int cmp(int a,int b){ return a<b;}int main(){ int num,n; int a[6000],b[6000]; cin>>num; while(num--) { int m=0,s=1; //m记录最大数位置 s记录不需要移动的次数 cin>>n; a[0]=0; for(int i=1; i<=n; i++) { cin>>a[i]; b[i]=a[i]; if(a[m]<a[i]) m=i; } sort(b+1,b+n,cmp); for(int i=m-1,j=n-1;i>0;i--) { if(a[i]==b[j]) { j--; s++; } } cout<<n-s<<endl; } return 0;}
1 0
- 巨巨来袭
- 166M"巨"作来袭 免商铺流量"双免"轻松hold住
- 病毒来袭!
- 五一来袭。。
- 地震来袭
- 地震来袭
- 新浪来袭
- 台风来袭
- 新手来袭
- 沙尘暴来袭
- C++来袭
- 红包来袭!!!
- 冷风来袭
- swoole来袭
- 重磅来袭
- 台风又来袭
- SQL Injection机器人来袭
- 课程设计来袭……
- 3620: 似乎在梦中见过的样子|Kmp+暴力
- 女程序员职业发展的特别之处
- [leetcode] 275. H-Index II 解题报告
- DE 31 Non-linear Autonomous Systems
- Python图像处理库PIL的ImagePath模块介绍
- 巨巨来袭
- 用户文章评论
- serialVersionUID 作用
- Spark Sort-Based Shuffle详解
- iOS UI设计---九宫格布局算法
- Tsinsen-A1100 竖式问题 (iomanip中setw()的使用)
- 3943: [Usaco2015 Feb]SuperBull|最大生成树
- socket与http的区别
- Javascript作用域和变量提升