Author |
Message |
|
Kingzy wrote:Може мала помош во врска со Средна Цифра ? Пробав со овај принцип но не работи
Во задачата (ако зборуваме за истата), се бара средната цифра во троцифрен број. На пример, во 123, средната цифра е 2 (прва е 1, втора/средна е 2, трета е 3).
Постојат два начини да се реши задачава. Ако работиш со цели броеви, можеш да го искористиш операторот / (делење со отфрлање на остаток) и да го поделиш K со 10, со што ќе се отфрли последната цифра, и ќе ти останат првите две (123/10 = 12).
Сега, со операторот % (остаток при делење), можеш да ја добиеш последната цифра во 12, што ќе биде 12%10 = 2, т.е. точно средната цифра во 123.
Второто решение е да го гледаш бројот како текстуална низа, па да го отпечатиш вториот знак (првиот е s[0], вториот s[1]).
|
 |
|
Perez wrote:Дали ќе може да се користи библиотеката Boost за време на натпреварот ?
Не. Генерално, се трудиме да бидат слични услови како на Балканските и Интернационалните Олимпијади по Информатика. Таму, колку што можам да видам, сеуште не е дозволено.
|
 |
|
ThePopivanov wrote:Со мали измени сеа работи.
Да, кога работи на некој компјутер а не работи на друг, најчесто е поради 1) неиницијализирани променливи, или 2) пристап до невалидна позиција во низа (во твојов случај пример A[-1]).
|
 |
|
ThePopivanov wrote:Сигурни сте дека не ви е ставено погрешна дата за регионалниот натпревар? Пишува на 11 март а 11 март е недела, обично сабота беше O.o
Не е грешка. Оригинално беше планиран за 10 март, ама, да цитирам од сајтот на ЗИМ
"Регионалниот натпревар годинава, по барање на повеќе ментори и учесници заради преклопување со други натпревари, ќе се одржи на 11.03. со почеток во 12:00 часот. Истиот ќе се одржи во неколку региони."
|
 |
|
BATIR wrote:Zdravo, gi citav informaciite za natprevarite na ZIM, pisuva deka
Regionalniot kje se odrzi vo povekje region. Se znae
koi se tie?
Мислам дека сеуште не (иако не сум баш вклучен во организацијата на тоа).
Имено, пишува дека
"Изразување интерес на одредено училиште да биде домаќин се врши од страна на одговорен професор на natprevarATcs.org.mk, најдоцна до 26.02.2018",
така да логично ми е прво да се види кои училишта се заинтересирани да се домаќини, па потоа да се одлучи.
|
 |
|
Perez wrote:Со професоров мака мачиме да дознаеме како можеме да се пријавиме ? Професорот Миле ни рече дека се има на сајтот „Здружение на Информатичари“ бараме бараме нема... де помогнете !!!
Има форма за пријавување за натпреварите: http://cs.org.mk/index.php/19-nasloven-nastan/337-ciklus-natprevari-2018-start
Дополнително, во однос на самите натпревари на МЕНДО, треба да се најавиш на системот, па потоа "Профил", па "Циклус натпревари 2018". Тоа е.
|
 |
|
Perez wrote:http://mendo.mk/Task.do?id=477
за првиот пример имаме S=7 E=53 OUTPUT 4 а нели може 2... 7+2 = 9 + 44 =53 ..ете минимум
Хм, во задачата пишува: "Даден ви е одреден број S. На овој број, можете да му го додадете кој било палиндром поголем или еднаков на 2, а помал од S. Со тоа ќе добиете некој број S2. Истото сега може да се повтори за S2, за да се добие следен број S3, итн... Прашањето е, колку најмалку операции се потребни за да, од почетниот број S, дојдеме до број E?"
Види го делот "а помал од S".
|
 |
