{"id":25,"date":"2009-11-14T19:31:00","date_gmt":"2009-11-14T11:31:00","guid":{"rendered":"http:\/\/localhost\/?p=25"},"modified":"2009-11-14T19:31:00","modified_gmt":"2009-11-14T11:31:00","slug":"the_sgu_347-357_part_2","status":"publish","type":"post","link":"https:\/\/www.shuizilong.com\/wjmzbmr\/?p=25","title":{"rendered":"sgu 347-357 \u90e8\u5206\uff082\uff09"},"content":{"rendered":"<p> 356\u3002\u3002\u3002<br \/>\u5b9e\u9645\u4e0a\u6c42\u7684\u5c31\u662fN\u7684\u6392\u5217\u4e2d\u591a\u5c11\u4e2a\u6392\u5217\u53ea\u6709K\u4e2a\u4e0d\u5728\u4f4d\u7f6e\u4e0a\u3002\u3002<br \/>\u90a3\u4e48\u7b54\u6848\u5c31\u662fC(N,K)*D(N-K)\u3002\u3002D\u662f\u9519\u6392\u3002\u3002\u9519\u6392\u4e0d\u77e5\u9053\u8005\u53ef\u4ee5google\u4e4b\u3002\u3002<br \/>\u4f46\u662f\u9ad8\u7cbe\u5341\u5206BT\u3002\u3002\u5b9e\u9645\u4e0a\u6211\u600e\u4e48\u4f1a\u6ca1\u65f6\u95f4\u5199\u6a21\u62df\u9898\u5462\uff1f\u90fd\u662f\u683d\u5728\u8fd9\u9898\u4e0a\u4e86\u3002\u3002555<br \/>\u4e0d\u8fc7\u603b\u7b97\u662f\u5728\u6bd4\u8d5b\u7ed3\u675f\u524d\u8fc7\u4e86\u3002\u3002<br \/>\u7531\u4e8e\u8f93\u51fa\u5c45\u7136\u662f\u8981\u7528\u4e0d\u53ef\u7ea6\u5206\u6570\u3002\u3002\u83ab\u975e\u8981\u5199\u4e00\u4e2a\u9ad8\u7cbe\u5ea6\u6b27\u51e0\u91cc\u5f97\u7b97\u6cd5\u5417\uff1f\u5929\u963f\u3002\u3002<br \/>\u5982\u679c\u4f60\u771f\u53bb\u5199\u90a3\u4f60\u5c31\u50bb\u4e86\u3002\u3002\u3002<br \/>\u7b54\u6848\u662fD(n-k)\/((n-k)!(k)!)<br \/>\u6362\u53e5\u8bdd\u8bf4\u516c\u7ea6\u6570\u7684\u7d20\u56e0\u5b50\u300a\uff1d100\u3002\u3002\u3002<br \/>\u90a3\u4e48\u4e00\u4e2a\u4e2a\u5316\u5c31OK\u4e86\u3002\u3002<br \/>\u4e0d\u8fc7\u7a0b\u5e8f\u8fd8\u662f\u5f88\u957f\u3002\u3002\u597d\u7fa1\u6155JAVA\u963f\u3002\u3002\u81ea\u5e26\u9ad8\u7cbe\u5ea6\u8fd0\u7b97\u529f\u80fd\u7684\u3002\u3002<br \/>#include&lt;iostream&gt;<br \/>#include&lt;cstring&gt;<br \/>#define REP(i,n) for(int i=0;i&lt;n;i++)<br \/>using namespace std;<br \/>const int maxn=110;<br \/>int Prime[]=<br \/>{2,3,5,7,11,<br \/> 13,17,19,23,29<br \/>,31,37,41,43,47<br \/>,53,59,61,67,71<br \/>,73,79,83,89,97};<br \/>const int ps=25;<br \/>int N,K;<br \/>struct Num<br \/>{<br \/> int P;<br \/> Num(){memset(P,0,sizeof(P));}<br \/> void mult(int a)<br \/> {<br \/>  for(int i=0;i&lt;ps;i++)<br \/>  {<br \/>   if(a==1) break;<br \/>   while(a%Prime[i]==0)<br \/>    a\/=Prime[i],P[i]++;<br \/>  }<br \/> } <br \/> void divide(int a)<br \/> {<br \/>  for(int i=0;i&lt;ps;i++)<br \/>  {<br \/>   if(a==1) break;<br \/>   while(a%Prime[i]==0)<br \/>    a\/=Prime[i],P[i]&#8211;;<br \/>  }<br \/> }  <br \/>};<br \/>const int maxlen=200;<br \/>struct BigNum<br \/>{<br \/> int Q[maxlen],last;<br \/> BigNum(int x=0)<br \/> {memset(Q,0,sizeof(Q));Q[0]=x;last=0;}<br \/> int operator[](int v) const<br \/> {return Q[v];}<br \/> int&amp; operator[](int v)<br \/> {return Q[v];}<br \/> BigNum operator+(const BigNum&amp;x)  <br \/> {<br \/>  BigNum now;now.last=max(last,x.last);<br \/>  int d=0;<br \/>  for(int i=0;i&lt;=now.last;i++)<br \/>  {<br \/>   d+=Q[i]+x[i];<br \/>   now[i]=d%10;<br \/>   d\/=10;<br \/>  }<br \/>  while(d)<br \/>  {<br \/>   now[++now.last]=d%10;<br \/>   d\/=10;<br \/>  }<br \/>  return now;<br \/> }<br \/> void operator*=(int x)<br \/> {<br \/>  int d=0;<br \/>  for(int i=0;i&lt;=last;i++)<br \/>  {<br \/>   d+=Q[i]*x;<br \/>   Q[i]=d%10;<br \/>   d\/=10;<br \/>  }<br \/>  while(d&gt;0)<br \/>  {<br \/>   Q[++last]=d%10;<br \/>   d\/=10;<br \/>  }<br \/> }<br \/> BigNum operator*(const BigNum&amp;x)<br \/> {<br \/>  BigNum now;now.last=x.last+last;<br \/>  memset(now.Q,0,sizeof(Q));<br \/>  for(int i=0;i&lt;=last;i++)<br \/>   for(int j=0;j&lt;=x.last;j++)<br \/>    now[i+j]+=Q[i]*x[j];<br \/>  int d=0;<br \/>  for(int i=0;i&lt;=now.last;i++)<br \/>  {<br \/>   d+=now[i];<br \/>   now[i]=d%10;<br \/>   d\/=10;<br \/>  }<br \/>  while(d)<br \/>  {<br \/>   now[++now.last]=d%10;<br \/>   d\/=10;<br \/>  }<br \/> }<br \/> int Mod(int x)<br \/> {<br \/>  int d=0;<br \/>  for(int i=last;i&gt;=0;i&#8211;)<br \/>  {<br \/>   d*=10;<br \/>   d+=Q[i];<br \/>   d%=x;<br \/>  }<br \/>  return d;<br \/> }<br \/> void Divide(int x)<br \/> {<br \/>  int rest=0;<br \/>  for(int i=last;i&gt;=0;i&#8211;)<br \/>  {<br \/>   rest=rest*10+Q[i];<br \/>   Q[i]=rest\/x;<br \/>   rest%=x;<br \/>  }<br \/>  while(Q[last]==0)<br \/>   last&#8211;;<br \/> }<br \/> void operator=(const BigNum&amp;x)<br \/> {<br \/>  last=x.last;<br \/>  memmove(Q,x.Q,sizeof(Q));<br \/> }<br \/> void show()<br \/> {<br \/>  for(int i=last;i&gt;=0;i&#8211;)<br \/>   cout&lt;&lt;Q[i];<br \/> }<br \/>};<br \/>BigNum Get(Num x)<br \/>{<br \/> BigNum now(1);<br \/> for(int i=0;i&lt;ps;i++)<br \/> {<br \/>  for(int j=0;j&lt;x.P[i];j++)  <br \/>   now*=Prime[i];<br \/> }<br \/> return now;<br \/>}<br \/>BigNum D[maxn];<br \/>void CalD(int n)<br \/>{<br \/> D[0][0]=1;D[1][0]=0;<br \/> for(int i=2;i&lt;=n;i++)<br \/> {<br \/>  D[i]=D[i-1]+D[i-2];<br \/>  D[i]*=(i-1);<br \/> }<br \/>}<br \/>Num C;<br \/>int main()<br \/>{<br \/> cin&gt;&gt;K&gt;&gt;N;<br \/> if(N-K==1)<br \/> {<br \/>  cout&lt;&lt;0&lt;&lt;endl;<br \/>  return 0;<br \/> }<br \/> CalD(N-K);<br \/> for(int i=1;i&lt;=K;i++)<br \/>  C.mult(i);<br \/> for(int i=1;i&lt;=N-K;i++)<br \/>  C.mult(i);<br \/> BigNum left,right;<br \/> left=D[N-K];<br \/> for(int i=0;i&lt;ps;i++)<br \/> {<br \/>  while(left.Mod(Prime[i])==0&amp;&amp;C.P[i]&gt;0)<br \/>   left.Divide(Prime[i]),C.P[i]&#8211;;<br \/> }<br \/> right=Get(C);<br \/> left.show();cout&lt;&lt;&quot;\/&quot;;right.show();<br \/>}<br \/>357\u3002\u3002\u3002\u597d\u65e0\u804a\u7684\u6c34\u9898\u963f\u3002\u3002\u8981\u662f\u80fd\u8df3\u660e\u663e\u4e00\u5f00\u59cb\u5c31\u8df3\u3002\u3002<br \/>\u7136\u540e\u679a\u4e3e\u6bcf\u4e2a\u5f00\u59cbUP or DOWN\u7684\u70b9\u7b97\u7b54\u6848\u3002\u3002\u3002<br \/>Code\u3002\u3002\u3002<br \/>#include&lt;iostream&gt;<br \/>#define REP(i,n) for(int i=0;i&lt;n;i++)<br \/>using namespace std;<br \/>const int inf=~0U&gt;&gt;2;<br \/>bool Digit[10]={0};<br \/>bool UP,DOWN,FLY;<br \/>int dist[100],s,t;<br \/>void init()<br \/>{<br \/> cin&gt;&gt;Digit[1]&gt;&gt;Digit[2]&gt;&gt;Digit[3]&gt;&gt;UP&gt;&gt;<br \/>  Digit[4]&gt;&gt;Digit[5]&gt;&gt;Digit[6]&gt;&gt;DOWN&gt;&gt;<br \/>  Digit[7]&gt;&gt;Digit[8]&gt;&gt;Digit[9]&gt;&gt;FLY&gt;&gt;Digit[0];<br \/>}<br \/>void renew(int&amp;x,int c)<br \/>{<br \/> x=min(x,c);<br \/>}<br \/>void Fly()<br \/>{<br \/> for(int i=0;i&lt;10;i++)<br \/>  for(int j=0;j&lt;10;j++)<br \/>   if(Digit[i]&amp;&amp;Digit[j])<br \/>    renew(dist[i*10+j],3);<br \/>}<br \/>void Go(int j)<br \/>{<br \/> int c=dist[j];<br \/> if(UP)<br \/>  renew(dist[(j+1)%100],c+1);<br \/> if(DOWN)<br \/>  renew(dist[(j+99)%100],c+1);<br \/>}<br \/>int main()<br \/>{<br \/> init();cin&gt;&gt;s&gt;&gt;t;<br \/> REP(i,100) dist[i]=inf;<br \/> dist[s]=0;<br \/> if(FLY)<br \/>  Fly(); <br \/> for(int i=0;i&lt;10;i++)<br \/>  if(Digit[i])<br \/>   renew(dist[i],1);<br \/> int ans=dist[t];<br \/> for(int i=0;i&lt;100;i++)<br \/>  if(dist[i]!=inf)<br \/> {<br \/>  if(UP)<br \/>   renew(ans,(t-i+100)%100+dist[i]);<br \/>  if(DOWN)<br \/>   renew(ans,(i-t+100)%100+dist[i]);<br \/> }<br \/> if(ans==inf)<br \/>  cout&lt;&lt;-1&lt;&lt;endl;<br \/> else<br \/>  cout&lt;&lt;ans&lt;&lt;endl;<br \/>} <\/p>\n","protected":false},"excerpt":{"rendered":"<p>356\u3002\u3002\u3002\u5b9e\u9645\u4e0a\u6c42\u7684\u5c31\u662fN\u7684\u6392\u5217\u4e2d\u591a\u5c11\u4e2a\u6392\u5217\u53ea\u6709K\u4e2a\u4e0d\u5728\u4f4d\u7f6e\u4e0a\u3002\u3002\u90a3\u4e48\u7b54\u6848\u5c31\u662fC(N,K)*D(N-K)\u3002\u3002D\u662f\u9519\u6392\u3002\u3002\u9519\u6392\u4e0d\u77e5\u9053\u8005\u53ef\u4ee5google\u4e4b\u3002\u3002\u4f46\u662f\u9ad8\u7cbe\u5341\u5206BT\u3002\u3002\u5b9e\u9645\u4e0a\u6211\u600e\u4e48\u4f1a\u6ca1\u65f6\u95f4\u5199\u6a21\u62df\u9898\u5462\uff1f\u90fd\u662f\u683d\u5728\u8fd9\u9898\u4e0a\u4e86\u3002\u3002555\u4e0d\u8fc7\u603b\u7b97\u662f\u5728\u6bd4\u8d5b\u7ed3\u675f\u524d\u8fc7\u4e86\u3002\u3002\u7531\u4e8e\u8f93\u51fa\u5c45\u7136\u662f\u8981\u7528\u4e0d\u53ef\u7ea6\u5206\u6570\u3002\u3002\u83ab\u975e\u8981\u5199\u4e00\u4e2a\u9ad8\u7cbe\u5ea6\u6b27\u51e0\u91cc\u5f97\u7b97\u6cd5\u5417\uff1f\u5929\u963f\u3002\u3002\u5982\u679c\u4f60\u771f\u53bb\u5199\u90a3\u4f60\u5c31\u50bb\u4e86\u3002\u3002\u3002\u7b54\u6848\u662fD(n-k)\/((n-k)!(k)!)\u6362\u53e5\u8bdd\u8bf4\u516c\u7ea6\u6570\u7684\u7d20\u56e0\u5b50\u300a\uff1d100\u3002\u3002\u3002\u90a3\u4e48\u4e00\u4e2a\u4e2a\u5316\u5c31OK\u4e86\u3002\u3002\u4e0d\u8fc7\u7a0b\u5e8f\u8fd8\u662f\u5f88\u957f\u3002\u3002\u597d\u7fa1\u6155JAVA\u963f\u3002\u3002\u81ea\u5e26\u9ad8\u7cbe\u5ea6\u8fd0\u7b97\u529f\u80fd\u7684\u3002\u3002#include&lt;iostream&gt;#include&lt;cstring&gt;#define REP(i,n) for(int i=0;i&lt;n;i++)using namespace std;const int maxn=110;int Prime[]={2,3,5,7,11, 13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97};const int ps=25;int N,K;struct Num{ int P; Num(){memset(P,0,sizeof(P));} void mult(int a) { for(int i=0;i&lt;ps;i++) { if(a==1) break; while(a%Prime[i]==0) a\/=Prime[i],P[i]++; } } void divide(int a) { for(int i=0;i&lt;ps;i++) { if(a==1) break; while(a%Prime[i]==0) a\/=Prime[i],P[i]&#8211;; } } };const int maxlen=200;struct BigNum{ int Q[maxlen],last; BigNum(int x=0) {memset(Q,0,sizeof(Q));Q[0]=x;last=0;} int operator[](int v) [&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\/25"}],"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=25"}],"version-history":[{"count":0,"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=\/wp\/v2\/posts\/25\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=25"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=25"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=25"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}