{"id":56,"date":"2009-12-26T12:40:00","date_gmt":"2009-12-26T04:40:00","guid":{"rendered":"http:\/\/localhost\/?p=56"},"modified":"2009-12-26T12:40:00","modified_gmt":"2009-12-26T04:40:00","slug":"pku_2008_individual_practice_1_2","status":"publish","type":"post","link":"https:\/\/www.shuizilong.com\/wjmzbmr\/?p=56","title":{"rendered":"PKU 2008 Individual Practice 1 (2)"},"content":{"rendered":"\n<p><strong>3615 Problem D<\/strong> <a href=\"http:\/\/acm.pku.edu.cn\/JudgeOnline\/problem?id=3615\">Cow Hurdles<br \/><\/a><\/p>\n<\/p>\n<p>\u5927\u610f\uff1a<\/p>\n<p>N\uff081&lt;=300\uff09\u4e2a\u9876\u70b9\u7684\u56fe\uff0c\u6709T\uff08&lt;=40000\uff09\u4e2a\u8be2\u95ee\uff0c<\/p>\n<p>\u6bcf\u6b21\u8be2\u95ee\u4eces\u5230e\u7684\u6240\u6709\u8def\u5f84\u4e2d\uff0c\u6700\u5927\u8fb9\u6700\u5c0f\u662f\u591a\u5c11\u3002\u3002<\/p>\n<p>\u5206\u6790\uff1a<\/p>\n<p>\u5f88\u660e\u663eN\u5f88\u5c0fT\u5f88\u5927\u66b4\u529b\u4e0d\u53ef\u884c\u3002\u3002<\/p>\n<p>\u4e8e\u662f\u60f3\u5230floyd\u3002\u3002\u53d1\u73b0\u6269\u5c55\u4e00\u4e0b\u6ca1\u6709\u95ee\u9898\uff0c\u4e0d\u8fc7\u662f\u6539\u6210\u4e86\u3002\u3002<\/p>\n<p>D[i,j]=min(D[i,j],max(D[i,k],D[k,j]) );\u800c\u5df2<\/p>\n<p>\u542f\u793a\uff1a<\/p>\n<p>\u5f88\u591a\u65f6\u5019floyd\u662f\u5f88\u6709\u7528\u7684\u3002\u3002<\/p>\n<p>Code\uff1a<\/p>\n<\/p>\n<p>#include&lt;iostream&gt;<br \/>#include&lt;cstdio&gt;<br \/>#include&lt;algorithm&gt;<br \/>#include&lt;cstring&gt;<br \/>using namespace std;<br \/>const int maxn=300,inf=~0U&gt;&gt;1;<br \/>int d[maxn][maxn];<br \/>int n,m,ti;<br \/>int main()<br \/>{<br \/> freopen(&quot;in&quot;,&quot;r&quot;,stdin);<br \/> cin&gt;&gt;n&gt;&gt;m&gt;&gt;ti;<br \/> for(int i=0;i&lt;n;i++)<br \/>  for(int j=0;j&lt;n;j++)<br \/>   d[i][j]=inf;<br \/> int s,t,c;<br \/> while(m&#8211;)<br \/> {<br \/>  scanf(&quot;%d %d %d&quot;,&amp;s,&amp;t,&amp;c);s&#8211;;t&#8211;;<br \/>  d[s][t]=min(d[s][t],c);<br \/> }<br \/> for(int k=n-1;k&gt;=0;k&#8211;)<br \/>  for(int i=n-1;i&gt;=0;i&#8211;)if(i!=k&amp;&amp;d[i][k]!=inf)<br \/>   for(int j=n-1;j&gt;=0;j&#8211;)<br \/>    d[i][j]=min(d[i][j],max(d[i][k],d[k][j]));<br \/> while(ti&#8211;)<br \/> {<br \/>  scanf(&quot;%d %d&quot;,&amp;s,&amp;t);s&#8211;;t&#8211;;<br \/> <a href=\"http:\/\/www.opengroup.org\/onlinepubs\/009695399\/functions\/printf.html\">printf<\/a>(&quot;%dn&quot;,(d[s][t]==inf?-1:d[s][t]));<br \/> }<br \/>}<\/p>\n<p><strong>3616 Problem E<\/strong> <a href=\"http:\/\/acm.pku.edu.cn\/JudgeOnline\/problem?id=3616\">Milking Time<\/a><\/p>\n<p>\u5927\u610f\uff1aM\u4e2a\u533a\u95f4\uff0c\u6bcf\u4e2a\u6709\u4e2a\u6548\u7387\u503c\uff0c\u53d6\u4e00\u4e9b\u533a\u95f4\uff0c\u8ba9\u6240\u6709\u533a\u95f4\u4e0d\u91cd\u53e0\u5e76\u524d\u76f8\u90bb\u7684\u4e24\u4e2a\u4e2d\u7a7a\u5f00R\u683c\u4ee5\u4e0a\u3002\u3002<\/p>\n<p>\u5206\u6790\uff1a\u8bbeP[n]\u4e3a\u6700\u540e\u4e00\u4e2a\u533a\u95f4\u5728n\u7ed3\u675f\u65f6\u6700\u5927\u6548\u7387\u548c\uff0c\u5219P[n]=max(P[k])(k&lt;=n-R)\u3002\u3002<\/p>\n<p>\u90a3\u4e48\u7528\u6570\u72b6\u6570\u7ec4\u7ef4\u62a4\u4e00\u4e0b\u5c31OK\u4e86\u3002\u3002<\/p>\n<p>\u542f\u793a\uff1a<\/p>\n<p>\u533a\u95f4\u95ee\u9898\u5982\u679c\u957f\u5ea6\u4e0d\u662f\u592a\u5927\u7684\u5316\u9b3c\u624d\u79bb\u6563\u5316\u3002\u3002\u3002<\/p>\n<p>Code\uff1a<\/p>\n<p>#include&lt;iostream&gt;<br \/>#include&lt;cstdio&gt;<br \/>#include&lt;algorithm&gt;<br \/>#include&lt;cstring&gt;<br \/>#include&lt;utility&gt;<br \/>#define low(x) (x&amp;(-x))<br \/>#define Renew(x,c) x=max(x,c)<br \/>using namespace std;<br \/>typedef pair&lt;int,int&gt; pi;<br \/>typedef pair&lt;pi,int&gt; inter;<br \/>const int maxn=1000000+100,maxm=1000+100,inf=~0U&gt;&gt;2;<br \/>int N,M,R,A[maxn];<br \/>int Max(int l)<br \/>{<br \/> int ans=0;<br \/> for(;l&gt;0;l-=low(l))  <br \/>  Renew(ans,A[l]);<br \/> return ans;<br \/>}<br \/>void Change(int l,int d)<br \/>{<br \/> for(;l&lt;=N;l+=low(l))<br \/>  Renew(A[l],d);<br \/>}<br \/>inter I[maxm];<br \/>void init()<br \/>{<br \/> cin&gt;&gt;N&gt;&gt;M&gt;&gt;R;N++;<br \/> for(int i=1;i&lt;=N;i++) A[i]=-inf;<br \/> int s,t,e;<br \/> for(int i=0;i&lt;M;i++)<br \/> {<br \/>  scanf(&quot;%d %d %d&quot;,&amp;s,&amp;t,&amp;e);<br \/>  I[i]=inter(pi(s,t),e);<br \/> }<br \/> sort(I,I+M);<br \/>}<br \/>void solve()<br \/>{<br \/> int ans=-inf,get;<br \/> for(inter*i=I;i!=I+M;i++)<br \/> {<br \/>  get=Max(i-&gt;first.first-R);<br \/>  get+=i-&gt;second;    <br \/>  Change(i-&gt;first.second,get);<br \/> }<br \/> ans=Max(N);<br \/> cout&lt;&lt;ans&lt;&lt;endl;<br \/>}<br \/>int main()<br \/>{<br \/> init();<br \/> solve();<br \/>}<\/p>\n<p><strong>3617 Problem F<\/strong> <a href=\"http:\/\/acm.pku.edu.cn\/JudgeOnline\/problem?id=3617\">Best Cow Line<\/a><\/p>\n<p>\u5927\u610f\uff1a<\/p>\n<p>\u957f\u5ea6\u4e3aN\u7684\u4e00\u4e32\u5b57\u7b26\uff0c\u6bcf\u6b21\u4ece\u4e24\u7aef\u53d6\u4e00\u4e2a\uff0c\u653e\u5165\u65b0\u7684\u5b57\u7b26\u4e32\u5c3e\u90e8\uff0c\u90a3\u4e48N\u6b21\u540e\u5b57\u7b26\u4e32\u5e8f\u6700\u5c0f\u7684\u5b57\u7b26\u4e32\u662f\u4ec0\u4e48\uff1f<\/p>\n<p>\u5206\u6790\uff1a<\/p>\n<p>\u5982\u679c\u4e24\u7aef\u4e0d\u4e00\u6837\u7684\u8bdd\u5c31\u53d6\u5c0f\u70b9\u7684\u3002\u3002\u5982\u679c\u4e00\u6837\u7684\u8bdd\u53ef\u4ee5\u5ffd\u7565\u770b\u518d\u91cc\u9762\u4e00\u4e2a\u4e48\uff1f<\/p>\n<p>\u4e0d\u662f\u5f88\u6e05\u695a\u4e3a\u4ec0\u4e48\u3002\u3002\u4e0d\u8fc7A\u6389\u4e86\u3002\u3002\u5c31\u662f\u8bf4\u5982\u679c\u5b57\u7b26\u4e32\u6b63\u8fc7\u6765\u770b\u6bd4\u8f83\u5c0f\uff0c\u5c31\u9009\u5de6\u8fb9\u7684\uff0c\u5982\u679c\u5012\u8fc7\u6765\u770b\u6bd4\u8f83\u5c0f\uff0c\u5c31\u9009\u53f3\u8fb9\u7684\u3002\u3002<\/p>\n<p>\u542f\u793a\uff1a<\/p>\n<p>\u76f4\u89c9\u963f\u3002\u3002\u4e0d\u8bc1\u660e\u3002\u3002<\/p>\n<p>Code\uff1a<\/p>\n<p>#include&lt;iostream&gt;<br \/>#include&lt;cstdio&gt;<br \/>#include&lt;algorithm&gt;<br \/>#include&lt;cstring&gt;<br \/>#include&lt;utility&gt;<br \/>#include&lt;cstdlib&gt;<br \/>#include&lt;string&gt;<br \/>using namespace std;<br \/>typedef string::iterator it;<br \/>typedef string::reverse_iterator rit;<br \/>const int maxn=2000;<br \/>int n,limit=5000000;<br \/>string a,ans;<br \/>bool cmp(it a,it b,rit c,rit d)<br \/>{<br \/> for(;a!=b;a++,c++)<br \/> {<br \/>  if(*a&lt;*c) return true;<br \/>  if(*a&gt;*c) return false;<br \/> }<br \/> return false;<br \/>}<br \/>int main()<br \/>{<br \/> scanf(&quot;%d&quot;,&amp;n);char c;<br \/> for(int i=0;i&lt;n;i++)<br \/>  scanf(&quot;n%c&quot;,&amp;c),a+=c;<br \/> it l=a.begin(),r=a.end();<br \/> rit rl=a.rbegin(),rr=a.rend(); <br \/> while(l!=r)<br \/> {<br \/>  if(cmp(l,r,rl,rr))<br \/>  {<br \/>   ans+=*l;<br \/>   l++;rr&#8211;;<br \/>  }<br \/>  else<br \/>  {  <br \/>   r&#8211;;rl++;<br \/>   ans+=*r;<br \/>  }<br \/> }<br \/> int now=0;<br \/> for(int i=0;i&lt;n;i++)<br \/> {<br \/>  now++;<br \/> <a href=\"http:\/\/www.opengroup.org\/onlinepubs\/009695399\/functions\/printf.html\">printf<\/a>(&quot;%c&quot;,ans[i]);<br \/>  if(now==80) <a href=\"http:\/\/www.opengroup.org\/onlinepubs\/009695399\/functions\/printf.html\">printf<\/a>(&quot;n&quot;),now=0;<br \/> }<br \/> if(now) <a href=\"http:\/\/www.opengroup.org\/onlinepubs\/009695399\/functions\/printf.html\">printf<\/a>(&quot;n&quot;);<br \/>}<\/p>\n<p><strong>3618 Problem G<\/strong> <a href=\"http:\/\/acm.pku.edu.cn\/JudgeOnline\/problem?id=3618\">Exploration<\/a><\/p>\n<p>\u6c34\u9898\u3002\u3002\u4e0d\u5206\u6790\u3002\u3002<\/p>\n<p>Code\uff1a<\/p>\n<p>#include&lt;iostream&gt;<br \/>#include&lt;cstdio&gt;<br \/>#include&lt;algorithm&gt;<br \/>#include&lt;cstring&gt;<br \/>#include&lt;utility&gt;<br \/>#include&lt;cstdlib&gt;<br \/>#include&lt;string&gt;<br \/>using namespace std;<br \/>const int maxn=50000;<br \/>typedef pair&lt;int,int&gt; pi;<br \/>inline int abs(int x){return x&gt;0?x:-x;}<br \/>int t,n,x;<br \/>pi X[maxn];<br \/>int main()<br \/>{<br \/> cin&gt;&gt;t&gt;&gt;n;<br \/> for(int i=0;i&lt;n;i++)<br \/> {<br \/>  scanf(&quot;%d&quot;,&amp;x);<br \/>  X[i]=pi(abs(x),x);<br \/> }<br \/> sort(X,X+n);int last=0;<br \/> for(int i=0;i&lt;n;i++)<br \/> {<br \/>  t-=abs(last-X[i].second);<br \/>  if(t&lt;0){cout&lt;&lt;i&lt;&lt;endl;return 0;} <br \/>  last=X[i].second;<br \/> }<br \/> cout&lt;&lt;n&lt;&lt;endl;<br \/>}<\/p>\n<p><strong>3619 Problem H<\/strong> <a href=\"http:\/\/acm.pku.edu.cn\/JudgeOnline\/problem?id=3619\">Speed Reading<\/a><\/p>\n<p>\u6c34\u9898\u3002\u3002\u76f4\u63a5\u6570\u5b66\u8ba1\u7b97\u3002\u3002<\/p>\n<p>Code\uff1a<\/p>\n<p>#include&lt;iostream&gt;<br \/>#include&lt;algorithm&gt;<br \/>#include&lt;cstring&gt;<br \/>#include&lt;utility&gt;<br \/>using namespace std;<br \/>const int maxk=1000;<br \/>int n,k;<br \/>int time(int s,int t,int r)<br \/>{<br \/> int p=n\/(s*t),ans;<br \/> if(p*s*t==n) <br \/>  return (p-1)*(t+r)+t;<br \/> ans=p*(t+r);<br \/> int e=n-p*s*t;<br \/> ans+=((e-1)\/s)+1;<br \/> return ans;<br \/>}<br \/>int main()<br \/>{<br \/> cin&gt;&gt;n&gt;&gt;k;<br \/> int s,t,r;<br \/> while(k&#8211;)<br \/> {<br \/>  cin&gt;&gt;s&gt;&gt;t&gt;&gt;r;<br \/>  cout&lt;&lt;time(s,t,r)&lt;&lt;endl;<br \/> }<br \/>}<\/p>\n<p><strong>3620 Problem I<\/strong> <a href=\"http:\/\/acm.pku.edu.cn\/JudgeOnline\/problem?id=3620\">Avoid The Lakes<\/a><\/p>\n<p>\u4e00\u4e2a\u7f51\u683c\u3002\u3002\u6c42\u6700\u5927\u7684\u8fde\u7eed\u7a7a\u683c\u5757\u7684\u5927\u5c0f<\/p>\n<p>\u76f4\u63a5DFS\u3002\u3002\u3002<\/p>\n<p>Code\uff1a<\/p>\n<p>#include&lt;iostream&gt;<br \/>#include&lt;algorithm&gt;<br \/>#include&lt;cstring&gt;<br \/>#include&lt;utility&gt;<br \/>#define Renew(x,c) x=max(x,c)<br \/>using namespace std;<br \/>const int maxn=100+10;<br \/>const int di[]={-1,0,1,0},dj[]={0,1,0,-1};<br \/>bool map[maxn][maxn]={0};<br \/>int n,m,k;<br \/>int dfs(int i,int j)<br \/>{<br \/> map[i][j]=false;int ans=1;<br \/> for(int ii,jj,d=0;d&lt;4;d++)<br \/> {<br \/>  ii=i+di[d];jj=j+dj[d];<br \/>  if(map[ii][jj])<br \/>   ans+=dfs(ii,jj);<br \/> }<br \/> return ans;<br \/>}<br \/>int main()<br \/>{ <br \/> freopen(&quot;in&quot;,&quot;r&quot;,stdin);<br \/> cin&gt;&gt;n&gt;&gt;m&gt;&gt;k;int s,t;<br \/> while(k&#8211;)<br \/> {<br \/>  cin&gt;&gt;s&gt;&gt;t;<br \/>  map[s][t]=true;  <br \/> }<br \/> int ans=0;<br \/> for(int i=1;i&lt;=n;i++)<br \/>  for(int j=1;j&lt;=m;j++)<br \/>   if(map[i][j])<br \/>    Renew(ans,dfs(i,j));<br \/> cout&lt;&lt;ans&lt;&lt;endl;<br \/>} <\/p>\n","protected":false},"excerpt":{"rendered":"<p>3615 Problem D Cow Hurdles \u5927\u610f\uff1a N\uff081&lt;=300\uff09\u4e2a\u9876\u70b9\u7684\u56fe\uff0c\u6709T\uff08&lt;=40000\uff09\u4e2a\u8be2\u95ee\uff0c \u6bcf\u6b21\u8be2\u95ee\u4eces\u5230e\u7684\u6240\u6709\u8def\u5f84\u4e2d\uff0c\u6700\u5927\u8fb9\u6700\u5c0f\u662f\u591a\u5c11\u3002\u3002 \u5206\u6790\uff1a \u5f88\u660e\u663eN\u5f88\u5c0fT\u5f88\u5927\u66b4\u529b\u4e0d\u53ef\u884c\u3002\u3002 \u4e8e\u662f\u60f3\u5230floyd\u3002\u3002\u53d1\u73b0\u6269\u5c55\u4e00\u4e0b\u6ca1\u6709\u95ee\u9898\uff0c\u4e0d\u8fc7\u662f\u6539\u6210\u4e86\u3002\u3002 D[i,j]=min(D[i,j],max(D[i,k],D[k,j]) );\u800c\u5df2 \u542f\u793a\uff1a \u5f88\u591a\u65f6\u5019floyd\u662f\u5f88\u6709\u7528\u7684\u3002\u3002 Code\uff1a #include&lt;iostream&gt;#include&lt;cstdio&gt;#include&lt;algorithm&gt;#include&lt;cstring&gt;using namespace std;const int maxn=300,inf=~0U&gt;&gt;1;int d[maxn][maxn];int n,m,ti;int main(){ freopen(&quot;in&quot;,&quot;r&quot;,stdin); cin&gt;&gt;n&gt;&gt;m&gt;&gt;ti; for(int i=0;i&lt;n;i++) for(int j=0;j&lt;n;j++) d[i][j]=inf; int s,t,c; while(m&#8211;) { scanf(&quot;%d %d %d&quot;,&amp;s,&amp;t,&amp;c);s&#8211;;t&#8211;; d[s][t]=min(d[s][t],c); } for(int k=n-1;k&gt;=0;k&#8211;) for(int i=n-1;i&gt;=0;i&#8211;)if(i!=k&amp;&amp;d[i][k]!=inf) for(int j=n-1;j&gt;=0;j&#8211;) d[i][j]=min(d[i][j],max(d[i][k],d[k][j])); while(ti&#8211;) { scanf(&quot;%d %d&quot;,&amp;s,&amp;t);s&#8211;;t&#8211;; printf(&quot;%dn&quot;,(d[s][t]==inf?-1:d[s][t])); }} 3616 Problem [&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\/56"}],"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=56"}],"version-history":[{"count":0,"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=\/wp\/v2\/posts\/56\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=56"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=56"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=56"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}