Solución a Problemas de Programación Competitiva en C++: Algoritmos Greedy, DP y Grafos
Recopilación de soluciones optimizadas e implementadas en C++ para diversos ejercicios clásicos de programación competitiva, abarcando técnicas como ordenamiento voraz (greedy), programación dinámica (DP), recorridos en grafos (DFS y BFS) y teoría de números.
A - Shoemaker's Problem
Enfoque: Algoritmo voraz (greedy) mediante ordenación personalizada basada en la relación costo/beneficio entre la multa y el tiempo requerido.
#include <iostream>
#include <algorithm>
using namespace std;
int tiempo[1000];
int multa[1000];
int trab[1000];
bool comp(int a, int b) {
double res1 = (double)multa[a] / tiempo[a];
double res2 = (double)multa[b] / tiempo[b];
if (res1 == res2)
return a < b;
return res1 >...