<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Latest posts for the topic "Максимален Збир (алгоритми)"]]></title>
		<link>http://mendo.mk/jforum/posts/list/8.page</link>
		<description><![CDATA[Latest messages posted in the topic "Максимален Збир (алгоритми)"]]></description>
		<generator>JForum - http://www.jforum.net</generator>
			<item>
				<title>Максимален Збир (алгоритми)</title>
				<description><![CDATA[ http://mendo.mk/algoritmi/Task.do?competition=150&id=102<br /> [code]#include &lt;bits/stdc++.h&gt;<br /> <br /> using namespace std;<br /> <br /> int main()<br /> {<br />     int n, m, a[50][50], dp[50][50] = {};<br />     cin &gt;&gt; n &gt;&gt; m;<br />     for (int i = 0; i &lt; n; i++)<br />         for (int j = 0; j &lt; m; j++)<br />             cin &gt;&gt; a[i][j];<br />     dp[0][0] = a[0][0];<br />     for (int i = 1; i &lt; n; i++)<br />         dp[0][i] = a[0][i] + dp[0][i-1];<br />     for (int i = 1; i &lt; m; i++)<br />         dp[i][0] = a[i][0] + dp[i-1][0];<br />     for (int i = 1; i &lt; n; i++)<br />         for (int j = 1; j &lt; m; j++)<br />             dp[i][j] = a[i][j] + max(dp[i-1][j], dp[i][j-1]);<br />     cout &lt;&lt; dp[n-1][m-1] &lt;&lt; endl;<br />     int i = m - 1, j = n - 1;<br />     cout &lt;&lt; "1 1" &lt;&lt; endl;<br />     while (i || j)<br />     {<br />         if (dp[i][j] - a[i][j] == dp[i-1][j])<br />             i--;<br />         else<br />             j--;<br />         cout &lt;&lt; m - j &lt;&lt; " " &lt;&lt; n - i &lt;&lt; endl;<br />     }<br /> 	return 0;<br /> }<br /> [/code]<br /> Проблемот е што имам точен резултат но погрешен пат, бидејќи ги има повеќе патишта. Како да знам кој е оптималниот пат во задачата? Тест пример:<br /> Влез:<br /> 5 5<br /> 2 3 4 5 1<br /> 1 1 2 4 3<br /> 1 3 1 3 1<br /> 4 6 3 4 2<br /> 3 3 1 1 2<br /> Точен излез:29<br /> 1 1<br /> 1 2<br /> 1 3<br /> 1 4<br /> 2 4<br /> 3 4<br /> 4 4<br /> 4 5<br /> 5 5<br /> Кориснички излез:29<br /> 1 1<br /> 1 2<br /> 2 2<br /> 2 3<br /> 2 4<br /> 2 5<br /> 3 5<br /> 4 5<br /> 5 5]]></description>
				<guid isPermaLink="true">http://mendo.mk/jforum/posts/preList/662/3632.page</guid>
				<link>http://mendo.mk/jforum/posts/preList/662/3632.page</link>
				<pubDate><![CDATA[Sat, 15 Dec 2018 17:58:52]]> GMT</pubDate>
				<author><![CDATA[ boolTrue]]></author>
			</item>
			<item>
				<title>Максимален Збир (алгоритми)</title>
				<description><![CDATA[ [quote=boolTrue]Проблемот е што имам точен резултат но погрешен пат, бидејќи ги има повеќе патишта. Како да знам кој е оптималниот пат во задачата?[/quote]<br /> <br /> Тргни од крајот.<br /> [code]#include &lt;bits/stdc++.h&gt;<br /> <br /> using namespace std;<br /> <br /> int main()<br /> {<br />     int n, m, a[50][50], dp[50][50] = {};<br />     cin &gt;&gt; n &gt;&gt; m;<br />     for (int i = 0; i &lt; n; i++)<br />         for (int j = 0; j &lt; m; j++)<br />             cin &gt;&gt; a[i][j];<br />     dp[0][0] = a[0][0];<br />     for (int i = 1; i &lt; n; i++)<br />         dp[0][i] = a[0][i] + dp[0][i-1];<br />     for (int i = 1; i &lt; m; i++)<br />         dp[i][0] = a[i][0] + dp[i-1][0];<br />     for (int i = 1; i &lt; n; i++)<br />         for (int j = 1; j &lt; m; j++)<br />             dp[i][j] = a[i][j] + max(dp[i-1][j], dp[i][j-1]);<br />     cout &lt;&lt; dp[n-1][m-1] &lt;&lt; endl;<br /> <br />     vector&lt;pair&lt;int, int&gt; &gt; result;<br /> <br />     int i = m - 1, j = n - 1;<br />     result.push_back({i+1, j+1});<br /> <br />     while (i != 0 || j != 0) {<br /> <br />         if (i &gt; 0 && dp[i][j] == dp[i-1][j] + a[i][j]) {<br />             i--;<br />         } else {<br />             j--;<br />         }<br /> <br />         result.push_back({i+1, j+1});<br />     }<br /> <br />     reverse(result.begin(), result.end());<br />     for (auto r : result) {<br /> 	cout &lt;&lt; r.first &lt;&lt; " " &lt;&lt; r.second &lt;&lt; endl;<br />     }<br /> <br /> <br />     return 0;<br /> }[/code]]]></description>
				<guid isPermaLink="true">http://mendo.mk/jforum/posts/preList/662/3634.page</guid>
				<link>http://mendo.mk/jforum/posts/preList/662/3634.page</link>
				<pubDate><![CDATA[Sun, 16 Dec 2018 00:21:15]]> GMT</pubDate>
				<author><![CDATA[ petarsor]]></author>
			</item>
			<item>
				<title>Максимален Збир (алгоритми)</title>
				<description><![CDATA[ [quote=petarsor][quote=boolTrue]Проблемот е што имам точен резултат но погрешен пат, бидејќи ги има повеќе патишта. Како да знам кој е оптималниот пат во задачата?[/quote]<br /> <br /> Тргни од крајот.<br /> [/quote]<br /> Фала сега работи, меѓутоа нели го правам истото во горниот код?  <img src="http://mendo.mk/jforum/images/smilies/136dd33cba83140c7ce38db096d05aed.gif" /> Сакав да скратам неколку редови код.]]></description>
				<guid isPermaLink="true">http://mendo.mk/jforum/posts/preList/662/3637.page</guid>
				<link>http://mendo.mk/jforum/posts/preList/662/3637.page</link>
				<pubDate><![CDATA[Sun, 16 Dec 2018 14:28:00]]> GMT</pubDate>
				<author><![CDATA[ boolTrue]]></author>
			</item>
			<item>
				<title>Максимален Збир (алгоритми)</title>
				<description><![CDATA[ [quote=boolTrue]Фала сега работи, меѓутоа нели го правам истото во горниот код?  <img src="http://mendo.mk/jforum/images/smilies/136dd33cba83140c7ce38db096d05aed.gif" /> Сакав да скратам неколку редови код.[/quote]<br /> Не баш, разгледуваш една позиција (i, j) а печатиш одлуки за друга (m - j, n-i).]]></description>
				<guid isPermaLink="true">http://mendo.mk/jforum/posts/preList/662/3638.page</guid>
				<link>http://mendo.mk/jforum/posts/preList/662/3638.page</link>
				<pubDate><![CDATA[Sun, 16 Dec 2018 16:09:46]]> GMT</pubDate>
				<author><![CDATA[ petarsor]]></author>
			</item>
			<item>
				<title>Максимален Збир (алгоритми)</title>
				<description><![CDATA[ [quote=petarsor][quote=boolTrue]Фала сега работи, меѓутоа нели го правам истото во горниот код?  <img src="http://mendo.mk/jforum/images/smilies/136dd33cba83140c7ce38db096d05aed.gif" /> Сакав да скратам неколку редови код.[/quote]<br /> Не баш, разгледуваш една позиција (i, j) а печатиш одлуки за друга (m - j, n-i).[/quote]<br /> Да, ама ова се случува кога двата елементи имаат исти збир, зошто не и кај вториот алгоритам, бидејќи и таму постојат 2 патишта а во решението е можно да е одбран друг од 2та точни патишта, или постои само 1 точен?]]></description>
				<guid isPermaLink="true">http://mendo.mk/jforum/posts/preList/662/3639.page</guid>
				<link>http://mendo.mk/jforum/posts/preList/662/3639.page</link>
				<pubDate><![CDATA[Mon, 17 Dec 2018 12:26:52]]> GMT</pubDate>
				<author><![CDATA[ boolTrue]]></author>
			</item>
	</channel>
</rss>