POJ 1456 Supermercado resolver informe codiciosos

POJ 1456 Supermercado informe de resolución

Ideas resolución de problemas: la idea central es codicioso. Aquí sólo voy a resolver los problemas de la violencia. Los datos premio en fila descendente, premio si se colocó el mismo plazo al descender fila, tras el recorrido de la gran prioridad de premios para encontrar la posición (un día).
Otros métodos de procesamiento previo, simplemente codiciosos de los datos, con el código de retención.
Aquí Insertar imagen Descripción

#include<iostream>
#include<math.h>
#include<iomanip>
#include<algorithm>
#include<iostream>
#include<math.h>
#include<iomanip>
#include<algorithm>
#include<queue>
#include<cstring>
#include<string>
#include<map>
#include<stack>
#include<stdio.h>
#include<cstdio>
#include<stdlib.h>
#include<fstream>
#include<iomanip>
#pragma warning(disable:4996)
#define INF 0x3f3f3f3f
#define ll long long
#define PI acos(-1.0)
const int N = 1000010;
const int maxn = 1e9;
using namespace std;
struct node {
	int p, d;
}a[10005];
bool cmp(node a, node b)
{
	if (a.p > b.p)
		return true;
	else if (a.p == b.p)
		return a.d > b.d;
	return false;
}
int visit[10005];
int main()
{
	int n;
	while (scanf("%d", &n) != EOF)
	{
		memset(visit, 0, sizeof(visit));
		for (int i = 1; i <= n; i++)
		{
			scanf("%d%d", &a[i].p, &a[i].d);
		}
		sort(a + 1, a + n + 1, cmp);
		int sum = 0;
		for (int i = 1; i <= n; i++)
		{
			for (int j = a[i].d; j >= 1; j--)
			{
				if (visit[j] == 0)
				{
					visit[j] = 1;
					sum += a[i].p;
					break;
				}
			}
		}
		printf("%d\n", sum);
	}
}



Publicado 64 artículos originales · ganado elogios 0 · Vistas 1449

Supongo que te gusta

Origin blog.csdn.net/weixin_45566331/article/details/104711688
Recomendado
Clasificación