[Logo] Mendo Judge Discussion Board - Forums
  [Search] Search   [Recent Topics] Recent Topics   [Hottest Topics] Hottest Topics   [Members]  Member Listing   [Groups] Back to home page 
Messages posted by: ThePopivanov
Forum Index » Profile for ThePopivanov » Messages posted by ThePopivanov
Author Message
longhi wrote:
ThePopivanov wrote:Вчера на натпреварот кога ја решавав оваа падна на скоро сите тест примери освен на 3.
Денеска изменив нешто ситно сега на 23 поминува а само на 7 паѓа.


Ова е greedy решение и е доста логично, па ќе добие дел од поените (инаку, како што излезе, сите ќе имаа 0 на таа задача).
Но, оваа задача е најдобро да се решава со помош на динамичко програмирање.

Идејата е доста едноставна, ќе користиме матрица dp[c][n] која ќе ни памети во колку најмногу градови може да се направи митинг ако веќе сме разгледале [c] градови и имаме уште [n] средства на располагање.
Сега, ќе ги поминуваме градовите еден по еден и ќе ја пополнуваме матрицава (како и други слични задачи кои се решаваат на ваков начин) и истата ќе содржи некаков резултат.
Но, по кој редослед да ги поминуваме градовите? Од кога ќе ни текне дека единствениот начин да добиеме пари е од организацијата на митинг (инаку само трошиме), тогаш може да забележиме дека е најдобро да ги сортираме во опаѓачки редослед според R[x]. За се друго ќе се погрижи динамичкото програмирање. И тоа е решението.

(Постојат и други решенија за добивање на делумни поени, dfs, битмаски, итн)

Ама не разбирам оти не работи моето решение
Вчера на натпреварот кога ја решавав оваа падна на скоро сите тест примери освен на 3.
Денеска изменив нешто сега на 23 поминува а само на 7 паѓа.

MOI wrote:
ThePopivanov wrote:Средив имав некои мали грешки но ми надминува временски лимит :/

Многу BFS-а се тоа.
Ако ја прочиташ задачата уште еднаш, ќе видиш дека K <= 100, и всушност можеш да почнеш со BFS од тие позиции. Тоа е многу помал број од M*N.


Ја пишував од ново со BFS од цвеќињата ама па нејќе неможам да си ја најдам грешката :/

Средив имав некои мали грешки но ми надминува временски лимит :/

Ова ми е кодот не ми е јасно зошто не дава точна локација.
За првито тест пример ми дава 4, 4 а треба 1, 3.
Видов на 4, 4 (т.е 3, 3) наводнува 3 цвеќиња и на 1, 3 (т.е 0, 2) наводнува 3 цвеќиња. А направено ми е само ако најде нешто повеќе цвеќиња да смене локација бидејќи пишува ако има повеќе решенија да се испечати она најлево. Help

И твојата надминува временски лимит, ја средив со овој код работи без проблем имав проблем со иницијализацијата

#include <iostream>
#include <algorithm>
#include <vector>
#include <cmath>
using namespace std;

main()
{
int N;
cin >> N;
int A[N], zbir = 0;
for(int i = 0; i < N; i++)
{
cin >> A[i];
zbir += A[i];
}
int lz = 0, dz = 0, tr = 0;
for(int i = 0; i < N; i++)
{
if(i-1 >= 0) lz += A[i-1];
dz = zbir - A[i] - lz;

if(dz == lz)
{
tr = i+1;
break;
}
}
if(tr == 0) tr = -1;
cout << tr;
return 0;
}
Со мали измени сеа работи.

#include <iostream>
#include <algorithm>
#include <vector>
#include <cmath>
using namespace std;

main()
{
int N;
cin >> N;
int A[N], zbir = 0;
for(int i = 0; i < N; i++)
{
cin >> A[i];
zbir += A[i];
}
int lz = 0, dz = 0, tr = 0;
for(int i = 0; i < N; i++)
{
if(i-1 >= 0) lz += A[i-1];
dz = zbir - A[i] - lz;

if(dz == lz)
{
tr = i+1;
break;
}
}
if(tr == 0) tr = -1;
cout << tr;
return 0;
}
И јас иам таков код пишано ама не дозволува врменскиот лимит. Мојот код би требало да работи незнам оти прави проблем.


#include <iostream>
#include <algorithm>
#include <vector>
#include <cmath>
using namespace std;

main()
{
int N;
cin >> N;
int A[N], zbir = 0;
for(int i = 0; i < N; i++)
{
cin >> A[i];
zbir += A[i];
}
int lz = 0, dz = 0, tr;
for(int i = 0; i < N; i++)
{
lz += A[i-1];
dz = zbir - A[i] - lz;

if(dz == lz)
{
tr = i+1;
break;
}
}
if(tr == 0) tr = -1;
cout << tr;
return 0;
}

Ми дава точни резултати симнав еден тест случај што го покажува како грешка на мендо и проверив дава точен резултат.
Сигурни сте дека не ви е ставено погрешна дата за регионалниот натпревар? Пишува на 11 март а 11 март е недела, обично сабота беше O.o
Може некој пример
Здраво може некој да ми помогне околу овој вид на задачи? Барам на интернет но неможам да најдам :/
Еве задачи од овој вид.

http://mendo.mk/Task.do?id=704
http://mendo.mk/Task.do?id=629

И исто така задачата од регионалниот натпревар минатата година на која сеуште не го знам одговорот. http://mendo.mk/Task.do?id=614


Ова е мојот код. И го ставив на мендо.мк да проверам дали е точно. И на пример 7 се внесува 1 и нормално треба да се отпечати 0 оти тоа 1 ден ке се одработи во тек на тие 18 недели. И нели кажав кога го симнав инпут е 1 а излез 16.. која логика O.o
Problemot e vo toa sto kaj mene na DevC++ se kompajlira uspesno bez greska a na Mendo.mk kompajlerot go vagja ovoj eror:



Eve i kodot:




Што е грешка? Наместо да ја печати најблиската ја печати првата..
 
Forum Index » Profile for ThePopivanov » Messages posted by ThePopivanov
Go to:   
Powered by JForum 2.1.8 © JForum Team