﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-dango-最新评论</title><link>http://www.cppblog.com/dango/CommentsRSS.aspx</link><description /><language>zh-cn</language><pubDate>Sat, 05 Mar 2011 13:07:04 GMT</pubDate><lastBuildDate>Sat, 05 Mar 2011 13:07:04 GMT</lastBuildDate><generator>cnblogs</generator><item><title>re: [hdu 3225] Flowers Placement</title><link>http://www.cppblog.com/dango/archive/2010/08/29/124874.html#125125</link><dc:creator>Dango</dc:creator><author>Dango</author><pubDate>Sun, 29 Aug 2010 01:28:00 GMT</pubDate><guid>http://www.cppblog.com/dango/archive/2010/08/29/124874.html#125125</guid><description><![CDATA[@jeogia<br>在HDU的OJ上交代码要把system(&quot;pause&quot;);注释掉的。<br>我贴过来的代码system(&quot;pause&quot;);没有注释掉，注释以后是可以AC的。<img src ="http://www.cppblog.com/dango/aggbug/125125.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/dango/" target="_blank">Dango</a> 2010-08-29 09:28 <a href="http://www.cppblog.com/dango/archive/2010/08/29/124874.html#125125#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: [hdu 3225] Flowers Placement</title><link>http://www.cppblog.com/dango/archive/2010/08/28/124874.html#125068</link><dc:creator>jeogia</dc:creator><author>jeogia</author><pubDate>Sat, 28 Aug 2010 10:45:00 GMT</pubDate><guid>http://www.cppblog.com/dango/archive/2010/08/28/124874.html#125068</guid><description><![CDATA[AC了，我的代码：<br>#include&lt;iostream&gt;<br>#include&lt;cstring&gt;<br>#include&lt;cstdio&gt;<br>#include&lt;vector&gt;<br>#include&lt;algorithm&gt;<br>using namespace std;<br>#define N 300<br>int t, n, m, k, ans[N], match[N], num, match2[N];<br>bool vst[N][N], re[N], tmp[N];<br>vector&lt;int&gt; jeo[N];<br>bool find(int id, int limit)<br>{<br>    if (id &lt;= limit) return false;<br>    for(int i = 0; i &lt; jeo[id].size(); i++)<br>        if (!tmp[jeo[id][i]])<br>        {<br>            tmp[jeo[id][i]] = 1;<br>            if (match[jeo[id][i]] == -1 || find(match[jeo[id][i]], limit))<br>            {<br>                match[jeo[id][i]] = id;<br>                return true;<br>            }<br>        }<br>    return false;<br>}<br>bool solve()<br>{<br>    memset(match, -1, sizeof(int) * (n + 1));<br>    for(int i = 1; i &lt;= n; i++)<br>    {<br>        memset(tmp, 0, sizeof(bool) * (n + 1));<br>        if (!find(i, 0)) return false;<br>    }<br>    return true;<br>}<br>bool check(int id, int tar)<br>{<br>    if(match[tar] == id) return true;<br>    int key = 0;<br>    for(int i = 1; i &lt;= n; i++)<br>        if ((match2[i] = match[i]) == id) key = i;<br>    int t = match[tar]; match[tar] = id; match[key] = -1;<br>    memset(tmp, 0, sizeof(bool) * (n + 1));<br>    if (find(t, id)) return true;<br>    else for(int i = 1; i &lt;= n; i++)<br>        match[i] = match2[i];<br>    return false;<br>}<br>bool dfs(int deep)<br>{<br>    if (deep == n + 1)<br>    {<br>        num++; if (num == k)<br>            return true;<br>        return false;<br>    }<br>    for(int i = 0; i &lt; jeo[deep].size(); i++)<br>        if (!re[jeo[deep][i]] &amp;&amp; check(deep, jeo[deep][i]))<br>        {<br>            ans[deep] = jeo[deep][i];<br>            re[jeo[deep][i]] = 1;<br>            if (dfs(deep + 1)) return true;<br>            re[jeo[deep][i]] = 0;<br>        }<br>    return false;<br>}<br>int main()<br>{<br>    scanf(&quot;%d&quot;, &amp;t);<br>    for(int ca = 1; ca &lt;= t; ca++)<br>    {<br>        scanf(&quot;%d%d%d&quot;, &amp;n, &amp;m, &amp;k);<br>        for(int i = 1; i &lt;= n; i++)<br>            for(int j =1; j &lt;= n; j++) vst[i][j] = 0;<br>        for(int i = 0; i &lt; m; i++)<br>            for(int j = 1; j &lt;= n; j++)<br>            {<br>                int x;scanf(&quot;%d&quot;, &amp;x);vst[j][x] = 1;<br>            }<br>        for(int i = 1; i &lt;= n; i++)<br>        {<br>            jeo[i].clear();<br>            for(int j = 1; j &lt;= n; j++)<br>                if (!vst[i][j]) jeo[i].push_back(j);<br>            sort(jeo[i].begin(), jeo[i].end());<br>        }<br>        memset(re, 0, sizeof(bool) * (n + 1)); num = 0;<br>        printf(&quot;Case #%d:&quot;, ca);<br>        if (solve() &amp;&amp; dfs(1))<br>        {<br>            for(int i = 1; i &lt;= n; i++) printf(&quot; %d&quot;, ans[i]);<br>            putchar('\n');<br>        }<br>        else printf(&quot; -1\n&quot;);<br>    }<br>    return 0;<br>}<br><img src ="http://www.cppblog.com/dango/aggbug/125068.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/dango/" target="_blank">jeogia</a> 2010-08-28 18:45 <a href="http://www.cppblog.com/dango/archive/2010/08/28/124874.html#125068#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: [hdu 3225] Flowers Placement</title><link>http://www.cppblog.com/dango/archive/2010/08/28/124874.html#125031</link><dc:creator>jeogia</dc:creator><author>jeogia</author><pubDate>Sat, 28 Aug 2010 04:27:00 GMT</pubDate><guid>http://www.cppblog.com/dango/archive/2010/08/28/124874.html#125031</guid><description><![CDATA[为什么按照你的方法写是wrong Answer？<br>把您的代码交上去也同样wa<img src ="http://www.cppblog.com/dango/aggbug/125031.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/dango/" target="_blank">jeogia</a> 2010-08-28 12:27 <a href="http://www.cppblog.com/dango/archive/2010/08/28/124874.html#125031#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>