|
жучко wrote:Секоја година, истите натпреварувачи кои учествуваат на натпреварите по Информатика, учествуваат и на натпреварите по Физика и Математика. Многу често се случува некој од овие натпревари да се одржуваат во истиот ден, што ги оневозможува дел од учесниците од едниот натпревар да учествуваат на другиот. Минатата година државниот натпревар по информатика и регионалниот натпревар по математика се поклопуваа во истиот ден (Јас како учесник и на двата натпревари, се натпреварував дел од натпреварот по математика, и веднаш одев на натпреварот по информатика, со што значително ми ги намали резултатите). Оваа година регионалниот натпревар по Информатика се поклопува со регионалниот натпревар по Физика(Со што повторно ќе ме оневозможи мене, како и други натпреварувачи да учествуваме и на двата натпревари), а можно е и повторно да се поклопат натпреварите по Математика и Информатика. Јас немам решение за овај проблем, па би ги замолил надлежните и организаторите на овие натпревари да се консултираат меѓусебно.
Се согласувам за ова, и го препратив твоево барање на посоодветно место.
Сепак, не си во право дека не се консултураат меѓусебно (барем колку што јас знам, се гледа да нема поклопување), но има голем број на предмети и активности (регионален основно, регионален средно, .... итн), а мал период за да се организираат сите тие. Сега мислам дека се испраќаат плановите и календарите за натпреварите и до Министерство, така да веројатно постојат уште повеќе проверки (не сум директно вклучен за да знам точно колку - ова е од моја комуникација со некои од нив). Не се само математика и физика, секогаш ќе се најде барем еден ученик кој што има некоја друга обврска.
|
 |
|
Perez wrote:3.3 se pagja sabota..neli ucilisniot treba da bide vo skolo
Нема такво правило - т.е. зависи од секое училиште (како тие сакаат да ги одберат учесниците на регионалниот натпревар).
Училишниот натпревар се организира од страна на ЗИМ со цел да им помогне на училиштата од каде што има повеќе ученици да ги оберат најдобрите, и како еден вид тест натпревар (загревање) за останатите.
Еве како е објаснето на страната на ЗИМ (ова е од минатата година).
ЗИМ wrote:Истиот има цел да им овозможи на натпреварувачите да вежбаат и не е задолжителен, не е елиминационен и за истиот нема да се објави ранг листа со резултати. Резултатите ќе бидат видливи само за учесниците, и за менторите (по училиште) на нивно барање. Ги советуваме менторите во чии училишта има повеќе заинтересирани ученици за учество на регионалниот натпревар од доделената квота, да го искористат овој натпревар за да изберат кои точно ученици ќе ги пријават на регионалниот натпревар. Напоменуваме дека тоа не е обврска, резултатите од натпреварот не се обврзувачки, и одговорноста за пријавување е оставена на менторот/менторите од секое училиште. Тие, при својот избор треба да внимаваат и да им дадат шанса на ученици од различни години.
Сепак, изгледа ќе биде преместен на 28.02 за да имаат повеќе опции училиштата, и повеќе време наставниците да пријават учесници за регионалниот натпревар.
|
 |
|
BATIR wrote:Zdravo,ja resavav polici,so toa sto pominuva na 15/20, od koi tie gresnite se nadminat vremenski limit. Mi treba pomos.
Fala odnapred 
Да го поправиме твојот код. Главниот проблем е што имаш два вгнездени for циклуси, а ограничувањата во задачата се големи, така да тоа не може да се изврши. Наместо тоа, можеш knigi наместо vector<long long> да го направиш вектор кој ќе чува вредност (како сега) и оригиналниот индекс (тоа може да го направиш со pair<long long, int>. Потоа, само го користиш тој индекс. Еве го поправениот код.
|
 |
|
Perez wrote:На кој датум се планира училишниот натпревар ?
Ако добро се сеќавам, на 03.03.2018. Регионалниот натпревар е на 10.03.2018.
|
 |
|
Perez wrote: дали кодот ќе биде брз ако sum = 100 000 и n=100 ?
Не е многу за компјутер
Како помош, прочитај нешто за knapsack (оваа задача е варијација), и еве мое решение ако заглавиш. Генерално, knapsack (проблем на ранец во литература на македонски) е многу познат проблем, и се среќава во разни задачи (и на натпревари!).
(Инаку, ќе почнам да ти ги бришам прашањава да не ти помагаат и други, оти мислам дека треба прво да ги помислиш задачите сам - така најдобро се учи и најдобро се сфаќа зошто некој алгоритам е корисен или не - ако прашуваш за неколку задачи во ист ден, значи не си потрошил доволно време самиот и ние само ти правиме контра услуга)
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
int T;
cin >> T;
while(T--)
{
int N;
cin >> N;
int dp[100001];
memset(dp, 0, sizeof(dp));
dp[0] = 1;
int sum = 0;
for (int i=0; i<N; i++)
{
int value;
cin >> value;
for (int j=sum; j>=0; j--)
{
if(dp[j])
{
dp[j + value] = 1;
}
}
sum += value;
}
if (sum%2 == 0 && dp[sum/2] == 1)
{
cout << "YES" << endl;
} else
{
cout << "NO" << endl;
}
}
return 0;
}
Perez wrote:Настрана од ова ме интересира дали MOI учествува на натпреварот или е организатор / професор ?
Нема да учествувам , освен (делумно) како организатор. Тука сум само како поранешен натпреварувач и автор на доста материјали за учење и задачи од системов.
|
 |
