Keresés

Keresendő kifejezés:

Toplista

Toplista
  • betöltés...

Segítség!

Ahhoz, hogy mások kérdéseit és válaszait megtekinthesd, nem kell beregisztrálnod, azonban saját kérdés kiírásához ez szükséges!

Hogyan oldható meg ez a mohó stratégiás programozás feladat? (C++)

57
A feladat szövege:


https://kepkuldes.com/image/UhSh30



Elakadtam a programozási feladatomban, melyet csatolva találhattok meg. Az első rész, az, hogy hány gép szükséges, sikerült. Viszont, a beosztás elkészítése, hogy melyik napon hányas gép végezze a munkát, az eddig nem, mégpedig az nem, hogy hogyan lehetne olyan naphoz, ahol korábbi gép még nem szerepel korábbi gépet beírni. Ebben szeretnék ötleteket kérni. A cout << G << endl; utáni rész ez.



Az eddigi kódom:


#include <iostream>

#include <cmath>


using namespace std;


const int MaxN = 10000;

const int MaxM = 100000;


struct munka

{

int s;

int n;

int g;

int h;

};


int main()

{

cerr << "Gepek" << endl;

/// deklaracio

int N;

int M;

double G;

int H[MaxM];

int m[MaxN] = {};

int t;

/// beolvasas

cerr << "N = ?: ";

cin >> N;

cerr << "M = ?: ";

cin >> M;

for (int i=0;i<M;i++)

{

cerr << i+1 << ". megrendeles hatarideje: ";

cin >> H;

}

/// Rendezes (hatarido szerint novekvoleg)

int s;

for (int i=0;i<M-1;i++)

{

for(int j=i+1;j<M;j++)

{

if (H > H[j])

{

s = H;

H = H[j];

H[j] = s;

}

}

}

/// Megoldas

for (int i=0;i<M;i++)

{

t = H;

m[t]++;

}

G = 0;

double msz = 0;

double gsz = 0;

for (int i=0;i<N;i++)

{

msz = msz + m;

gsz = ceil(msz / i);

if (gsz > G)

{

G = gsz;

}

}

cout << G << endl;

int nap = 0;

int gep = 1;

for (int i=0;i<M;i++)

{

if (nap < H[i])

{

nap++;

cout << nap << " " << gep << endl;

}

else

{

nap = 1;

gep++;

cout << nap << " " << gep << endl;

}

}

return 0;

}
Jelenleg 1 felhasználó nézi ezt a kérdést.
programozás, c++, mohó, stratégia
0
Felsőoktatás / Informatika

Válaszok

0