Kth decimal

Límite de tiempo: C / C ++ 3 segundos, otros idiomas 6 segundos
Límite de espacio: C / C ++ 262144K, otros idiomas 524288K
64bit IO Formato:% lld
Descripción del título
Le da una secuencia de longitud n, encuentre el número del kth decimal en la secuencia.
Descripción de entrada:
varios grupos de entrada, lea un número entero T en la primera línea para indicar que hay T grupos de datos.
Cada grupo de datos ocupa dos filas, la primera fila tiene dos números enteros n, k, lo que indica la longitud de la secuencia numérica y k.
La segunda línea tiene n números enteros separados por espacios.
Descripción de salida:
para cada grupo de datos, envíe su késimo decimal.
Separe cada grupo de datos con un espacio.

ingresar:

2
5 2
1 4 2 3 4
3 3
3 2 1

Producción:

2
3

Idea : La idea de la clasificación rápida. Suponiendo que el número de referencia medio de la clasificación n es a, estará en la posición exacta después de la clasificación. Si la posición k se devuelve directamente, si k está delante del punto de referencia, continúe clasificando en ly mid.
Está bien ir a verlo rápidamente.

//快排思想 
//快读 
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

int arr[5000005];

inline int read(){
    
    
    int x = 0, f = 1;
    char ch = getchar();
    while(ch < '0' || ch > '9'){
    
    
        if (ch == '-')
            f = -1;
        ch = getchar();
    }
    while(ch >= '0' && ch <= '9'){
    
    
        x = (x<<1) + (x<<3) + (ch^48);
        ch = getchar();
    }
    return x * f;
}

int  qs(int l,int r,int k)
{
    
    
	if(l==r)	return arr[l];
	int mid=(l+r)>>1;
	int x=arr[mid];
	int i=l,j=r;
	while(i<=j)
	{
    
    
		while(arr[i]<x) i++;
		while(arr[j]>x) j--;
		if(i<=j)
		{
    
    
			swap(arr[i],arr[j]);
			i++;j--;
		}
	}
		if(k<=j)	return qs(l,j,k);	
		else if(k>=i)	return qs(i,r,k);
		else return arr[k];
}
int main()
{
    
    
	int T;
	T=read();
	while(T--)
	{
    
    
	int n,k;
	n=read();k=read();
	int i;
	for(i=1;i<=n;i++)	arr[i]=read();
	cout<<qs(1,n,k)<<endl;;
	}
}

Supongo que te gusta

Origin blog.csdn.net/m0_53688600/article/details/113329270
Recomendado
Clasificación