Author |
Message |
|
^ А што ќе ти е тешко ако кликнеш 2 клика повеќе?
|
![](/jforum/templates/default/images/spacer.gif) |
|
Ова да не ти е вишок? 38ми ред.
readln;
|
![](/jforum/templates/default/images/spacer.gif) |
|
@ob1kenobi
А да почнуваме прво да ги полниме најмалите кутии? Така ќе бидеме сигурни за овој контра-тест пример.
|
![](/jforum/templates/default/images/spacer.gif) |
|
^ Разгледувавме во различни кутии сега. А инаку за со исти кутии го оставив кодот погоре.
|
![](/jforum/templates/default/images/spacer.gif) |
|
Ништо, лоша ми била идеата :Р
|
![](/jforum/templates/default/images/spacer.gif) |
|
http://www.cs.org.mk/index.php/natprevari/srednoob...egionalennatprevar/2-razno/122
|
![](/jforum/templates/default/images/spacer.gif) |
|
Razmisluvav na toa pa mi izleze deka mojata idea e greedy so dinamicko, eve kako ke odi:
Gi pominuvame site kutii i za sekoja kutija go pustame dinamickoto sto go postirav pogore, pa kje ja najdeme kutijata koja sme ja ispolnile najmnogu i gi briseme predmetite sto sme gi stavile, ja briseme kutijata i prodolzuvame istoto so ostanatite kutii.
|
![](/jforum/templates/default/images/spacer.gif) |
|
Еве го средив ова, мислам дека е точно, а изгледа може и уште да се упрости. N^2*G
|
![](/jforum/templates/default/images/spacer.gif) |
|
obi1kenobi wrote:Ова е integer multi-knapsack проблем и по дефиниција нема никакво друго решение освен брутфорс. Користи дфс и ќе биде во ред. EDIT: Дури сега видов дека сите кутии се со иста големина. Со тоа ограничување, постои динамичко решение.
Зошто да не работи? M^2*(М/2)*N сложеност. Поточно ќе го разделиш на М ранец-проблеми и ќе гледаш колку можеш повеќе предмети да ставиш во еден ранец, и потоа ранецот со најмногу ставени предмети ќе го тргнеш (бидејќи ништо неможе да се става во него веќе) и ќе ги извадиш предметите што си ги ставил во ранецот кој ти е најмногу пополнет.
|
![](/jforum/templates/default/images/spacer.gif) |
|
А пробај со вакво динамичко. Гледаш во која кутија можеш најмногу предмети да ставиш, па ги вадиш предметите што си ги искористил и продолжуваш за сите кутии, ако ти останале елементи испечати 0, ако не испечати 1. Ова е knapsack проблем како што гледам..
|
![](/jforum/templates/default/images/spacer.gif) |
|
Го поедноставив кодот и ја решив. Климент ако ти треба некоја помош кажи.
|
![](/jforum/templates/default/images/spacer.gif) |
|
Ау епа по се изгледа треба 2 пати да пуштам динамичко. Еднач само за множење и еднач само за одзимање. Така множењето ќе има предност.
|
![](/jforum/templates/default/images/spacer.gif) |
|
11*11+111+1+1+1+1+1+1+1+1+1
Ova vrakja pomalku od 36
|
![](/jforum/templates/default/images/spacer.gif) |
|
Еве како ти го средив за во стринг да ти го стави.
|
![](/jforum/templates/default/images/spacer.gif) |
|
filip_bujaroski wrote:
bedzo wrote:8 од интернационални е исто така многу лесна.
Aj daj mi hint nekoj za dinamickoto na taa?
Stvarno ne mi teknuva nishto od pocetok ![](http://mendo.mk/jforum/images/smilies/3b63d1616c5dfcf29f8a7a031aaa7cad.gif)
низа dp[n][2]
dp[i][0] ти означува ако го земеш и-тиот правоаголник вертикално
dp[i][1] ти означува ако го земеш хоризонтално
и ќе ги пополнуваш по тоа што ќе земеш некое од предходниот ред, за да го максимизираш резултатот со i правоаголници.
|
![](/jforum/templates/default/images/spacer.gif) |
|