[Puente azul de la Copa] [algoritmo mejora VIP] cola a buscar el problema del agua (codiciosos)

Descripción sujeto
ha puesto en cola a r n derivaciones individuales en busca de agua, llenaron cubetas de tiempo t1, t2 ............ TN es un entero y cada uno no son iguales, debería ser la forma de organizar su tiempo de ir a buscar agua para hacerlos un coste total de mínimo?

Tamaño de los datos y las convenciones
que 80% de los datos para asegurar que n <= 10

Introduzca
la primera fila n, r (n <= 500 , r <= 75)
la segunda n saque de comportamiento individual tiempo transcurrido Ti (Ti <= 100);
salida de
la menos tiempo
de entrada de muestra
. 3 2
1 2. 3.
Borrador Ejemplo de salida
7
de ideas: el problema es encontrar el tiempo que tarda un mínimo de tiempo igual al tiempo de la recepción de agua de espera +. tiempo de acceso al agua es fija, se requiere un mínimo de tiempo pasado, sólo para minimizar el tiempo de espera en él, de modo que los cambios en un blog sobre el tema para dibujar problema del agua
es el código de la siguiente manera:

#include<bits/stdc++.h>
#define ll long long
using namespace std;

const int maxx=1e3+100;
int a[maxx];
vector<int> p[maxx];
int n,m;

int main()
{
	scanf("%d%d",&n,&m);
	ll Sum=0;
	for(int i=1;i<=n;i++) scanf("%d",&a[i]),Sum+=a[i];
	sort(a+1,a+1+n);
	int tx=0;
	for(int i=1;i<=n;i++)
	{
		p[tx].push_back(a[i]);
		tx=(tx+1)%m;
	}
	ll ans=0;
	for(int i=0;i<m;i++)
	{
		if(p[i].size())
		{
			ll sum=0;
			for(int j=0;j<p[i].size()-1;j++)
			{
				sum+=p[i][j];
				ans+=sum;
			}
		}
	}
	cout<<ans+Sum<<endl;
	return 0;
}

Una simple suma se ha convertido en un tema que les plazca.
Para abastecerse de combustible ah, ( O ) / ~

Publicados 529 artículos originales · ganado elogios 27 · Vistas a 40000 +

Supongo que te gusta

Origin blog.csdn.net/starlet_kiss/article/details/104902497
Recomendado
Clasificación