Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
Rade Forumaš(ica)

Pridružen/a: 05. 06. 2005. (11:43:44) Postovi: (2)16
|
|
[Vrh] |
|
ahri Forumaš(ica)


Pridružen/a: 19. 11. 2003. (23:16:07) Postovi: (193)16
|
|
[Vrh] |
|
ahri Forumaš(ica)


Pridružen/a: 19. 11. 2003. (23:16:07) Postovi: (193)16
|
|
[Vrh] |
|
ahri Forumaš(ica)


Pridružen/a: 19. 11. 2003. (23:16:07) Postovi: (193)16
|
Postano: 13:45 ned, 5. 6. 2005 Naslov: |
|
|
ako ce ti trebat:
[code:1]
#include <algorithm>
#include <iostream>
#include <vector>
#include <cstdio>
using namespace std;
#define sz(X) ((signed)(X).size())
#define junik(X) {sort( (X).begin(), (X).end() ); (X).erase( unique( (X).begin(), (X).end() ), (X).end() ); }
vector<int> lova;
vector<vector<int> > nacini;
int main () {
int i, x, n, m, j, k;
FILE *f=fopen("money.in", "r");
fscanf(f, "%d %d", &n, &m); /* broj novcica, koliko treba isplatit */
for (i=0;i<n;i++) { /* novcici */
fscanf(f, "%d", &x);
lova.push_back(x);
}
nacini.resize(m+1);
for (i=0;i<m+1;i++) {
nacini[i].resize(n);
fill(nacini[i].begin(), nacini[i].end(), 0);
}
junik(lova);
for (i=0;i<n;i++) nacini[0][i]=1;
for (i=1;i<=m;i++) {
for (j=0;j<n;j++)
if (lova[j]<=i) {
for (k=0;k<=j;k++)
nacini[i][j]+=nacini[i-lova[j]][k];
}
}
int sum=0;
for (i=0;i<n;i++) {
cout << "sa najvecom od " << lova[i] << " na " << nacini[m][i]<< " nacina!" << endl;
sum+=nacini[m][i];
}
printf("%d\n", sum);
fclose(f);
return 0;
}
[/code:1]
ako ce ti trebat:
Kod: |
#include <algorithm>
#include <iostream>
#include <vector>
#include <cstdio>
using namespace std;
#define sz(X) ((signed)(X).size())
#define junik(X) {sort( (X).begin(), (X).end() ); (X).erase( unique( (X).begin(), (X).end() ), (X).end() ); }
vector<int> lova;
vector<vector<int> > nacini;
int main () {
int i, x, n, m, j, k;
FILE *f=fopen("money.in", "r");
fscanf(f, "%d %d", &n, &m); /* broj novcica, koliko treba isplatit */
for (i=0;i<n;i++) { /* novcici */
fscanf(f, "%d", &x);
lova.push_back(x);
}
nacini.resize(m+1);
for (i=0;i<m+1;i++) {
nacini[i].resize(n);
fill(nacini[i].begin(), nacini[i].end(), 0);
}
junik(lova);
for (i=0;i<n;i++) nacini[0][i]=1;
for (i=1;i<=m;i++) {
for (j=0;j<n;j++)
if (lova[j]<=i) {
for (k=0;k<=j;k++)
nacini[i][j]+=nacini[i-lova[j]][k];
}
}
int sum=0;
for (i=0;i<n;i++) {
cout << "sa najvecom od " << lova[i] << " na " << nacini[m][i]<< " nacina!" << endl;
sum+=nacini[m][i];
}
printf("%d\n", sum);
fclose(f);
return 0;
}
|
_________________ 
|
|
[Vrh] |
|
divERgenT Forumaš(ica)


Pridružen/a: 04. 03. 2004. (17:41:15) Postovi: (4B)16
Lokacija: Tu negdje
|
Postano: 4:51 pon, 6. 6. 2005 Naslov: |
|
|
za one koji neznaju ovo gore je dinamicko programiranje cija je bit nesto ogromno bezobrazno i rekurzivno zamjenit s vektorom i dvije for petlje, i varijacijom na temu, a nema ga smisla raspisivat po papiru,
jel ima neko matematickije rjesenje, nesto zasto netreba masina koja pogoni C-nesto( mislim i netreba al valjda ima neki drugi nacin di ih necu direktno prebrojavat, 89 je min 20min posla)
za one koji neznaju ovo gore je dinamicko programiranje cija je bit nesto ogromno bezobrazno i rekurzivno zamjenit s vektorom i dvije for petlje, i varijacijom na temu, a nema ga smisla raspisivat po papiru,
jel ima neko matematickije rjesenje, nesto zasto netreba masina koja pogoni C-nesto( mislim i netreba al valjda ima neki drugi nacin di ih necu direktno prebrojavat, 89 je min 20min posla)
|
|
[Vrh] |
|
krcko Forumaš nagrađen za životno djelo


Pridružen/a: 07. 10. 2002. (15:57:59) Postovi: (18B3)16
|
|
[Vrh] |
|
Rade Forumaš(ica)

Pridružen/a: 05. 06. 2005. (11:43:44) Postovi: (2)16
|
|
[Vrh] |
|
ahri Forumaš(ica)


Pridružen/a: 19. 11. 2003. (23:16:07) Postovi: (193)16
|
|
[Vrh] |
|
|