Cómo resolver este problema: http://www.spoj.com/problems/RENT/

La solución más simple: –
Complejidad del tiempo: O (n * n).
Complejidad espacial: O (n).
La solución es espacio optimizado.

/ * Enviado por: – Waqas Hamid * /
/ * Codechef Nick: principiante007 * /
/ * Leetcode Nick: beginner007 * /
/ * Nick del codificador superior: principiante007 * /
/ * Codeforces Nick: principiante7 * /

#include
#define LL long long int
#define s (a) scanf (“% d”, y a)
#define sl (a) scanf (“% lld”, & a)
#define ss (a) scanf (“% s”, a)
#define w (t) while (t–)
#define f (i, n) para (i = 0; i <n; i ++)
#define fd (i, n) para (i = n-1; i> = 0; i–)
#define p (a) printf (“% d”, a)
#define pl (a) printf (“% lld”, a)
#define ps (a) printf (“% s”, a)
#define pc (a) printf (“% c”, a)
#define ent printf (“\ n”)
#define mod 1000000007
#define PI 3.14159265
#define gs getline (cin, s)
#define pb push_back
#define mp make_pair
#define INF 1e18

usando el espacio de nombres estándar;

trabajo de estructura
{
LL inicio, fin, beneficio;
};

LL compf (trabajo a, trabajo b)
{
volver a.finish <b.finish;
}

trabajo arr [1000005];
LL dp [1000005];
int main ()
{
LL n, i, j, t;
sl (t);
mientras que (t–)
{
sl (n);
aleta)
{
sl (arr [i] .start);
sl (arr [i] .finish);
arr [i] .finish + = arr [i] .start;
sl (arr [i] .profit);
}
sort (arr, arr + n, compf);
aleta)
dp [i] = arr [i] .profit;
para (i = 1; i <n; i ++)
{
para (j = 0; j <i; j ++)
{
if (arr [j] .finish <= arr [i] .start)
dp [i] = max (dp [i], dp [j] + arr [i] .profit);
más
descanso;
}
}

LL mx = -INF;
aleta)
si (dp [i]> mx)
mx = dp [i];
cout << mx << endl;
}
}

More Interesting

Cómo diseñar algoritmos de aprendizaje automático desde cero

¿Cuál es un buen algoritmo de coincidencia para palabras mal escritas?

¿Son necesarios los algoritmos y las clases de estructura de datos para hacer una clase de desarrollo de aplicaciones móviles?

¿Cómo podemos decir que la búsqueda binaria es un algoritmo rápido?

¿Cuáles son algunas habilidades de programación, algoritmos o marcos que se ven muy bien pero que son muy simples?

Cómo explicar el algoritmo 'Tamiz de campo numérico' a un programador con antecedentes matemáticos limitados

1,000 participantes toman un examen que consta de 100 preguntas y 5 opciones por pregunta. ¿Cuál es el mejor enfoque (algoritmo) para encontrar todos los pares posibles de participantes con al menos un 80% de coincidencia en las opciones que eligieron?

¿Qué es una matriz?

¿Qué tipo de clasificación es esta?

Cómo convertir 8.426661309628124e + 22 a 84266613096281243382112 en Javascript

Cómo ordenar la lista en la columna como números y cadena, pero la cadena no se debe ordenar en Excel

¿Debo tomar un curso de estructura de datos y algoritmos antes de aprender cualquier lenguaje de programación? ¿Es importante entender la programación?

En programación de computadoras, ¿por qué es importante la clasificación? ¿Cuándo se utilizan los algoritmos de clasificación en la codificación real?

¿Es posible usar Dijkstra por dos costos?

Estoy tomando un curso en línea, Algorithms Part 1 de Sedgewick y Wayne en Coursera. Conozco bastante a Java, pero me llevó más de un día llegar a la mitad de la resolución de la primera tarea de programación. ¿Debería dejarlo? ¿Todos sienten lo mismo mientras aprenden sobre algoritmos?