Keresés


Toplista

Toplista
  • betöltés...

Magántanár kereső

Ha szívesen korrepetálnál, hozd létre magántanár profilodat itt.
Ha diák vagy és korrepetálásra van szükséged, akkor regisztrálj be és írd meg itt, hogy milyen tantárgyban!

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

187
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