zoukankan      html  css  js  c++  java
  • Codeforces 1256B Minimize the Permutation

    思路:

    贪心算法,每次找能移动的最小的数字往前移

    代码:

    #include<bits/stdc++.h>
    using namespace std;
    typedef pair<int,int> p;
    typedef long long ll;
    #define isOp(x,y) ((x^y)<0)
    #define m_p(a,b) make_pair(a,b)
    #define p_b(a) push_back(a)
    #define rp(i,n) for(int i=0;i<n;i++)
    #define rpn(i,n) for(int i=1;i<=n;i++)
    #define l_b(a,n,x) lower_bound(a,a+n,x)-a
    #define u_b(a,n,x) upper_bound(a,a+n,x)-a
    const int MAX_N=105;
    bool op[MAX_N];//是否移动过 
    int arr[MAX_N];
    int main(){
    	int q;
    	cin>>q;
    	rp(i,q){
    		int n;
    		cin>>n;
    		memset(arr,0,sizeof(arr));
    		memset(op,false,sizeof(op));
    		rp(j,n) cin>>arr[j];
    		rpn(j,n-1){
    			int pos=0;
    			while(arr[pos]!=j) pos++;
    			while(pos&&!op[pos-1]){
    				if(arr[pos-1]<arr[pos]) break;
    				swap(arr[pos],arr[pos-1]);
    				op[pos-1]=true;
    				pos--;
    			}
    		}
    		cout<<arr[0];
    		for(int i=1;i<n;i++) cout<<' '<<arr[i];
    		putchar('
    ');
    	}
    	return 0;
    }
    
  • 相关阅读:
    Promise/Deferred
    理解RESTful架构
    XSS跨站脚本攻击
    crsf 跨站请求伪造
    街头生意
    什么是开光
    影响力
    linux上安装rar解压软件
    sip协议音视频性能测试
    解决关键SSL安全问题和漏洞
  • 原文地址:https://www.cnblogs.com/yuhan-blog/p/12308904.html
Copyright © 2011-2022 走看看