|
Perezmax(dp[i+1 wrote:[j-1],dp[i+1][j],dp[i+1][j+1])+blabla[i][j] , но се си мислам дека вака нема да даде точен резултат до крај. Па затоа треба да се почне можеби од прв ред па да проверуваме max(dp[i-1][j-1],dp[i-1][j],dp[i-1][j+1]) ??? ваша идеја
Второто. Со тоа што ќе имаш плус вредноста на полето каде што си - значи најдобриот пат до некое од претходните 3 полиња (од каде што можеш да дојдеш до тековното) плус вредноста на тековното поле.
Еве и код (кога веќе го искуцав) ако треба помош. Ја намалив големината за да не го читаш ако несакаш Ако сакаш, само ископирај го во некој друг документ.
#include <iostream>
using namespace std;
int main()
{
int T;
cin >> T;
while (T--)
{
int N;
cin >> N;
int M[N][N];
for (int r=0; r<N; r++)
for (int c=0; c<N; c++)
cin >> M[r][c];
int best = 0;
for (int r=1; r<N; r++)
for (int c=0; c<N; c++)
{
int value = M[r-1][c];
if (c > 0) value = max(value, M[r-1][c-1]);
if (c+1 < N) value = max(value, M[r-1][c+1]);
M[r][c] = value + M[r][c];
if (r == N-1)
{
best = max(best, M[r][c]);
}
}
cout << best << endl;
}
return 0;
}
|
 |
|
За наједноставно решавање, основната идеја која што треба да се забележи е дека е доволно да се знае само што се случува од левата страна (на пример, ако решиме да решаваме гледајќи ги коцките од лево на десно).
На пример, нека имаме ситуација каде што имаме P = [10, 10, 10, 10] и K = [15, 15, 5, 15]. Тука, може да видиме дека треба да додадеме пет коцки на најлевата кула. Потоа, ја разгледуваме следната кула. И таму треба да додадеме точно пет коцки, па си велиме дека наместо посебно да додаваме тука (и знаејќи дека претходно исто сме додале пет), дека можеме истите да ги третираме како една група и со истите наредби да ги решиме и двете. Е сега, доаѓаме до следната кула, и таму всушност треба да одземеме пет коцки - во ваков случај, не можеме да ги искористиме наредбите од претходно (таму додававме коцки, тука треба да одземаме), па почнуваме нова група. Слично продолжуваме и натаму.
Забележи дека нема логика да додадеме по пет коцки на сите кули (сите да ги направиме "15"), а потоа да одземаме за третата кула, бидејќи во тој случај за нејзе ќе треба да искористиме 10 наредби (наместо 5) за вадење на коцка, со што не би добиле ништо.
|
 |
|
Perez wrote:А друг начин освен со граф ?
Те интересира некој конкретен пристап или...?
Ако е прашањето само "дали може да се избегне bfs, dfs, итн", може - со правилно чување на податоците при читањето. Треба само да видиш дека за една позиција, постојат најмногу два други елемента кои се поврзани со неа (лево и десно). Ако ги чуваш тие две бројки за секој елемент (на пример, нека бидат 5 и 9 - иако во моментот на читањето не знаеш кој доаѓа лево а кој десно), тогаш имајќи во предвид дека тргнувајќи од 0 секогаш ќе знаеш кој е претходниот елемент, знаеш точно кој од двата да ги искористиш. На пример, Ако си стигнал од 0 до 5 до 3, и сега лево и десно од 3 ти се 5 и 9, знаеш дека треба да одиш на 9, бидејќи 5 ти дошол претходно.
(Ме мрзеше да пишувам голем број коментари во мојот код, едвај се натерав да решавам, ама мислам дека ќе го разбереш)
|
 |
|
|
|