{"id":280,"date":"2011-12-04T09:23:59","date_gmt":"2011-12-04T09:23:59","guid":{"rendered":"http:\/\/sxkdz.0ginr.com\/blog\/?p=280"},"modified":"2011-12-04T09:25:45","modified_gmt":"2011-12-04T09:25:45","slug":"%e3%80%90%e8%bd%ac%e8%bd%bd%e3%80%91noip2011%e6%99%ae%e5%8f%8a%e7%bb%84%e9%a2%98%e8%a7%a3","status":"publish","type":"post","link":"https:\/\/sxkdz.0ginr.com\/blog\/?p=280","title":{"rendered":"\u3010\u8f6c\u8f7d\u3011NOIp2011\u666e\u53ca\u7ec4\u9898\u89e3"},"content":{"rendered":"<p>NOIP2011\u666e\u53ca\u7ec4\u89e3\u9898\u62a5\u544a<br \/>\n\u2014\u2014ahbbzeq 2011.11.25 \u8f6c\u8f7d\u8bf7\u6ce8\u660e\u6765\u6e90<br \/>\n\u4e00\u3001\u6570\u5b57\u53cd\u8f6c<br \/>\n\u6ca1\u5f97\u6ee1\u5206\u53ea\u80fd\u8bf4\u660e\u4e00\u4e2a\u95ee\u9898\uff0c\u4f60\u7684\u7a0b\u5e8f\u5199\u7684\u592a\u5c11\u4e86\u3002<br \/>\n[delphi]<br \/>\nprogram reverse;<br \/>\nvar<br \/>\n  s:string;<br \/>\n  i,sta:longint;<br \/>\nbegin<br \/>\n  assign(input,&#8217;reverse.in&#8217;);reset(input);<br \/>\n  assign(output,&#8217;reverse.out&#8217;);rewrite(output);<\/p>\n<p>  readln(i);<br \/>\n  str(i,s);<br \/>\n  sta:=1;<br \/>\n  if s[1]=&#8217;-&#8216;  then<br \/>\n    begin<br \/>\n      write(&#8216;-&#8216;);<br \/>\n      sta:=2;<br \/>\n    end;<br \/>\n  i:=length(s);<br \/>\n  while (s[i]=&#8217;0&#8217;) and (i>sta) do<br \/>\n    dec(i);<br \/>\n  while (i>=sta) do<br \/>\n    begin<br \/>\n      write(s[i]);<br \/>\n      dec(i);<br \/>\n    end;<\/p>\n<p>  close(input);close(output);<br \/>\nend.<br \/>\n[\/delphi]<\/p>\n<p>\u4e8c\u3001\u7edf\u8ba1\u5355\u8bcd\u4e2a\u6570<br \/>\n\u8003\u4f60\u7684\u57fa\u672c\u529f\uff0c\u548c\u5bf9\u7a0b\u5e8f\u7684\u7406\u89e3\uff0c\u5c24\u5176\u662f\u7ec6\u8282\u4e0a\u7684\u4f18\u5316\u3002\u76f4\u63a5\u5728\u6587\u7ae0\u4e2d\u9009\u51fa\u5355\u8bcd\uff0c\u4e0e\u7ed9\u5b9a\u5355\u8bcd\u957f\u5ea6\u4e00\u81f4\u65f6\u624d\u6bd4\u8f83\uff0c\u51fd\u6570\u4f20\u53c2\u6570\u65f6\u4e5f\u4e0d\u8981\u4f20\u5b57\u7b26\u4e32\uff08\u4f1a\u5f88\u6162\u7684\uff0c\u5177\u4f53\u6162\u591a\u5c11\u6ca1\u8bd5\uff09\u3002<br \/>\n[delphi]<br \/>\nprogram stat;<br \/>\nvar<br \/>\n  s,p:ansistring;<br \/>\n  i,j,first,num,len,c,k:longint;<\/p>\n<p>function cmp(x:longint):boolean;<br \/>\n  var<br \/>\n    i:longint;<br \/>\n  begin<br \/>\n    for i:= 1 to  c do<br \/>\n       if s[i]<> p[x+i-1] then exit(false);<br \/>\n    exit(true);<br \/>\n  end;<br \/>\nbegin<br \/>\n  assign(input,&#8217;stat.in&#8217;);reset(input);<br \/>\n  assign(output,&#8217;stat.out&#8217;);rewrite(output);<\/p>\n<p>  readln(s);readln(p);<br \/>\n  s:=upcase(s);p:=upcase(p);<br \/>\n  c:=length(s);  len:=length(p);<br \/>\n  i:=1;     num:=0;  first:=-1;<br \/>\n  while (s[i]=&#8217; &#8216;)and (i<=len) do inc(i);\n  while (i<=len) do\n    begin\n      j:=i+1;\n      while (p[j]<>&#8216; &#8216;) and (j<=len) do\n        inc(j);\n      if (j-i = c) and cmp(i) then\n        begin\n          if first=-1 then first:=i;\n          inc(num);\n        end;\n      i:=j;  while (p[i]=' ') and (i<=len) do inc(i);\n    end;\n  if first=-1 then\n    writeln(-1)\n  else writeln(num,' ',first-1);\n \n  close(input);close(output);\nend.\n[\/delphi]\n \n\u4e09\u3001\u745e\u58eb\u8f6e\n\u5b9e\u8df5\u8bc1\u660e\uff0c\u5982\u679c\u5355\u7eaf\u7684\u6392\u5e8fr\u6b21\uff0c\u5fc5\u7136\u7ed3\u679c\u662f\u8d85\u65f6\u3002\u4e8b\u5b9e\u4e0a\u53ea\u9700\u4e00\u6b21\u771f\u6b63\u610f\u4e49\u4e0a\u7684\u6392\u5e8f\u4ee5\u540e\uff0c\u5728\u4ee5\u540e\u7684\u6bd4\u8d5b\u4e2d\uff0c\u6309\u539f\u987a\u5e8f\u5206\u6210\u4e24\u7ec4\uff0c\u83b7\u80dc\u7ec4\u548c\u5931\u8d25\u7ec4\uff0c\u8fd9\u4e24\u7ec4\u4f9d\u7136\u662f\u6709\u5e8f\u7684\uff0c\u518d\u628a\u8fd9\u4e24\u7ec4\u5f52\u5e76\u6210\u4e00\u7ec4\uff0c\u5c31\u53ef\u4ee5\u4e86\u3002\u603b\u65f6\u95f4\u590d\u6742\u5ea6O\uff08N*R\uff09\u3002  \u4e3a\u4e86\u65b9\u4fbf\u5f52\u5e76\uff0c\u4e0b\u9762\u7684\u6570\u7ec4\u91c7\u7528\u4e86\u6eda\u52a8\u6570\u7ec4\u3002\n[delphi]\nprogram swiss_merger;\n\nvar\n  n,r,q,i,j,k,c,pwin,plose:longint;\n  s,w,t:array[1..200050] of longint;\n  id:array[0..1,1..200050] of longint;\n \nprocedure qsort(n,m:longint);\n  var\n    i,j,k,t:longint;\n \n  begin\n    i:=n;j:=m;  k:= id[0,(n+m)div 2];\n    repeat\n      while (s[id[0,i]] > s[k]) or (s[id[0,i]]=s[k]) and (id[0,i]<k) do inc(i);\n      while (s[id[0,j]] < s[k]) or (s[id[0,j]]=s[k]) and (id[0,j]>k) do dec(j);<br \/>\n      if i<=j then\n        begin\n          t:=id[0,i]; id[0,i]:=id[0,j];id[0,j]:=t;\n          inc(i); dec(j);\n        end;\n    until i>j;<br \/>\n    if n<j then qsort(n,j);\n    if i<m then qsort(i,m);\n  end;\n \nbegin\n  assign(input,'swiss.in');reset(input);\n  assign(output,'swiss.out');rewrite(output);\n  readln(n,r,q);\n  for i:= 1 to n*2 do\n    begin\n      id[0,i]:=i;\n      read(s[i]);\n    end;\n  for i:= 1 to n*2 do\n    read(w[i]);\n  qsort(1,2*n);\n  c:=0;\n  for i:= 1 to  r do\n     begin\n \n       for j:= 1 to n do\n         if w[id[c,j*2-1]]<w[id[c,j*2]] then\n             begin\n               inc(s[id[c,j*2]]);\n               k:=id[c,j*2-1];  id[c,j*2-1]:=id[c,j*2]; id[c,j*2]:=k;\n             end\n          else inc(s[id[c,j*2-1]]);\n       c:=1-c;  pwin:=1;  plose:=2;\n       for j:= 1 to n*2 do\n         if (pwin<=2*n) and (  ( s[ id[1-c,pwin] ] > s[ id[1-c,plose] ]) or (s[id[1-c,pwin]] = s[ id[1-c,plose] ] ) and ( id[1-c,pwin]< id[1-c,plose] ) ) then\n            begin\n              id[c,j]:=id[1-c,pwin];\n              inc(pwin,2);\n            end\n         else\n            begin\n              id[c,j]:=id[1-c,plose];\n              inc(plose,2);\n            end;\n     end;\n  writeln(id[c,q]);\n  close(input);close(output);\nend.\n[\/delphi]\n\n\u56db\u3001\u8868\u8fbe\u5f0f\u7684\u503c\n\u7b97\u6cd5\u7c7b\u4f3c\u4e8e\u8868\u8fbe\u5f0f\u8ba1\u7b97\uff0c\u4e00\u4e2a\u7b26\u53f7\u6808\uff0c\u4e24\u4e2a\u6570\u636e\u6808\u3002\u8bb0f(s,0)\u8868\u793a\u8868\u8fbe\u5f0fs\u4e3a0\u7684\u65b9\u6848\u6570\uff0cf(s,1)\u8868\u793a\u8868\u8fbe\u5f0fs\u4e3a1\u7684\u65b9\u6848\u6570\u3002f(a+b,0) = f(a,0)*f(b,0) \uff0cf(a+b,1) = f(a,0)*f(b,0)+f(a,0)*f(b,1)+f(a,1)*f(b,0)  , f(a*b,0)=f(a,0)*f(b,0) + f(a,1)*f(b,0) + f(a,0)*f(b,1) , f(a*b,1) = f(a,1) * f(b,1)\n[delphi]\nprogram exp;\nconst\n  maxn= 100010;\n  op:array[1..4] of char = ('(','+','*',')');\n  \/\/                                   (  +  *  )\n  flag:array[1..4,1..4] of char = (\n                                { ( } ('<','<','<','='),\n                                { + } ('<','>&#8216;,&#8217;<','>&#8216;),<br \/>\n                                { * } (&#8216;<','>&#8216;,&#8217;>&#8217;,&#8217;>&#8217;),<br \/>\n                                { ) } (&#8216;>&#8217;,&#8217;>&#8217;,&#8217;>&#8217;,&#8217;>&#8217;));<br \/>\nvar<br \/>\n  stack_op:array[1..maxn] of char;<br \/>\n  stack_data0,stack_data1:array[1..maxn] of longint;<br \/>\n  n,top_op,top_data,i,len:longint;<br \/>\n  a0,a1,b0,b1,t0,t1:longint;<br \/>\n  s:ansistring;<br \/>\n  ch,now:char;<br \/>\nprocedure push_op(ch:char);<br \/>\n  begin<br \/>\n    inc(top_op);<br \/>\n    stack_op[top_op]:=ch;<br \/>\n  end;<br \/>\nfunction pop_op:char;<br \/>\n  begin<br \/>\n    pop_op:= stack_op[top_op];<br \/>\n    dec(top_op);<br \/>\n  end;<br \/>\nfunction gettop:char;<br \/>\n  begin<br \/>\n    gettop:=stack_op[top_op];<br \/>\n  end;<br \/>\nprocedure push_data(a0,a1:longint);<br \/>\n  begin<br \/>\n    inc(top_data);<br \/>\n    stack_data0[top_data]:=a0;<br \/>\n    stack_data1[top_data]:=a1;<br \/>\n  end;<br \/>\nprocedure pop_data(var  a0,a1:longint);<br \/>\n  begin<br \/>\n    a0:=stack_data0[top_data];<br \/>\n    a1:=stack_data1[top_data];<br \/>\n    dec(top_data);<br \/>\n  end;<br \/>\nfunction find(ch:char):integer;<br \/>\n  var<br \/>\n     i:longint;<br \/>\n  begin<br \/>\n    for i:= 1 to 4 do<br \/>\n      if op[i]=ch then exit(i);<br \/>\n  end;<br \/>\nbegin<br \/>\n  assign(input,&#8217;exp.in&#8217;);reset(input);<br \/>\n  assign(output,&#8217;exp.out&#8217;);rewrite(output);<br \/>\n  top_op:=0;  top_data:=0;<br \/>\n  push_op(&#8216;(&#8216;);  push_data(1,1);<br \/>\n  readln(n);<br \/>\n  readln(s);  s:=s+&#8217;)&#8217;;<br \/>\n  len:=length(s);<br \/>\n  i:=1;<br \/>\n  while i<=len do\n    begin\n      if i=22 then\n        readln;\n      case flag[find(gettop),find(s[i])] of\n\/\/        begin\n          '<': begin push_op(s[i]); if (s[i]<>&#8216;(&#8216;) then push_data(1,1); inc(i); end;<br \/>\n          &#8216;=&#8217;: begin now:=pop_op; inc(i); end;<br \/>\n          &#8216;>&#8217;: begin<br \/>\n                 pop_data(a0,a1);  pop_data(b0,b1);<br \/>\n                 now:=pop_op;<br \/>\n                 if now=&#8217;+&#8217; then<br \/>\n                   begin<br \/>\n                     t0:=  (a0*b0) mod 10007;<br \/>\n                     t1:=  ( (a0*b1) mod 10007  +(a1*b1) mod 10007 +  (a1*b0) mod 10007) mod 10007;<br \/>\n                     push_data(t0,t1);<br \/>\n                   end<br \/>\n                 else<br \/>\n                   begin<br \/>\n                     t0:= ( (a0*b1) mod 10007 + (a1*b0) mod 10007 + (a0 * b0) mod 10007 ) mod 10007;<br \/>\n                     t1:= (a1*b1) mod 10007;<br \/>\n                     push_data(t0,t1);<br \/>\n                   end;<br \/>\n               end;<br \/>\n       end;<br \/>\n    end;<br \/>\n  writeln(stack_data0[top_data]);<br \/>\n  close(input); close(output);<br \/>\nend.<br \/>\n[\/delphi]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>NOIP2011\u666e\u53ca\u7ec4\u89e3\u9898\u62a5\u544a \u2014\u2014ahbbzeq 2011.11.25 \u8f6c\u8f7d\u8bf7\u6ce8\u660e\u6765\u6e90 \u4e00\u3001\u6570\u5b57\u53cd\u8f6c \u6ca1\u5f97\u6ee1\u5206\u53ea\u80fd\u8bf4\u660e\u4e00\u4e2a\u95ee\u9898\uff0c\u4f60\u7684\u7a0b\u5e8f\u5199\u7684\u592a\u5c11\u4e86\u3002 [delphi] program reverse; var s:string; i,sta:longint; begin assign(input,&#8217;reverse.in&#8217;);reset(input); assign(output,&#8217;reverse.out&#8217;);rewrite(output); readln(i); str(i,s); sta:=1; if s[1]=&#8217;-&#8216; then begin write(&#8216;-&#8216;); sta:=2; end; i:=length(s); while (s[i]=&#8217;0&#8217;) and (i>sta) do dec(i); while (i>=sta) do begin write(s[i]); dec(i); end; close(input);close(output); end. [\/delphi] \u4e8c\u3001\u7edf\u8ba1\u5355\u8bcd\u4e2a\u6570 \u8003\u4f60\u7684\u57fa\u672c\u529f\uff0c\u548c\u5bf9\u7a0b\u5e8f\u7684\u7406\u89e3\uff0c\u5c24\u5176\u662f\u7ec6\u8282\u4e0a\u7684\u4f18\u5316\u3002\u76f4\u63a5\u5728\u6587\u7ae0\u4e2d\u9009\u51fa\u5355\u8bcd\uff0c\u4e0e\u7ed9\u5b9a\u5355\u8bcd\u957f\u5ea6\u4e00\u81f4\u65f6\u624d\u6bd4\u8f83\uff0c\u51fd\u6570\u4f20\u53c2\u6570\u65f6\u4e5f\u4e0d\u8981\u4f20\u5b57\u7b26\u4e32\uff08\u4f1a\u5f88\u6162\u7684\uff0c\u5177\u4f53\u6162\u591a\u5c11\u6ca1\u8bd5\uff09\u3002 [delphi] program stat; var s,p:ansistring; i,j,first,num,len,c,k:longint; function cmp(x:longint):boolean; var i:longint; begin [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,3],"tags":[51,52,35,5],"class_list":["post-280","post","type-post","status-publish","format-standard","hentry","category-1","category-3","tag-noip2011","tag-noip","tag-oi","tag-5"],"_links":{"self":[{"href":"https:\/\/sxkdz.0ginr.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/280","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sxkdz.0ginr.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sxkdz.0ginr.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sxkdz.0ginr.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sxkdz.0ginr.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=280"}],"version-history":[{"count":2,"href":"https:\/\/sxkdz.0ginr.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/280\/revisions"}],"predecessor-version":[{"id":282,"href":"https:\/\/sxkdz.0ginr.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/280\/revisions\/282"}],"wp:attachment":[{"href":"https:\/\/sxkdz.0ginr.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=280"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sxkdz.0ginr.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=280"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sxkdz.0ginr.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=280"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}