{"id":17,"date":"2009-11-13T20:23:00","date_gmt":"2009-11-13T12:23:00","guid":{"rendered":"http:\/\/localhost\/?p=17"},"modified":"2009-11-13T20:23:00","modified_gmt":"2009-11-13T12:23:00","slug":"usaco_nov_2009","status":"publish","type":"post","link":"https:\/\/www.shuizilong.com\/wjmzbmr\/?p=17","title":{"rendered":"USACO NOV 2009"},"content":{"rendered":"<p> \u3002\u3002\u3002\u9898\u76ee\u771f\u662f\u6bd4\u8f83\u6c34\u963f\u3002\u3002\u3002\u8fde\u6211\u90fd\u5f97\u4e861000\u3002\u3002\u3002<br \/>&#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; 45384401 &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; <br \/>&#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; USACO NOV09 &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; <\/p>\n<p>               Tom Chen \/ CHN \/ Grad: 9999 \/ Div: Gold<br \/> As an observer, YOUR RESULTS MIGHT NOT APPEAR ON THE FINAL WEB LISTINGS<\/p>\n<p>Below are the results of grading your submissions against the test data for<br \/>the contest.<\/p>\n<p>============================== SUMMARY =============================<\/p>\n<p>                            &#8212; case number &#8212;<br \/>            1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17<br \/>cookie      *  *  *  *  *  *  *  *  *  *<br \/>lights      *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *<br \/>rescue      *  *  *  *  *  *  *  *  *  *<\/p>\n<p>. = no entry   t = time exceeded    *   = correct answer<br \/>x = wrong      s = signal           e   = bad exit status\/&#8230;..1&#8230;.\/<br \/>\u5f88\u660e\u663e\u662f\u4e00\u4e2a\u89e3\u6a21\u7ebf\u6027\u65b9\u7a0b\u7684\u6a21\u578b\u3002\u3002\u4f46\u662f\u5f88\u53ef\u80fd\u6709\u591a\u89e3\u3002\u3002<br \/>\u4f46\u5b9e\u9645\u4e0a\u53ef\u4ee5\u81ea\u7531\u53d6\u503c\u7684\u53d8\u91cf\u7684\u6570\u91cf\u4e0d\u4f1a\u8d85\u8fc7N\/2\u3002\u3002<br \/>\u6240\u4ee5\u53ea\u8981\u66b4\u529b\u679a\u4e3e\u5c31\u53ef\u4ee5\u4e86\u3002\u3002\u4e2d\u9014\u8fd8\u53ef\u4ee5\u526a\u679d\u3002\u3002\u3002<br \/>Code\u3002\u3002<br \/>\/*<br \/>PROG: lights<br \/>LANG: C++<br \/>ID: Tom Chen<br \/>*\/<br \/>#include&lt;iostream&gt;<br \/>#include&lt;math.h&gt;<br \/>#include&lt;algorithm&gt;<br \/>using namespace std;<br \/>const int maxn=40;<br \/>int A[maxn][maxn]={0};<br \/>int N[maxn];<br \/>void init();<br \/>void solve();<br \/>int n,m;<br \/>void swap(int&amp;x,int&amp;y)<br \/>{int t=x;x=y;y=t;}<br \/>void init()<br \/>{&#160;&#160;&#160; <br \/>freopen(&quot;lights.in&quot;,&quot;r&quot;,stdin);<br \/>freopen(&quot;lights.out&quot;,&quot;w&quot;,stdout);&#160;&#160;&#160; <br \/>cin&gt;&gt;n&gt;&gt;m;<br \/>for(int i=1;i&lt;=n;i++)&#160;&#160;&#160; <br \/>A[i][n+1]=A[i][i]=1,N[i]=i;&#160;&#160;&#160; <br \/>while(m&#8211;)<br \/>{<br \/>int s,t;cin&gt;&gt;s&gt;&gt;t;<br \/>A[s][t]=A[t][s]=1;<br \/>}<br \/>}<br \/>int Frees[maxn]={0},cnt=0;<br \/>bool Free[maxn]={0};<br \/>void solve()<br \/>{<br \/>int i,j;<br \/>for(i=1;i&lt;=n;i++)<br \/>{<br \/>for(j=i;j&lt;=n;j++)<br \/>if(A[i][j]) break;<br \/>if(j==n+1) continue;<br \/>swap(N[i],N[j]);&#160;&#160;&#160; <br \/>for(int k=1;k&lt;=n;k++)<br \/>swap(A[k][i],A[k][j]);<br \/>for(int j=1;j&lt;=n;j++) if(j!=i)<br \/>if(A[j][i])<br \/>for(int k=1;k&lt;=n+1;k++)<br \/>A[j][k]=A[j][k] xor A[i][k];<br \/>}<br \/>for(int i=1;i&lt;=n;i++)<br \/>if(A[i][i]==0)<br \/>Frees[cnt++]=N[i],Free[N[i]]=true;<br \/>}<br \/>int ans=~0U&gt;&gt;1;<br \/>int C[maxn]={0};<br \/>void dfs(int pos,int now)<br \/>{<br \/>if(now&gt;ans)<br \/>return;<br \/>if(pos==cnt)<br \/>{<br \/>for(int i=1;i&lt;=n;i++)<br \/>if(A[i][i])<br \/>{<br \/>C[N[i]]=0;<br \/>for(int j=1;j&lt;=n;j++)if(Free[N[j]]&amp;&amp;A[i][j])<br \/>C[N[i]]^=C[N[j]];<br \/>C[N[i]]^=A[i][n+1];<br \/>}<br \/>int t=count(C+1,C+n+1,1);&#160;&#160;&#160; &#160;&#160;&#160; <br \/>ans=min(ans,t);<br \/>return;<br \/>}<br \/>C[Frees[pos]]=0;dfs(pos+1,now);<br \/>C[Frees[pos]]=1;dfs(pos+1,now+1);<br \/>}<br \/>int main()<br \/>{<br \/>init();<br \/>solve();<br \/>dfs(0,0);<br \/>cout&lt;&lt;ans&lt;&lt;endl;<br \/>}<br \/>\/&#8230;..2&#8230;..\/<br \/>\u8d8a\u770b\u8d8a\u88f8\u7684\u7f51\u7edc\u6d41\u963f\u3002\u3002\u6ca1\u4ec0\u4e48\u8bdd\u8bf4\u3002\u3002\u3002<br \/>Code\u3002\u3002<br \/>\/*<br \/>PROG: cookie<br \/>LANG: C++<br \/>ID: Tom Chen<br \/>*\/<br \/>#include&lt;iostream&gt;<br \/>#include&lt;math.h&gt;<br \/>using namespace std;<br \/>const int maxn=1000+10,maxm=100+10,maxV=1500,inf=~0U&gt;&gt;2;<br \/>inline int Cow(int s){return s;}<br \/>inline int Group(int s){return maxn+s;}<br \/>struct edge<br \/>{<br \/>int t,c;<br \/>edge*next,*op;<br \/>edge(int t,int c,edge*n):t(t),c(c),next(n){}<br \/>}*E[maxV];<br \/>void addedge(int s,int t,int c)<br \/>{<br \/>E[s]=new edge(t,c,E[s]);<br \/>E[t]=new edge(s,0,E[t]);<br \/>E[s]-&gt;op=E[t];E[t]-&gt;op=E[s];<br \/>}<br \/>int H[maxV]={0};<br \/>double Can[maxn]={0};<br \/>int Num[maxm]={0},N,M,vs=0,vt=maxn+maxm,V;<br \/>void init();<br \/>void solve();<br \/>int MaxFlow();<br \/>void Impossible();<br \/>void Print();<br \/>void init()<br \/>{<br \/>freopen(&quot;cookie.in&quot;,&quot;r&quot;,stdin);<br \/>freopen(&quot;cookie.out&quot;,&quot;w&quot;,stdout);<br \/>cin&gt;&gt;N&gt;&gt;M;V=N+M+2;<br \/>for(int i=1;i&lt;=M;i++)<br \/>{<br \/>cin&gt;&gt;Num[i];int s;<br \/>for(int j=0;j&lt;Num[i];j++)<br \/>{<br \/>cin&gt;&gt;s;<br \/>addedge(Cow(s),Group(i),1);<br \/>Can[s]+=1\/(double)Num[i];<br \/>}<br \/>}<br \/>for(int i=1;i&lt;=N;i++)<br \/>addedge(vs,Cow(i),ceil(Can[i]));<br \/>for(int i=1;i&lt;=M;i++)<br \/>addedge(Group(i),vt,1);<br \/>}<br \/>int aug(int no,int m)<br \/>{<br \/>if(no==vt)<br \/>return m;<br \/>int l=m;<br \/>for(edge*i=E[no];i;i=i-&gt;next) if(i-&gt;c&amp;&amp;H[no]==H[i-&gt;t]+1)<br \/>{<br \/>int d=aug(i-&gt;t,min(i-&gt;c,l));<br \/>l-=d,i-&gt;c-=d,i-&gt;op-&gt;c+=d;<br \/>if(l==0||H[vs]&gt;=V) return m-l;<br \/>}<br \/>int minh=maxV;<br \/>for(edge*i=E[no];i;i=i-&gt;next) if(i-&gt;c&amp;&amp;H[i-&gt;t]&lt;minh)<br \/>minh=H[i-&gt;t]; <br \/>H[no]=minh+1;return m-l;&#160;&#160;&#160; <br \/>}<br \/>int MaxFlow()<br \/>{<br \/>int flow=0;<br \/>while(H[vs]&lt;V)<br \/>flow+=aug(vs,inf);<br \/>return flow;<br \/>}<br \/>void solve()<br \/>{<br \/>int t=MaxFlow();<br \/>if(t&lt;M)<br \/>Impossible();<br \/>else<br \/>Print();<br \/>}<br \/>void Impossible()<br \/>{<br \/>cout&lt;&lt;-1&lt;&lt;endl;<br \/>}<br \/>void Print()<br \/>{<br \/>for(int i=1;i&lt;=M;i++)<br \/>{<br \/>int t=Group(i);<br \/>for(edge*i=E[t];i;i=i-&gt;next)<br \/>if(i-&gt;t!=vt&amp;&amp;i-&gt;c)<br \/>{<br \/>cout&lt;&lt;i-&gt;t&lt;&lt;endl;<br \/>break;<br \/>}<br \/>}<br \/>}<br \/>int main()<br \/>{<br \/>init();<br \/>solve();<br \/>}<br \/>\/&#8230;.3&#8230;.\/<br \/>\u8fd9\u662f\u4e00\u9053\u9648\u9898\u963f\u3002\u300206\u5e74WY\u7684\u8bba\u6587\u6709\u63d0\u5230\u8fc7\u3002\u3002\u6211\u6070\u597d\u770b\u8fc7\u3002\u3002<br \/>\u53ef\u4ee5\u53bb\u770bWY\u7684\u8bba\u6587\u963f\u3002\u3002\u6211\u5c31\u4e0d\u8bf4\u4e86\u3002\u3002\u3002<br \/>Code\u3002\u3002\u3002<br \/>\/*<br \/>PROG: rescue<br \/>LANG: C++<br \/>ID: Tom Chen <br \/>*\/<br \/>#include&lt;iostream&gt;<br \/>using namespace std;<br \/>int n,m;<br \/>struct point<br \/>{<br \/>int i,j,x,y,z;<br \/>void read()<br \/>{<br \/>cin&gt;&gt;i&gt;&gt;j;<br \/>x=i;<br \/>y=i-j\/2;<br \/>z=(j+1)\/2;<br \/>}<br \/>void show()<br \/>{<br \/>cout&lt;&lt;i&lt;&lt;&quot; &quot;&lt;&lt;j&lt;&lt;endl;<br \/>}<br \/>int operator-(const point&amp;o) const<br \/>{return abs(x-o.x)+abs(y-o.y)+abs(z-o.z);}<br \/>};<br \/>int main()<br \/>{<br \/>freopen(&quot;rescue.in&quot;,&quot;r&quot;,stdin);<br \/>freopen(&quot;rescue.out&quot;,&quot;w&quot;,stdout);<br \/>cin&gt;&gt;n&gt;&gt;m;point now,ans;<br \/>now.read();int min=~0U&gt;&gt;1;<br \/>for(int i=0;i&lt;m;i++)<br \/>{<br \/>point out;out.read();<br \/>if(now-out&lt;min)<br \/>{<br \/>min=now-out;<br \/>ans=out;<br \/>}<br \/>}<br \/>ans.show();<br \/>cout&lt;&lt;min+1&lt;&lt;endl;<br \/>}<br \/>\/&#8230;\u603b\u7ed3&#8230;\/<br \/>1\u662f\u5f88\u57fa\u672c\u7684\u89e3\u65b9\u7a0b+\u679a\u4e3e\u3002\u3002USACO\u7684\u5206\u6790\u597d\u50cf\u662f\u679a\u4e3e\u7684\u3002\u3002\u6bd5\u7adfN\u592a\u5c0f\u4e86\u3002\u3002\u4f46\u662f\u4e0d\u4f1a\u9ad8\u65af\u6d88\u5143\u8fd8\u662f\u4e0d\u4f1a\u505a\u7684\u3002\u3002\u3002<br \/>2\u592a\u66b4\u529b\u7684\u7f51\u7edc\u6d41\u4e86\u3002\u3002\u3002<br \/>3\u6570\u5b66\u95ee\u9898\u3002\u3002WY\u7684\u8bba\u6587\u4e2d\u63d0\u8fc7\u3002\u3002\u5426\u5219\u6bd4\u8d5b\u7684\u65f6\u5019\u6211\u8fd8\u4e0d\u4e00\u5b9a\u505a\u7684\u51fa\u6765\u3002\u3002\u3002 <\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u3002\u3002\u3002\u9898\u76ee\u771f\u662f\u6bd4\u8f83\u6c34\u963f\u3002\u3002\u3002\u8fde\u6211\u90fd\u5f97\u4e861000\u3002\u3002\u3002&#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; 45384401 &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; &#8211; USACO NOV09 &#8211; &#8211; &#8211; &#8211; &#8211; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[10],"tags":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=\/wp\/v2\/posts\/17"}],"collection":[{"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=17"}],"version-history":[{"count":0,"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=\/wp\/v2\/posts\/17\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=17"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=17"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=17"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}