<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Latest posts for the topic "Задача Кампања регионален 2019"]]></title>
		<link>http://mendo.mk/jforum/posts/list/6.page</link>
		<description><![CDATA[Latest messages posted in the topic "Задача Кампања регионален 2019"]]></description>
		<generator>JForum - http://www.jforum.net</generator>
			<item>
				<title>Задача Кампања регионален 2019</title>
				<description><![CDATA[ Вчера на натпреварот кога ја решавав оваа падна на скоро сите тест примери освен на 3.<br /> Денеска изменив нешто сега на 23 поминува а само на 7 паѓа.<br /> <br /> [code]#include &lt;iostream&gt;<br /> #include &lt;vector&gt;<br /> #include &lt;algorithm&gt;<br /> using namespace std;<br /> <br /> bool sporedba(pair&lt;int, int&gt; par1, pair&lt;int, int&gt; par2) {<br />     return (par1.first-par1.second &lt; par2.first-par2.second);<br /> }<br /> <br /> main() {<br />     int N, C, counter = 0;<br />     cin &gt;&gt; N &gt;&gt; C;<br />     vector&lt;pair&lt;int, int&gt; &gt; city;<br />     city.resize(C);<br />     for(int i = 0, a, b; i &lt; C; i++) {<br />         cin &gt;&gt; a &gt;&gt; b;<br />         city[i] = make_pair(a, b);<br />     }<br />     sort(city.begin(), city.end(), sporedba);<br />     for(int i = 0; i &lt; C; i++) {<br />         if(N &gt;= city[i].first) {<br />             counter++;<br />             N-=city[i].first;<br />             N+=city[i].second;<br />         }<br />     }<br />     cout &lt;&lt; counter;<br />     return 0;<br /> }<br /> [/code]]]></description>
				<guid isPermaLink="true">http://mendo.mk/jforum/posts/preList/687/3749.page</guid>
				<link>http://mendo.mk/jforum/posts/preList/687/3749.page</link>
				<pubDate><![CDATA[Mon, 11 Mar 2019 11:43:26]]> GMT</pubDate>
				<author><![CDATA[ ThePopivanov]]></author>
			</item>
			<item>
				<title>Задача Кампања регионален 2019</title>
				<description><![CDATA[ [quote=ThePopivanov]Вчера на натпреварот кога ја решавав оваа падна на скоро сите тест примери освен на 3.<br /> Денеска изменив нешто ситно сега на 23 поминува а само на 7 паѓа.[/quote]<br /> <br /> Ова е greedy решение и е доста логично, па ќе добие дел од поените (инаку, како што излезе, сите ќе имаа 0 на таа задача).<br /> Но, оваа задача е најдобро да се решава со помош на динамичко програмирање.<br /> <br /> Идејата е доста едноставна, ќе користиме матрица dp[c][n] која ќе ни памети во колку најмногу градови може да се направи митинг ако веќе сме разгледале [c] градови и имаме уште [n] средства на располагање.<br /> Сега, ќе ги поминуваме градовите еден по еден и ќе ја пополнуваме матрицава (како и други слични задачи кои се решаваат на ваков начин) и истата ќе содржи некаков резултат. <br /> Но, по кој редослед да ги поминуваме градовите? Од кога ќе ни текне дека единствениот начин да добиеме пари е од организацијата на митинг (инаку само трошиме), тогаш може да забележиме дека е најдобро да ги сортираме во опаѓачки редослед според R[x]. За се друго ќе се погрижи динамичкото програмирање. И тоа е решението.<br /> <br /> (Постојат и други решенија за добивање на делумни поени, dfs, битмаски, итн)<br /> [code]#include &lt;iostream&gt;<br /> #include &lt;vector&gt;<br /> #include &lt;cstring&gt;<br /> #include &lt;algorithm&gt;<br /> using namespace std;<br />  <br /> int main()<br /> {<br />     int N, C;<br />     cin &gt;&gt; N &gt;&gt; C;<br /> <br />     vector&lt;pair&lt;int, int&gt; &gt; cities(C);<br />     for (int i=0; i&lt;C; i++) {<br />         cin &gt;&gt; cities[i].second &gt;&gt; cities[i].first;<br />     }<br /> <br />     sort(cities.begin(), cities.end());<br />     reverse(cities.begin(), cities.end());<br /> <br />     int dp[C+1][N+1];<br />     memset(dp, 0, sizeof(dp));<br /> <br />     int result = 0;<br /> <br />     for (int m=0; m&lt;C; m++) {<br />         int cost = cities[m].second, back = cities[m].first;<br /> <br />         for (int fromCost=N; fromCost &gt;= 0; fromCost--) {<br /> <br />             //da ne se pravi miting vo gradot (m)<br />             dp[m+1][fromCost] = max(dp[m+1][fromCost], dp[m][fromCost]);<br /> <br />             //da se pravi miting vo gradot (m)<br />             if (fromCost &gt;= cost) { //mora da imame dovolno sredstva<br />                 int toCost = fromCost - cost + back;<br /> <br />                 dp[m + 1][toCost] = max(dp[m + 1][toCost], dp[m][fromCost] + 1);<br />                 result = max(result, dp[m + 1][toCost]);<br />             }<br />         }<br />     }<br /> <br />     cout &lt;&lt; result;<br />     return 0;<br /> }[/code]]]></description>
				<guid isPermaLink="true">http://mendo.mk/jforum/posts/preList/687/3750.page</guid>
				<link>http://mendo.mk/jforum/posts/preList/687/3750.page</link>
				<pubDate><![CDATA[Mon, 11 Mar 2019 13:42:16]]> GMT</pubDate>
				<author><![CDATA[ longhi]]></author>
			</item>
			<item>
				<title>Задача Кампања регионален 2019</title>
				<description><![CDATA[ Dali pod bitmaski, mislis za site kombinacii da gledame kolku sme potrosile, pri toa da e validno? I da go barame maksimumot?]]></description>
				<guid isPermaLink="true">http://mendo.mk/jforum/posts/preList/687/3751.page</guid>
				<link>http://mendo.mk/jforum/posts/preList/687/3751.page</link>
				<pubDate><![CDATA[Mon, 11 Mar 2019 14:39:35]]> GMT</pubDate>
				<author><![CDATA[ BATIR]]></author>
			</item>
			<item>
				<title>Задача Кампања регионален 2019</title>
				<description><![CDATA[ [quote=BATIR]Dali pod bitmaski, mislis za site kombinacii da gledame kolku sme potrosile, pri toa da e validno? I da go barame maksimumot?[/quote]<br /> Максимум градови во кои може да се направат митинзи - тоа што се бара во задачата.<br /> Инаку, ако не ме разбра, тоа зборував дека "Постојат и други решенија за добивање на делумни поени" - едно е решението што беше напишано горе (greedy), може со bfs и битмаски (бидејќи има и помали тест случаи на кои се оценуваат решенијата), итн.]]></description>
				<guid isPermaLink="true">http://mendo.mk/jforum/posts/preList/687/3752.page</guid>
				<link>http://mendo.mk/jforum/posts/preList/687/3752.page</link>
				<pubDate><![CDATA[Mon, 11 Mar 2019 14:50:54]]> GMT</pubDate>
				<author><![CDATA[ longhi]]></author>
			</item>
			<item>
				<title>Задача Кампања регионален 2019</title>
				<description><![CDATA[ [quote=longhi][quote=ThePopivanov]Вчера на натпреварот кога ја решавав оваа падна на скоро сите тест примери освен на 3.<br /> Денеска изменив нешто ситно сега на 23 поминува а само на 7 паѓа.[/quote]<br /> <br /> Ова е greedy решение и е доста логично, па ќе добие дел од поените (инаку, како што излезе, сите ќе имаа 0 на таа задача).<br /> Но, оваа задача е најдобро да се решава со помош на динамичко програмирање.<br /> <br /> Идејата е доста едноставна, ќе користиме матрица dp[c][n] која ќе ни памети во колку најмногу градови може да се направи митинг ако веќе сме разгледале [c] градови и имаме уште [n] средства на располагање.<br /> Сега, ќе ги поминуваме градовите еден по еден и ќе ја пополнуваме матрицава (како и други слични задачи кои се решаваат на ваков начин) и истата ќе содржи некаков резултат. <br /> Но, по кој редослед да ги поминуваме градовите? Од кога ќе ни текне дека единствениот начин да добиеме пари е од организацијата на митинг (инаку само трошиме), тогаш може да забележиме дека е најдобро да ги сортираме во опаѓачки редослед според R[x]. За се друго ќе се погрижи динамичкото програмирање. И тоа е решението.<br /> <br /> (Постојат и други решенија за добивање на делумни поени, dfs, битмаски, итн)[/quote]<br /> Ама не разбирам оти не работи моето решение<br /> ]]></description>
				<guid isPermaLink="true">http://mendo.mk/jforum/posts/preList/687/3755.page</guid>
				<link>http://mendo.mk/jforum/posts/preList/687/3755.page</link>
				<pubDate><![CDATA[Mon, 11 Mar 2019 23:20:07]]> GMT</pubDate>
				<author><![CDATA[ ThePopivanov]]></author>
			</item>
			<item>
				<title>Задача Кампања регионален 2019</title>
				<description><![CDATA[ [quote=ThePopivanov]Ама не разбирам оти не работи моето решение[/quote]<br /> <br /> Бидејќи ваквите greedy алгоритми функционираат за некои задачи, а за некои не.<br /> На пример, изврши ја твојата програма на овој пример:<br /> <br /> [code]10 3<br /> 10 8<br /> 2 1<br /> 2 1<br /> [/code]<br /> <br /> Ќе добиеш одговор 2. Точниот одговор е 3.]]></description>
				<guid isPermaLink="true">http://mendo.mk/jforum/posts/preList/687/3756.page</guid>
				<link>http://mendo.mk/jforum/posts/preList/687/3756.page</link>
				<pubDate><![CDATA[Mon, 11 Mar 2019 23:32:49]]> GMT</pubDate>
				<author><![CDATA[ petarsor]]></author>
			</item>
			<item>
				<title>Задача Кампања регионален 2019</title>
				<description><![CDATA[ [quote=longhi]<br /> Но, по кој редослед да ги поминуваме градовите? Од кога ќе ни текне дека единствениот начин да добиеме пари е од организацијата на митинг (инаку само трошиме), тогаш може да забележиме дека е најдобро да ги сортираме во опаѓачки редослед според R[x].<br /> [/quote]<br /> <br /> Ne razbiram zosto gi sortiruvas po R[x] a ne po P[x]?]]></description>
				<guid isPermaLink="true">http://mendo.mk/jforum/posts/preList/687/3763.page</guid>
				<link>http://mendo.mk/jforum/posts/preList/687/3763.page</link>
				<pubDate><![CDATA[Wed, 13 Mar 2019 09:06:04]]> GMT</pubDate>
				<author><![CDATA[ VlatkoSh]]></author>
			</item>
			<item>
				<title>Задача Кампања регионален 2019</title>
				<description><![CDATA[ [quote=VlatkoSh][quote=longhi]<br /> Но, по кој редослед да ги поминуваме градовите? Од кога ќе ни текне дека единствениот начин да добиеме пари е од организацијата на митинг (инаку само трошиме), тогаш може да забележиме дека е најдобро да ги сортираме во опаѓачки редослед според R[x].<br /> [/quote]<br /> <br /> Ne razbiram zosto gi sortiruvas po R[x] a ne po P[x]?[/quote]<br /> <br /> Нека N се парите што ги имаме, и нека имаме 2 градови опишани со вредностите P1 R1 и P2 R2 и нека важи дека R1 &gt; R2. Да претпоставиме дека би било подобро прво да одиме во градот 2, па во градот 1. Тоа е подобро ако и само ако не можеме да одиме прво во 1, па потоа во 2. Според тоа, би важеле следниве неравенства:<br /> P1 &gt; R1, дадено во задачата<br /> P2 &gt; R2, дадено во задачата<br /> R1 &gt; R2, наша претпоставка<br /> N &gt;= P2, за да можеме да појдеме прво во градот 2<br /> N - P1 + R1 &lt; P2, претпоставуваме дека не можеме да појдеме прво во градот 1, па во градот 2. Го обележуваме ова неравенство со (1)<br /> N - P2 + R2 &gt;= P1, претпоставуваме дека можеме да појдеме прво во градот 2, па во градот 1. Го обележуваме ова неравенство со (2)<br /> N &lt; P2 + P1 - R1, добиено од неравенството (1)<br /> N &gt;= P1 + P2 - R2, добиено од неравенството (2)<br /> Бидејќи R1 &gt; R2, P1 + P2 - R1 &lt; P1 + P2  - R2. Тоа ги прави неравенствата (1) и (2) контрадикторни и не може истовремено да важат. Според тоа, заклучуваме дека никогаш не е подобро да одиме прво во градот 2, па во градот 1, а со тоа, сортирањето по R го дава оптималното DP решение.<br /> <br /> Дополнително: види го контра-примеров зошто не може да сортираме по P:<br /> [code]<br /> 30 2<br /> 25 1<br /> 10 5<br /> [/code]]]></description>
				<guid isPermaLink="true">http://mendo.mk/jforum/posts/preList/687/3765.page</guid>
				<link>http://mendo.mk/jforum/posts/preList/687/3765.page</link>
				<pubDate><![CDATA[Wed, 13 Mar 2019 13:17:07]]> GMT</pubDate>
				<author><![CDATA[ despotovski01]]></author>
			</item>
			<item>
				<title>Задача Кампања регионален 2019</title>
				<description><![CDATA[ [quote=despotovski01]<br /> Нека N се парите што ги имаме, и нека имаме 2 градови опишани со вредностите P1 R1 и P2 R2 и нека важи дека R1 &gt; R2. Да претпоставиме дека ...<br /> [/quote]<br /> <br /> Fala za objasnuvanjeto, nema podobro od dokaz!]]></description>
				<guid isPermaLink="true">http://mendo.mk/jforum/posts/preList/687/3769.page</guid>
				<link>http://mendo.mk/jforum/posts/preList/687/3769.page</link>
				<pubDate><![CDATA[Thu, 14 Mar 2019 09:38:04]]> GMT</pubDate>
				<author><![CDATA[ VlatkoSh]]></author>
			</item>
	</channel>
</rss>