??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品无码专区久久同性男,国产精品久久波多野结衣,99久久精品九九亚洲精品http://m.shnenglu.com/yzhw/江苏大学zh-cnMon, 30 Jun 2025 05:39:41 GMTMon, 30 Jun 2025 05:39:41 GMT60pku3908 q查集的一点小变?/title><link>http://m.shnenglu.com/yzhw/archive/2012/02/22/166244.html</link><dc:creator>yzhw</dc:creator><author>yzhw</author><pubDate>Wed, 22 Feb 2012 07:58:00 GMT</pubDate><guid>http://m.shnenglu.com/yzhw/archive/2012/02/22/166244.html</guid><wfw:comment>http://m.shnenglu.com/yzhw/comments/166244.html</wfw:comment><comments>http://m.shnenglu.com/yzhw/archive/2012/02/22/166244.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/yzhw/comments/commentRss/166244.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/yzhw/services/trackbacks/166244.html</trackback:ping><description><![CDATA[题目大意q样Q给Z些节点,l出3U命令:<br />1、将a,b联?br />2、查询a,b的联通状?br />3、删除链接a的边。(如果之前a,c通过b联通,那么删除b的联通关pda,c仍然认ؓ联通)<br />1Q?两种操作乍一看MS是ƈ查集Q但是第三种状况让h很恼火,其是想用\径压~技巧的时候。那么,我们不妨转换下思\Q删除a的联通关pd以认为将a节点重标P把之前那个a节点认ؓ是虚拟节点,q样联通性啥的都好保证了。详l请看代码:<br /><div style="display: inline-block; "><div><p align="center" style="font-family: 'AR PL UKai CN'; line-height: normal; font-size: medium; "><font size="4" color="#333399">Source Code</font></p><table align="center" style="font-family: 'AR PL UKai CN'; font-size: 10pt; "><tbody><tr><td><strong>Problem:</strong> <a >3908</a></td><td width="10px"></td><td><strong>User:</strong> <a >yzhw</a></td></tr><tr><td><strong>Memory:</strong> 1096K</td><td width="10px"></td><td><strong>Time:</strong> 47MS</td></tr><tr><td><strong>Language:</strong> G++</td><td width="10px"></td><td><strong>Result:</strong> <font color="blue">Accepted</font></td></tr></tbody></table><ul style="font-family: 'AR PL UKai CN'; line-height: normal; font-size: medium; "><li><font color="#333399" size="5">Source Code</font></li><pre class="sh_cpp sh_sourceCode" style="background-color: white; font-family: 'Courier New', Courier, monospace; "><span id="511d555" class="sh_preproc" style="color: #00008b; font-weight: bold; "># include</span> <span id="jdfdzrj" class="sh_string" style="color: red; font-family: monospace; "><cstdio></span> <span id="pn31njb" class="sh_preproc" style="color: #00008b; font-weight: bold; "># define</span> N <span id="5t55jj5" class="sh_number" style="color: purple; ">100000</span> <span id="3v3nj5r" class="sh_keyword" style="color: blue; font-weight: bold; ">using</span> <span id="33pvhrn" class="sh_keyword" style="color: blue; font-weight: bold; ">namespace</span> std<span id="3r3z555" class="sh_symbol" style="color: #8b0000; ">;</span> <span id="vhb351b" class="sh_type" style="color: #006400; ">int</span> set<span id="ztvd3p3" class="sh_symbol" style="color: #8b0000; ">[</span>N<span id="v355pdd" class="sh_symbol" style="color: #8b0000; ">],</span>id<span id="hvp335p" class="sh_symbol" style="color: #8b0000; ">[</span>N<span id="5bjnvr5" class="sh_symbol" style="color: #8b0000; ">];</span> <span id="rn5j3zj" class="sh_type" style="color: #006400; ">int</span> <span id="lf3f5nl" class="sh_function" style="font-weight: bold; ">find</span><span id="x35hdd3" class="sh_symbol" style="color: #8b0000; ">(</span><span id="nflh5lr" class="sh_type" style="color: #006400; ">int</span> pos<span id="l5pj5t3" class="sh_symbol" style="color: #8b0000; ">)</span> <span id="l333db5" class="sh_cbracket" style="color: red; ">{</span> <span id="x31fldv" class="sh_keyword" style="color: blue; font-weight: bold; ">if</span><span id="zvb3rfz" class="sh_symbol" style="color: #8b0000; ">(</span>set<span id="t3x3jrx" class="sh_symbol" style="color: #8b0000; ">[</span>pos<span id="t5fdtrf" class="sh_symbol" style="color: #8b0000; ">]==</span>pos<span id="vrbfd5b" class="sh_symbol" style="color: #8b0000; ">)</span> <span id="nj3h535" class="sh_keyword" style="color: blue; font-weight: bold; ">return</span> pos<span id="53zt5p5" class="sh_symbol" style="color: #8b0000; ">;</span> <span id="rdnz3lb" class="sh_keyword" style="color: blue; font-weight: bold; ">else</span> <span id="tlnjn5d" class="sh_keyword" style="color: blue; font-weight: bold; ">return</span> set<span id="l3d5rnv" class="sh_symbol" style="color: #8b0000; ">[</span>pos<span id="hjtfd53" class="sh_symbol" style="color: #8b0000; ">]=</span><span id="3v3vt5d" class="sh_function" style="font-weight: bold; ">find</span><span id="pjl3b3l" class="sh_symbol" style="color: #8b0000; ">(</span>set<span id="pblx3fd" class="sh_symbol" style="color: #8b0000; ">[</span>pos<span id="jt35r55" class="sh_symbol" style="color: #8b0000; ">]);</span> <span id="lfp3dnv" class="sh_cbracket" style="color: red; ">}</span> <span id="t35djdj" class="sh_type" style="color: #006400; ">void</span> <span id="tdf3jdb" class="sh_function" style="font-weight: bold; ">uni</span><span id="v3nr53n" class="sh_symbol" style="color: #8b0000; ">(</span><span id="vfh3f3v" class="sh_type" style="color: #006400; ">int</span> a<span id="bl3z55r" class="sh_symbol" style="color: #8b0000; ">,</span><span id="3x1nbz5" class="sh_type" style="color: #006400; ">int</span> b<span id="33xjfdd" class="sh_symbol" style="color: #8b0000; ">)</span> <span id="335zdt5" class="sh_cbracket" style="color: red; ">{</span> set<span id="315555l" class="sh_symbol" style="color: #8b0000; ">[</span><span id="z53lnlt" class="sh_function" style="font-weight: bold; ">find</span><span id="33z555z" class="sh_symbol" style="color: #8b0000; ">(</span>a<span id="b35vfn5" class="sh_symbol" style="color: #8b0000; ">)]=</span><span id="xjtxlbj" class="sh_function" style="font-weight: bold; ">find</span><span id="v513vhv" class="sh_symbol" style="color: #8b0000; ">(</span>b<span id="3x1z5j5" class="sh_symbol" style="color: #8b0000; ">);</span> <span id="jlv3j3d" class="sh_cbracket" style="color: red; ">}</span> <span id="dfp3dvv" class="sh_type" style="color: #006400; ">int</span> <span id="jv3j5pf" class="sh_function" style="font-weight: bold; ">main</span><span id="3bpvpfv" class="sh_symbol" style="color: #8b0000; ">()</span> <span id="v5r5555" class="sh_cbracket" style="color: red; ">{</span> <span id="z55xzxf" class="sh_type" style="color: #006400; ">int</span> num<span id="35z55vd" class="sh_symbol" style="color: #8b0000; ">;</span> <span id="z3dbvtr" class="sh_keyword" style="color: blue; font-weight: bold; ">while</span><span id="jl5p3p5" class="sh_symbol" style="color: #8b0000; ">(</span><span id="lhbfhfv" class="sh_function" style="font-weight: bold; ">scanf</span><span id="vr3p3dt" class="sh_symbol" style="color: #8b0000; ">(</span><span id="vxz3dlh" class="sh_string" style="color: red; font-family: monospace; ">"%d"</span><span id="rnpzt3x" class="sh_symbol" style="color: #8b0000; ">,&</span>num<span id="htd355n" class="sh_symbol" style="color: #8b0000; ">)!=</span>EOF<span id="5b55brp" class="sh_symbol" style="color: #8b0000; ">)</span> <span id="51p5nf3" class="sh_cbracket" style="color: red; ">{</span> <span id="53h5bzp" class="sh_type" style="color: #006400; ">int</span> c<span id="lnhz335" class="sh_symbol" style="color: #8b0000; ">=</span>num<span id="pz35v3h" class="sh_number" style="color: purple; ">+1</span><span id="33ntddb" class="sh_symbol" style="color: #8b0000; ">,</span>n1<span id="xr3pbp5" class="sh_symbol" style="color: #8b0000; ">=</span><span id="355t55t" class="sh_number" style="color: purple; ">0</span><span id="55h5p55" class="sh_symbol" style="color: #8b0000; ">,</span>n2<span id="v3xbn3f" class="sh_symbol" style="color: #8b0000; ">=</span><span id="l35dnv5" class="sh_number" style="color: purple; ">0</span><span id="p53b5xx" class="sh_symbol" style="color: #8b0000; ">;</span> <span id="frd335f" class="sh_keyword" style="color: blue; font-weight: bold; ">for</span><span id="r5tbv35" class="sh_symbol" style="color: #8b0000; ">(</span><span id="3355bj5" class="sh_type" style="color: #006400; ">int</span> i<span id="35jv35t" class="sh_symbol" style="color: #8b0000; ">=</span><span id="t3pzdjh" class="sh_number" style="color: purple; ">1</span><span id="hnpj33z" class="sh_symbol" style="color: #8b0000; ">;</span>i<span id="dvpjtjh" class="sh_symbol" style="color: #8b0000; "><</span>N<span id="fz3vhx3" class="sh_symbol" style="color: #8b0000; ">;</span>i<span id="3hdfh53" class="sh_symbol" style="color: #8b0000; ">++)</span> set<span id="3f15fn5" class="sh_symbol" style="color: #8b0000; ">[</span>i<span id="dfrt3fl" class="sh_symbol" style="color: #8b0000; ">]=</span>i<span id="llx35rz" class="sh_symbol" style="color: #8b0000; ">;</span> <span id="pj3h5d5" class="sh_keyword" style="color: blue; font-weight: bold; ">for</span><span id="h3lvffv" class="sh_symbol" style="color: #8b0000; ">(</span><span id="xhj33zp" class="sh_type" style="color: #006400; ">int</span> i<span id="j5lh3lt" class="sh_symbol" style="color: #8b0000; ">=</span><span id="hr355bz" class="sh_number" style="color: purple; ">1</span><span id="np5t3bh" class="sh_symbol" style="color: #8b0000; ">;</span>i<span id="zv11tll" class="sh_symbol" style="color: #8b0000; "><=</span>num<span id="lhbvpl3" class="sh_symbol" style="color: #8b0000; ">;</span>i<span id="bdfplr5" class="sh_symbol" style="color: #8b0000; ">++)</span> id<span id="33553vt" class="sh_symbol" style="color: #8b0000; ">[</span>i<span id="dxzvnvn" class="sh_symbol" style="color: #8b0000; ">]=</span>i<span id="3brrvjh" class="sh_symbol" style="color: #8b0000; ">;</span> <span id="nxzbd3h" class="sh_type" style="color: #006400; ">char</span> jud<span id="rlp3ft3" class="sh_symbol" style="color: #8b0000; ">[</span><span id="51vptzx" class="sh_number" style="color: purple; ">5</span><span id="3nb3nbz" class="sh_symbol" style="color: #8b0000; ">];</span> <span id="5jfb3f3" class="sh_keyword" style="color: blue; font-weight: bold; ">while</span><span id="3t5bz55" class="sh_symbol" style="color: #8b0000; ">(</span><span id="h3n535d" class="sh_function" style="font-weight: bold; ">scanf</span><span id="x5b3tbp" class="sh_symbol" style="color: #8b0000; ">(</span><span id="1p55fv5" class="sh_string" style="color: red; font-family: monospace; ">"%s"</span><span id="pjvpr3v" class="sh_symbol" style="color: #8b0000; ">,</span>jud<span id="331vbpf" class="sh_symbol" style="color: #8b0000; ">)&&*</span>jud<span id="bfrt3bh" class="sh_symbol" style="color: #8b0000; ">!=</span><span id="335p5bj" class="sh_string" style="color: red; font-family: monospace; ">'e'</span><span id="31vxbp5" class="sh_symbol" style="color: #8b0000; ">)</span> <span id="z3vn355" class="sh_cbracket" style="color: red; ">{</span> <span id="3l15lb5" class="sh_type" style="color: #006400; ">int</span> a<span id="1353r55" class="sh_symbol" style="color: #8b0000; ">,</span>b<span id="33hzjhp" class="sh_symbol" style="color: #8b0000; ">;</span> <span id="5nbn5jj" class="sh_keyword" style="color: blue; font-weight: bold; ">switch</span><span id="h33lvtb" class="sh_symbol" style="color: #8b0000; ">(*</span>jud<span id="f3zvf3p" class="sh_symbol" style="color: #8b0000; ">)</span> <span id="3l5tddr" class="sh_cbracket" style="color: red; ">{</span> <span id="bx5jnt3" class="sh_keyword" style="color: blue; font-weight: bold; ">case</span> <span id="3x5f55x" class="sh_string" style="color: red; font-family: monospace; ">'c'</span><span id="jv55hp5" class="sh_symbol" style="color: #8b0000; ">:</span> <span id="1zn5555" class="sh_function" style="font-weight: bold; ">scanf</span><span id="1v1r3xf" class="sh_symbol" style="color: #8b0000; ">(</span><span id="tv3rt55" class="sh_string" style="color: red; font-family: monospace; ">"%d%d"</span><span id="rtvhtzx" class="sh_symbol" style="color: #8b0000; ">,&</span>a<span id="f53xhz5" class="sh_symbol" style="color: #8b0000; ">,&</span>b<span id="bdprljh" class="sh_symbol" style="color: #8b0000; ">);</span> <span id="f5t355z" class="sh_function" style="font-weight: bold; ">uni</span><span id="xblxr3d" class="sh_symbol" style="color: #8b0000; ">(</span>id<span id="z5b55j5" class="sh_symbol" style="color: #8b0000; ">[</span>a<span id="5z3f3d3" class="sh_symbol" style="color: #8b0000; ">],</span>id<span id="lfzlvd3" class="sh_symbol" style="color: #8b0000; ">[</span>b<span id="5zvxvhn" class="sh_symbol" style="color: #8b0000; ">]);</span> <span id="dxz35th" class="sh_keyword" style="color: blue; font-weight: bold; ">break</span><span id="f53xzxn" class="sh_symbol" style="color: #8b0000; ">;</span> <span id="33hbl55" class="sh_keyword" style="color: blue; font-weight: bold; ">case</span> <span id="5dt3h3b" class="sh_string" style="color: red; font-family: monospace; ">'d'</span><span id="bdxrtzh" class="sh_symbol" style="color: #8b0000; ">:</span> <span id="xhjdf3l" class="sh_function" style="font-weight: bold; ">scanf</span><span id="5vldpf3" class="sh_symbol" style="color: #8b0000; ">(</span><span id="hj5pzhn" class="sh_string" style="color: red; font-family: monospace; ">"%d"</span><span id="lxzr35d" class="sh_symbol" style="color: #8b0000; ">,&</span>a<span id="vfzb3lb" class="sh_symbol" style="color: #8b0000; ">);</span> id<span id="r3l3x3p" class="sh_symbol" style="color: #8b0000; ">[</span>a<span id="rt3hr55" class="sh_symbol" style="color: #8b0000; ">]=</span>c<span id="zbn3v5v" class="sh_symbol" style="color: #8b0000; ">++;</span> <span id="5dzlj3r" class="sh_keyword" style="color: blue; font-weight: bold; ">break</span><span id="335f5th" class="sh_symbol" style="color: #8b0000; ">;</span> <span id="53p555n" class="sh_keyword" style="color: blue; font-weight: bold; ">case</span> <span id="5h3jdtb" class="sh_string" style="color: red; font-family: monospace; ">'q'</span><span id="v5pjt5l" class="sh_symbol" style="color: #8b0000; ">:</span> <span id="3rx55l5" class="sh_function" style="font-weight: bold; ">scanf</span><span id="vpj3vl5" class="sh_symbol" style="color: #8b0000; ">(</span><span id="blx3jz5" class="sh_string" style="color: red; font-family: monospace; ">"%d%d"</span><span id="5njt3hp" class="sh_symbol" style="color: #8b0000; ">,&</span>a<span id="pzbdpx3" class="sh_symbol" style="color: #8b0000; ">,&</span>b<span id="htdx3fd" class="sh_symbol" style="color: #8b0000; ">);</span> <span id="r5b5355" class="sh_keyword" style="color: blue; font-weight: bold; ">if</span><span id="xprt3d3" class="sh_symbol" style="color: #8b0000; ">(</span><span id="5b35n55" class="sh_function" style="font-weight: bold; ">find</span><span id="5r355hf" class="sh_symbol" style="color: #8b0000; ">(</span>id<span id="3pv5v5n" class="sh_symbol" style="color: #8b0000; ">[</span>a<span id="vfrlvt3" class="sh_symbol" style="color: #8b0000; ">])==</span><span id="33h5bhb" class="sh_function" style="font-weight: bold; ">find</span><span id="l5xlvt3" class="sh_symbol" style="color: #8b0000; ">(</span>id<span id="r3b3vdl" class="sh_symbol" style="color: #8b0000; ">[</span>b<span id="l33xhx5" class="sh_symbol" style="color: #8b0000; ">]))</span> n1<span id="d5xlnlv" class="sh_symbol" style="color: #8b0000; ">++;</span> <span id="r5xrl3f" class="sh_keyword" style="color: blue; font-weight: bold; ">else</span> n2<span id="rvhbdl3" class="sh_symbol" style="color: #8b0000; ">++;</span> <span id="f5n55j5" class="sh_keyword" style="color: blue; font-weight: bold; ">break</span><span id="35dhbhr" class="sh_symbol" style="color: #8b0000; ">;</span> <span id="bfrl3dr" class="sh_cbracket" style="color: red; ">}</span><span id="pbn3rhp" class="sh_symbol" style="color: #8b0000; ">;</span> <span id="bvf3vt5" class="sh_cbracket" style="color: red; ">}</span> <span id="lf3vp5h" class="sh_function" style="font-weight: bold; ">printf</span><span id="3vfr3f5" class="sh_symbol" style="color: #8b0000; ">(</span><span id="vfrt5tj" class="sh_string" style="color: red; font-family: monospace; ">"%d , %d</span><span id="3hj3djj" class="sh_specialchar" style="color: #ffc0cb; font-family: monospace; ">\n</span><span id="bnxrtbp" class="sh_string" style="color: red; font-family: monospace; ">"</span><span id="rvf3bzp" class="sh_symbol" style="color: #8b0000; ">,</span>n1<span id="3hrbnlj" class="sh_symbol" style="color: #8b0000; ">,</span>n2<span id="lnzbd55" class="sh_symbol" style="color: #8b0000; ">);</span> <span id="l3vp3z5" class="sh_cbracket" style="color: red; ">}</span> <span id="53rd55l" class="sh_keyword" style="color: blue; font-weight: bold; ">return</span> <span id="jtnpb3n" class="sh_number" style="color: purple; ">0</span><span id="d3vzbrh" class="sh_symbol" style="color: #8b0000; ">;</span> <span id="vx3v3bj" class="sh_cbracket" style="color: red; ">}</span></pre></ul></div></div><img src ="http://m.shnenglu.com/yzhw/aggbug/166244.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/yzhw/" target="_blank">yzhw</a> 2012-02-22 15:58 <a href="http://m.shnenglu.com/yzhw/archive/2012/02/22/166244.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>pku3907 求多边Ş面积http://m.shnenglu.com/yzhw/archive/2012/02/18/165874.htmlyzhwyzhwFri, 17 Feb 2012 17:34:00 GMThttp://m.shnenglu.com/yzhw/archive/2012/02/18/165874.htmlhttp://m.shnenglu.com/yzhw/comments/165874.htmlhttp://m.shnenglu.com/yzhw/archive/2012/02/18/165874.html#Feedback0http://m.shnenglu.com/yzhw/comments/commentRss/165874.htmlhttp://m.shnenglu.com/yzhw/services/trackbacks/165874.html
 1 Show Code - Run ID 1166912
 2 
 3 Submit Time: 2012-02-18 01:33:04     Language: GNU C     Result: Accepted
 4     Pid: 3124     Time: 0.00 sec.     Memory: 852 K.     Code Length: 0.6 K.
 5 # include <stdio.h>
 6 # define cross(x1,y1,x2,y2) (x1)*(y2)-(x2)*(y1)
 7 # define get_aera(x0,y0,x1,y1,x2,y2) (cross((x1)-(x0),(y1)-(y0),(x2)-(x0),(y2)-(y0)))
 8 int main()
 9 {
10     int n;
11     while(scanf("%d",&n)!=EOF&&n)
12     {
13        int i;
14       
15            double x[3],y[3],aera=0;
16            scanf("%lf%lf",&x[2],&y[2]);
17            for(i=1;i<n;i++)
18            {
19                scanf("%lf%lf",&x[i%2],&y[i%2]);
20                if(i>1) aera+=get_aera(x[2],y[2],x[(i+1)%2],y[(i+1)%2],x[i%2],y[i%2]);
21            }
22            aera*=0.5;
23            if(aera<0) aera=-aera;
24            printf("%.0f\n",aera+1e-8);
25        
26     }
27     return 0;
28 }


yzhw 2012-02-18 01:34 发表评论
]]>
pku3905 2-SAT问题 &我对2-SAT问题的最新理?/title><link>http://m.shnenglu.com/yzhw/archive/2012/02/17/165796.html</link><dc:creator>yzhw</dc:creator><author>yzhw</author><pubDate>Thu, 16 Feb 2012 18:38:00 GMT</pubDate><guid>http://m.shnenglu.com/yzhw/archive/2012/02/17/165796.html</guid><wfw:comment>http://m.shnenglu.com/yzhw/comments/165796.html</wfw:comment><comments>http://m.shnenglu.com/yzhw/archive/2012/02/17/165796.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/yzhw/comments/commentRss/165796.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/yzhw/services/trackbacks/165796.html</trackback:ping><description><![CDATA[最q看了h工智能的定性推理,?-SAT有了更深的理解,感觉2-SAT构图q程是构徏的一个推理图Q逻辑关系是a->b。根据这题实际来讲讲<br />qW一U情冉|举例?br />A被选或者B被选或者两者都发生都是可以被接受的?br />那么如果A没有被选,我们能推出B被选了。同样如果B没有被选,我们能推出A被选了Q其他我们不能推ZQ何结论?br />所以构造关p?br />!B->A<br />!A->B<br />反应到图上就是两条边?br />q样构图完成后找出图里所有的通分量,如果A?A在同一个强q通分量里Q那么就冲突了。(我们能推理出A->!AQ?br />代码Q?span style="background-color: #eeeeee; font-size: 13px; color: #008080; "> 1</span><span style="background-color: #eeeeee; font-size: 13px; "> </span><span style="background-color: #eeeeee; font-size: 13px; ">Source Code</span><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #008080; "> 2</span> <br /><span style="color: #008080; "> 3</span> Problem: 3905        User: yzhw<br /><span style="color: #008080; "> 4</span> Memory: 16168K        Time: 2297MS<br /><span style="color: #008080; "> 5</span> Language: GCC        Result: Accepted<br /><span style="color: #008080; "> 6</span> Source Code<br /><span style="color: #008080; "> 7</span> # include <stdio.h><br /><span style="color: #008080; "> 8</span> # include <stdlib.h><br /><span style="color: #008080; "> 9</span> # include <<span style="color: #0000FF; ">string</span>.h><br /><span style="color: #008080; ">10</span> # define N 2000<br /><span style="color: #008080; ">11</span> # define M 1000000*2<br /><span style="color: #008080; ">12</span> # define min(a,b) ((a)<(b)?(a):(b))<br /><span style="color: #008080; ">13</span> # define abs(a) ((a)>0?(a):-(a))<br /><span style="color: #008080; ">14</span> <span style="color: #0000FF; ">int</span> n,m;<br /><span style="color: #008080; ">15</span> <span style="color: #0000FF; ">int</span> p,nxt[M],g[N],v[M];<br /><span style="color: #008080; ">16</span> <span style="color: #0000FF; ">int</span> stack[N],sp,dfn,low[N];<br /><span style="color: #008080; ">17</span> <span style="color: #0000FF; ">void</span> insert(<span style="color: #0000FF; ">int</span> a,<span style="color: #0000FF; ">int</span> b)<br /><span style="color: #008080; ">18</span> {<br /><span style="color: #008080; ">19</span>     v[p]=b;<br /><span style="color: #008080; ">20</span>     nxt[p]=g[a];<br /><span style="color: #008080; ">21</span>     g[a]=p++;<br /><span style="color: #008080; ">22</span> }<br /><span style="color: #008080; ">23</span> <span style="color: #0000FF; ">int</span> dfs(<span style="color: #0000FF; ">int</span> pos)<br /><span style="color: #008080; ">24</span> {<br /><span style="color: #008080; ">25</span>     <span style="color: #0000FF; ">int</span> minnum=dfn++;<br /><span style="color: #008080; ">26</span>     <span style="color: #0000FF; ">int</span> p;<br /><span style="color: #008080; ">27</span>     stack[sp++]=pos;<br /><span style="color: #008080; ">28</span>     low[pos]=minnum;<br /><span style="color: #008080; ">29</span>     <span style="color: #0000FF; ">for</span>(p=g[pos];p!=-1;p=nxt[p])<br /><span style="color: #008080; ">30</span>     {<br /><span style="color: #008080; ">31</span>       <span style="color: #0000FF; ">if</span>(low[v[p]]==-1)<br /><span style="color: #008080; ">32</span>         <span style="color: #0000FF; ">if</span>(!dfs(v[p])) <span style="color: #0000FF; ">return</span> 0;<br /><span style="color: #008080; ">33</span>       minnum=min(minnum,low[v[p]]);<br /><span style="color: #008080; ">34</span>     }<br /><span style="color: #008080; ">35</span>     <span style="color: #0000FF; ">if</span>(minnum<low[pos]) low[pos]=minnum;<br /><span style="color: #008080; ">36</span>     <span style="color: #0000FF; ">else</span><br /><span style="color: #008080; ">37</span>     {<br /><span style="color: #008080; ">38</span>         <span style="color: #0000FF; ">do</span><br /><span style="color: #008080; ">39</span>         {<br /><span style="color: #008080; ">40</span>             low[stack[sp-1]]=N;<br /><span style="color: #008080; ">41</span>             <span style="color: #0000FF; ">if</span>(abs(stack[sp-1]-pos)==n) <span style="color: #0000FF; ">return</span> 0;<br /><span style="color: #008080; ">42</span>             sp--;<br /><span style="color: #008080; ">43</span>         }<span style="color: #0000FF; ">while</span>(stack[sp]!=pos);<br /><span style="color: #008080; ">44</span>     }<br /><span style="color: #008080; ">45</span>     <span style="color: #0000FF; ">return</span> 1;<br /><span style="color: #008080; ">46</span> }<br /><span style="color: #008080; ">47</span> <span style="color: #0000FF; ">int</span> main()<br /><span style="color: #008080; ">48</span> {<br /><span style="color: #008080; ">49</span>     <span style="color: #0000FF; ">while</span>(scanf("%d%d",&n,&m)!=EOF)<br /><span style="color: #008080; ">50</span>     {<br /><span style="color: #008080; ">51</span>         <span style="color: #0000FF; ">int</span> i,flag=1;<br /><span style="color: #008080; ">52</span>         memset(g,-1,<span style="color: #0000FF; ">sizeof</span>(g));<br /><span style="color: #008080; ">53</span>         p=0;<br /><span style="color: #008080; ">54</span>         <span style="color: #0000FF; ">for</span>(i=0;i<m;i++)<br /><span style="color: #008080; ">55</span>         {<br /><span style="color: #008080; ">56</span>             <span style="color: #0000FF; ">char</span> str1[32],str2[32];<br /><span style="color: #008080; ">57</span>             <span style="color: #0000FF; ">int</span> num1,num2;<br /><span style="color: #008080; ">58</span>             scanf("%s%s",str1,str2);<br /><span style="color: #008080; ">59</span>             num1=atoi(str1+1)-1;<br /><span style="color: #008080; ">60</span>             num2=atoi(str2+1)-1;<br /><span style="color: #008080; ">61</span>             <span style="color: #0000FF; ">if</span>(*str1=='+'&&*str2=='+')<br /><span style="color: #008080; ">62</span>             {<br /><span style="color: #008080; ">63</span>                 insert(num1+n,num2);<br /><span style="color: #008080; ">64</span>                 insert(num2+n,num1);<br /><span style="color: #008080; ">65</span>             }<br /><span style="color: #008080; ">66</span>             <span style="color: #0000FF; ">else</span> <span style="color: #0000FF; ">if</span>(*str1=='-'&&*str2=='-')<br /><span style="color: #008080; ">67</span>             {<br /><span style="color: #008080; ">68</span>                 insert(num1,num2+n);<br /><span style="color: #008080; ">69</span>                 insert(num2,num1+n);<br /><span style="color: #008080; ">70</span>             }<br /><span style="color: #008080; ">71</span>             <span style="color: #0000FF; ">else</span> <span style="color: #0000FF; ">if</span>(*str1=='+'&&*str2=='-')<br /><span style="color: #008080; ">72</span>             {<br /><span style="color: #008080; ">73</span>                 insert(num1+n,num2+n);<br /><span style="color: #008080; ">74</span>                 insert(num2,num1);<br /><span style="color: #008080; ">75</span>             }<br /><span style="color: #008080; ">76</span>             <span style="color: #0000FF; ">else</span><br /><span style="color: #008080; ">77</span>             {<br /><span style="color: #008080; ">78</span>                 insert(num1,num2);<br /><span style="color: #008080; ">79</span>                 insert(num2+n,num1+n);<br /><span style="color: #008080; ">80</span>             }<br /><span style="color: #008080; ">81</span>         }<br /><span style="color: #008080; ">82</span>         memset(low,-1,<span style="color: #0000FF; ">sizeof</span>(low));<br /><span style="color: #008080; ">83</span>         dfn=sp=0;<br /><span style="color: #008080; ">84</span>         <span style="color: #0000FF; ">for</span>(i=0;i<2*n&&flag;i++)<br /><span style="color: #008080; ">85</span>             <span style="color: #0000FF; ">if</span>(low[i]==-1)<br /><span style="color: #008080; ">86</span>                 <span style="color: #0000FF; ">if</span>(!dfs(i)) flag=0;<br /><span style="color: #008080; ">87</span>         printf("%d\n",flag);<br /><span style="color: #008080; ">88</span>     }<br /><span style="color: #008080; ">89</span>     <span style="color: #0000FF; ">return</span> 0;<br /><span style="color: #008080; ">90</span> }</div><img src ="http://m.shnenglu.com/yzhw/aggbug/165796.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/yzhw/" target="_blank">yzhw</a> 2012-02-17 02:38 <a href="http://m.shnenglu.com/yzhw/archive/2012/02/17/165796.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>pku3904 Ҏ原理的运用,好题Q?/title><link>http://m.shnenglu.com/yzhw/archive/2012/02/17/165795.html</link><dc:creator>yzhw</dc:creator><author>yzhw</author><pubDate>Thu, 16 Feb 2012 18:03:00 GMT</pubDate><guid>http://m.shnenglu.com/yzhw/archive/2012/02/17/165795.html</guid><wfw:comment>http://m.shnenglu.com/yzhw/comments/165795.html</wfw:comment><comments>http://m.shnenglu.com/yzhw/archive/2012/02/17/165795.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/yzhw/comments/commentRss/165795.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/yzhw/services/trackbacks/165795.html</trackback:ping><description><![CDATA[解法发现|上一个大牛写的很好,p{载过来吧。可怜的我,开始没惛_法q了,惛_法后又L依赖STLl果o(N)写成o(logN)成功葬送?br /><fieldset><legend>解法</legend><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">题意Q给你n个数Q求GCD(gcd(a,b),gcd(c,d))=1的方案数Q注意a,b,c,dq不一定两两互质,有多l数?/p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">本来q个题的题解有一大把Q但没有讲题解的只有贴代码的?/p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">本来一直在做题Q没有什么时间发题解Q但q个题加׃我对Ҏ原理的理解,所以讲一?/p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">q个题的法是个伪多式</p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">首先Q先算法流E说一下,原理后面会有</p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">Step 1Q用{法{出10000内的素数?/p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">Step 2Q组合素敎ͼ用bool数组记录由m(m<=5)个素数相乘所得数的m的奇?/p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">例如Q?82=2*7*13 ———> m=3 soQbool[182]=false</p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">            2=2 ——>m=1 soQbool[2]=false</p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">            91=7*13 ——>m=2 soQbool[91]=true</p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">            注意12=2^2*3{这U是B=p1^k1*p2^k2+...q种有质因数指数不ؓ一的合C要处理因Z会用?/p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">以上是预处理</p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">Step 3Q读入当前数为aQ将a分解因数形式Q注意每个质因数只被记录一?/p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">例如Q?2=2*2*3 ?12会被分ؓ2*3Q多余的2被消M</p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">Step 4Q将分出的素数进行组合,组合出的a的约数的time+1</p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">例如Q?2=2^2*3——>12=2*3——>time[2]++,time[3]++,time[6]++</p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">Step 5Q处理之后,ans赋gؓC(n,4)即n*(n-1)*(n-2)*(n-3)div 24</p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">Step 6Qfor i 2-->10000</p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">                if bool[i] then ans:=ans-C(time[i],4)</p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">                               else ans:=and+C(time[i],4);</p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">Step 7Q输出ans</p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; "><br /></p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">原理Q首先考虑一个问题,1000以内6,7,8,9的倍数有多个Q答案是</p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">1000div6+1000div7+1000div8+1000div9</p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">-1000div(6*7)-1000div(6*8)-1000div(6*9)-1000div(7*8)-1000div(7*9)-1000div(8*9)</p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">+1000div(6*7*8)+1000div(6*8*9)+1000div(7*8*9)</p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">-1000div(6*7*8*9)</p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">q是Ҏ原理的一个最单的应用Q类比这道题QStep3?其实每个数a的不重复U数记录了下来,有公q数的四个数的Ҏ要从ans中减去,多减的要加上</p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">昄m为奇时要减,m为偶时要加,q和”1000以内6,7,8,9的倍数有多个Q?#8220;q个问题奇偶是反的,׃a最大ؓ10000Q所以m最大可以有5 (2*3*5*7*11<10000,2*3*5*7*11*13>10000)</p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">至于12=2*2*3q种U数不处理因为可以分?*6Q??会算一ơ,所以不d?/p></fieldset><br />代码Q?br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; "> 1</span> # include <cstdio><br /><span style="color: #008080; "> 2</span> # include <map><br /><span style="color: #008080; "> 3</span> # include <cstring><br /><span style="color: #008080; "> 4</span> # include <algorithm><br /><span style="color: #008080; "> 5</span> <span style="color: #0000FF; ">using</span> <span style="color: #0000FF; ">namespace</span> std;<br /><span style="color: #008080; "> 6</span> <span style="color: #0000FF; ">int</span> pa[2000],pp=0,sa[10],sp=0;<br /><span style="color: #008080; "> 7</span> <span style="color: #0000FF; ">int</span> refer[5][10001];<br /><span style="color: #008080; "> 8</span> <span style="color: #0000FF; ">void</span> make_prime()<br /><span style="color: #008080; "> 9</span> {<br /><span style="color: #008080; ">10</span>     <span style="color: #0000FF; ">bool</span> used[10001];<br /><span style="color: #008080; ">11</span>     memset(used,<span style="color: #0000FF; ">true</span>,<span style="color: #0000FF; ">sizeof</span>(used));<br /><span style="color: #008080; ">12</span>     <span style="color: #0000FF; ">for</span>(<span style="color: #0000FF; ">int</span> i=2;i<=10000;i++)<br /><span style="color: #008080; ">13</span>          <span style="color: #0000FF; ">if</span>(used[i])<br /><span style="color: #008080; ">14</span>          {<br /><span style="color: #008080; ">15</span>              pa[pp++]=i;<br /><span style="color: #008080; ">16</span>              <span style="color: #0000FF; ">for</span>(<span style="color: #0000FF; ">int</span> j=2*i;j<=10000;j+=i)<br /><span style="color: #008080; ">17</span>                 used[j]=<span style="color: #0000FF; ">false</span>;<br /><span style="color: #008080; ">18</span>          }<br /><span style="color: #008080; ">19</span> }<br /><span style="color: #008080; ">20</span> <span style="color: #0000FF; ">void</span> spilt(<span style="color: #0000FF; ">int</span> n)<br /><span style="color: #008080; ">21</span> {<br /><span style="color: #008080; ">22</span>     sp=0;<br /><span style="color: #008080; ">23</span>     <span style="color: #0000FF; ">for</span>(<span style="color: #0000FF; ">int</span> i=0;i<pp&&n!=1;i++)<br /><span style="color: #008080; ">24</span>         <span style="color: #0000FF; ">if</span>(n%pa[i]==0)<br /><span style="color: #008080; ">25</span>         {<br /><span style="color: #008080; ">26</span>             sa[sp++]=pa[i];<br /><span style="color: #008080; ">27</span>             <span style="color: #0000FF; ">while</span>(n%pa[i]==0)<br /><span style="color: #008080; ">28</span>                 n/=pa[i];<br /><span style="color: #008080; ">29</span>         }<br /><span style="color: #008080; ">30</span> }<br /><span style="color: #008080; ">31</span> <span style="color: #0000FF; ">void</span> putmap(<span style="color: #0000FF; ">int</span> n)<br /><span style="color: #008080; ">32</span> {<br /><span style="color: #008080; ">33</span>     spilt(n);<br /><span style="color: #008080; ">34</span>     <span style="color: #0000FF; ">for</span>(<span style="color: #0000FF; ">int</span> i=1;i<(1<<sp);i++)<br /><span style="color: #008080; ">35</span>     {<br /><span style="color: #008080; ">36</span>         <span style="color: #0000FF; ">int</span> n1=0,n2=1;<br /><span style="color: #008080; ">37</span>         <span style="color: #0000FF; ">for</span>(<span style="color: #0000FF; ">int</span> j=0;j<5;j++)<br /><span style="color: #008080; ">38</span>             <span style="color: #0000FF; ">if</span>(i&(1<<j))<br /><span style="color: #008080; ">39</span>                 n1++,n2*=sa[j];<br /><span style="color: #008080; ">40</span>         refer[n1-1][n2]++;<br /><span style="color: #008080; ">41</span>     }<br /><span style="color: #008080; ">42</span> }<br /><span style="color: #008080; ">43</span> <span style="color: #0000FF; ">long</span> <span style="color: #0000FF; ">long</span> c(<span style="color: #0000FF; ">int</span> n)<br /><span style="color: #008080; ">44</span> {<br /><span style="color: #008080; ">45</span>     <span style="color: #0000FF; ">return</span> (<span style="color: #0000FF; ">long</span> <span style="color: #0000FF; ">long</span>)n*(n-1)*(n-2)*(n-3)/4/3/2;<br /><span style="color: #008080; ">46</span> }<br /><span style="color: #008080; ">47</span> <span style="color: #0000FF; ">long</span> <span style="color: #0000FF; ">long</span> getans(<span style="color: #0000FF; ">int</span> n)<br /><span style="color: #008080; ">48</span> {<br /><span style="color: #008080; ">49</span>     <span style="color: #0000FF; ">long</span> <span style="color: #0000FF; ">long</span> ans=c(n);<br /><span style="color: #008080; ">50</span>     <span style="color: #0000FF; ">for</span>(<span style="color: #0000FF; ">int</span> i=0;i<5;i++)<br /><span style="color: #008080; ">51</span>     {<br /><span style="color: #008080; ">52</span>         <span style="color: #0000FF; ">bool</span> flag=<span style="color: #0000FF; ">false</span>;<br /><span style="color: #008080; ">53</span>         <span style="color: #0000FF; ">for</span>(<span style="color: #0000FF; ">int</span> j=1;j<=10000;j++)<br /><span style="color: #008080; ">54</span>             <span style="color: #0000FF; ">if</span>(refer[i][j]>=4)<br /><span style="color: #008080; ">55</span>                 flag=<span style="color: #0000FF; ">true</span>,<br /><span style="color: #008080; ">56</span>                 ans+=c(refer[i][j])*(i%2?1ll:-1ll);<br /><span style="color: #008080; ">57</span>         <span style="color: #0000FF; ">if</span>(!flag)<span style="color: #0000FF; ">break</span>;<br /><span style="color: #008080; ">58</span>     }<br /><span style="color: #008080; ">59</span>     <span style="color: #0000FF; ">return</span> ans;<br /><span style="color: #008080; ">60</span> }<br /><span style="color: #008080; ">61</span> <span style="color: #0000FF; ">int</span> main()<br /><span style="color: #008080; ">62</span> {<br /><span style="color: #008080; ">63</span>     <span style="color: #0000FF; ">int</span> n;<br /><span style="color: #008080; ">64</span>     make_prime();<br /><span style="color: #008080; ">65</span>     <span style="color: #0000FF; ">while</span>(scanf("%d",&n)!=EOF)<br /><span style="color: #008080; ">66</span>     {<br /><span style="color: #008080; ">67</span>         memset(refer,0,<span style="color: #0000FF; ">sizeof</span>(refer));<br /><span style="color: #008080; ">68</span>         <span style="color: #0000FF; ">for</span>(<span style="color: #0000FF; ">int</span> i=0;i<n;i++)<br /><span style="color: #008080; ">69</span>         {<br /><span style="color: #008080; ">70</span>             <span style="color: #0000FF; ">int</span> t;<br /><span style="color: #008080; ">71</span>             scanf("%d",&t);<br /><span style="color: #008080; ">72</span>             putmap(t);<br /><span style="color: #008080; ">73</span>         }<br /><span style="color: #008080; ">74</span>         printf("%lld\n",getans(n));<br /><span style="color: #008080; ">75</span>     }<br /><span style="color: #008080; ">76</span>     <span style="color: #0000FF; ">return</span> 0;<br /><span style="color: #008080; ">77</span> }</div><img src ="http://m.shnenglu.com/yzhw/aggbug/165795.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/yzhw/" target="_blank">yzhw</a> 2012-02-17 02:03 <a href="http://m.shnenglu.com/yzhw/archive/2012/02/17/165795.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>pku3903 最镉K增字串的单调性优?/title><link>http://m.shnenglu.com/yzhw/archive/2012/02/09/165233.html</link><dc:creator>yzhw</dc:creator><author>yzhw</author><pubDate>Thu, 09 Feb 2012 11:33:00 GMT</pubDate><guid>http://m.shnenglu.com/yzhw/archive/2012/02/09/165233.html</guid><wfw:comment>http://m.shnenglu.com/yzhw/comments/165233.html</wfw:comment><comments>http://m.shnenglu.com/yzhw/archive/2012/02/09/165233.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/yzhw/comments/commentRss/165233.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/yzhw/services/trackbacks/165233.html</trackback:ping><description><![CDATA[好久不动题目了,今天动了一题,忒背q,死都TLEQ想了想Q算法复杂度没问题啊Qn=100000Qnlogn的算法拼1S的RP咋崩溃的。。后来想起了无敌的POJ慢速setQ无奈,不想改,到处搜有q题的OJQTOJ上跑了下Q?0MS。。汗。。下载数据数据来看了看,是12l,是本地debug也不会TLE啊。。没办法。?br />不发牢骚了,说说q题的方法吧?br />一般的最镉K增字串用n^2做很好做Q就是dp[i]=max{dp[j]+1,height[j]<height[i]}Q这题可以用单调队列做优化,但是和普通的单调队列不同Q要借助q?br />首先Q我们知道,要维护这样一个单调队列,当height[i]<height[j]Ӟ要有dp[i]<dp[j]Q否则的话,status{(j,height[j])}q个状态以后不会推得最优解Q可以删除。这题麻烦就ȝ再height不是个单调的函数Q随着i的增大(是沿着DP方向计算Q时Qheight不能保证也是递增的,木有办法Q只能维护一个^衡树那样的东ѝ?br />那么更新q的DP方程是<br />dp[i]=dp[j]+1,j为满height[j]<height[i]的最后一个元?br />然后更新单调队列的策略是把当前决{加入单调队列里Q然后往后删除dp[i]>=dp[j]q且height[i]<height[j]的statue{j}?br />每个元素最多入队一ơ,出队一ơ,所以d复杂度o(nlogn)<br />我是全部用set实现的,L好省<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; "> 1</span> # include <cstdio><br /><span style="color: #008080; "> 2</span> # include <<span style="color: #0000FF; ">set</span>><br /><span style="color: #008080; "> 3</span> <span style="color: #0000FF; ">using</span> <span style="color: #0000FF; ">namespace</span> std;<br /><span style="color: #008080; "> 4</span> <span style="color: #0000FF; ">struct</span> node<br /><span style="color: #008080; "> 5</span> {<br /><span style="color: #008080; "> 6</span>    <span style="color: #0000FF; ">int</span> height,id;<br /><span style="color: #008080; "> 7</span>    node(<span style="color: #0000FF; ">int</span> h,<span style="color: #0000FF; ">int</span> i):height(h),id(i){}<br /><span style="color: #008080; "> 8</span>    <span style="color: #0000FF; ">bool</span> <span style="color: #0000FF; ">operator</span><(<span style="color: #0000FF; ">const</span> node &pos) <span style="color: #0000FF; ">const</span><br /><span style="color: #008080; "> 9</span>    {<br /><span style="color: #008080; ">10</span>        <span style="color: #0000FF; ">if</span>(height!=pos.height) <span style="color: #0000FF; ">return</span> height<pos.height;<br /><span style="color: #008080; ">11</span>        <span style="color: #0000FF; ">else</span> <span style="color: #0000FF; ">return</span> id<pos.id;<br /><span style="color: #008080; ">12</span>    }<br /><span style="color: #008080; ">13</span> };<br /><span style="color: #008080; ">14</span> <span style="color: #0000FF; ">set</span><node> q;<br /><span style="color: #008080; ">15</span> <span style="color: #0000FF; ">int</span> dp[100005];<br /><span style="color: #008080; ">16</span> <span style="color: #0000FF; ">int</span> main()<br /><span style="color: #008080; ">17</span> {<br /><span style="color: #008080; ">18</span>      <span style="color: #0000FF; ">int</span> n;<br /><span style="color: #008080; ">19</span>      <span style="color: #0000FF; ">while</span>(scanf("%d",&n)!=EOF)<br /><span style="color: #008080; ">20</span>      {<br /><span style="color: #008080; ">21</span>         q.clear();<br /><span style="color: #008080; ">22</span>         <span style="color: #0000FF; ">for</span>(<span style="color: #0000FF; ">int</span> i=0;i<n;i++)<br /><span style="color: #008080; ">23</span>         {<br /><span style="color: #008080; ">24</span>             <span style="color: #0000FF; ">int</span> t;<br /><span style="color: #008080; ">25</span>             scanf("%d",&t);<br /><span style="color: #008080; ">26</span>             <span style="color: #0000FF; ">set</span><node>::iterator it=q.lower_bound(node(t,-1));<br /><span style="color: #008080; ">27</span>             <span style="color: #0000FF; ">int</span> ans;<br /><span style="color: #008080; ">28</span>             <span style="color: #0000FF; ">if</span>(it==q.begin())<br /><span style="color: #008080; ">29</span>               ans=1;<br /><span style="color: #008080; ">30</span>             <span style="color: #0000FF; ">else</span><br /><span style="color: #008080; ">31</span>               ans=dp[(--it)->id]+1;<br /><span style="color: #008080; ">32</span>             it=q.lower_bound(node(t,-1));<br /><span style="color: #008080; ">33</span>             <span style="color: #0000FF; ">if</span>(it!=q.end()&&it->height==t) <br /><span style="color: #008080; ">34</span>                  it=q.erase(it);<br /><span style="color: #008080; ">35</span>             <span style="color: #0000FF; ">while</span>(it!=q.end()&&dp[it->id]<=ans) <br /><span style="color: #008080; ">36</span>                  it=q.erase(it);<br /><span style="color: #008080; ">37</span>             q.insert(node(t,i)); <br /><span style="color: #008080; ">38</span>             dp[i]=ans;<br /><span style="color: #008080; ">39</span>         }<br /><span style="color: #008080; ">40</span>         printf("%d\n",dp[q.rbegin()->id]);<br /><span style="color: #008080; ">41</span>      }<br /><span style="color: #008080; ">42</span>      <span style="color: #0000FF; ">return</span> 0;<br /><span style="color: #008080; ">43</span> }<br /><span style="color: #008080; ">44</span> </div><img src ="http://m.shnenglu.com/yzhw/aggbug/165233.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/yzhw/" target="_blank">yzhw</a> 2012-02-09 19:33 <a href="http://m.shnenglu.com/yzhw/archive/2012/02/09/165233.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>pku 3943 Digits on the Floor q查集的zȝQ重点)+数字识别http://m.shnenglu.com/yzhw/archive/2012/01/14/164184.htmlyzhwyzhwSat, 14 Jan 2012 11:57:00 GMThttp://m.shnenglu.com/yzhw/archive/2012/01/14/164184.htmlhttp://m.shnenglu.com/yzhw/comments/164184.htmlhttp://m.shnenglu.com/yzhw/archive/2012/01/14/164184.html#Feedback0http://m.shnenglu.com/yzhw/comments/commentRss/164184.htmlhttp://m.shnenglu.com/yzhw/services/trackbacks/164184.html首先q题Q涉及到q查集的q用。开始犯了个很糊涂的错误Q本题新加上一条线D可能造成2U情?br />1、A - CQ新加线为CQ就是把Cq接到某个树枝上
2、A-C-BQ这U情况考虑漏了Q就是通过Cq个U把俩个不连通的集合l打通了
具体代码应该是这?br />for(int j=0;j<now;j++)
    if(find(now)!=find(j)&&cross(now,j))
          set[find(now)]=find(j);
开始糊涂蛋的写成了
for(int j=0;j<now;j++)
      if(cross(now,j))
         set[now]=find(j),break;
q个是只考虑了第一U情c?br />
关于数字识别的问题就好办多了Q主要根据部分相交和点相交的数目以及联通集中线D늚数目来判断数字(5?q要Ҏ叉积再来弄下Q,q题受益最q是q查集那里,Ҏ犯的错误?br />
代码如下Q?br />
  1 Source Code
  2 
  3 Problem: 3943        User: yzhw
  4 Memory: 656K        Time: 188MS
  5 Language: G++        Result: Accepted
  6 Source Code
  7 # include <cstdio>
  8 # include <vector>
  9 # include <cstring>
 10 # include <map>
 11 using namespace std;
 12 # define N 1005
 13 # define min(a,b) ((a)<(b)?(a):(b))
 14 # define max(a,b) ((a)>(b)?(a):(b))
 15 struct line
 16 {
 17     int x1,y1,x2,y2;
 18 }l[N];
 19 bool in(int x,int y,const line &pos)
 20 {
 21     if(x>=min(pos.x1,pos.x2)&&x<=max(pos.x1,pos.x2)&&
 22        y>=min(pos.y1,pos.y2)&&y<=max(pos.y1,pos.y2)&&
 23        (pos.y2-pos.y1)*(pos.x2-x)==(pos.x2-pos.x1)*(pos.y2-y))
 24        return true;
 25     else return false;
 26 }
 27 int cross(const line &a,const line &b)
 28 {
 29     if(a.x1==b.x1&&a.y1==b.y1||
 30         a.x2==b.x1&&a.y2==b.y1||
 31         a.x1==b.x2&&a.y1==b.y2||
 32         a.x2==b.x2&&a.y2==b.y2) return 1;
 33     else if(in(a.x1,a.y1,b)||in(a.x2,a.y2,b)||in(b.x1,b.y1,a)||in(b.x2,b.y2,a)) return 2;
 34     else return 0;
 35 }
 36 int cross(int x1,int y1,int x2,int y2)
 37 {
 38     return x1*y2-x2*y1;
 39 }
 40 struct node
 41 {
 42     vector<line> data;
 43     int type() const
 44     {
 45         int num[3]={0,0,0};
 46         for(int i=0;i<data.size();i++)
 47             for(int j=i+1;j<data.size();j++)
 48                 num[cross(data[i],data[j])]++;
 49         if(num[1]==4&&num[2]==0)
 50         {
 51             if(data.size()==4) return 0;
 52             else
 53             {
 54                 int target=-1,x1,y1,x2,y2;
 55                 for(int i=0;i<data.size();i++)
 56                 {
 57                     bool flag=true;
 58                     for(int j=0;j<data.size()&&flag;j++)
 59                         if(j!=i&&(data[i].x1==data[j].x1&&data[i].y1==data[j].y1||data[i].x1==data[j].x2&&data[i].y1==data[j].y2))
 60                             flag=false;
 61                     if(flag)
 62                     {
 63                         target=i;
 64                         x1=data[i].x2,y1=data[i].y2;
 65                         x2=data[i].x1,y2=data[i].y1;
 66                         break;
 67                     }
 68                     flag=true;
 69                     for(int j=0;j<data.size()&&flag;j++)
 70                         if(j!=i&&(data[i].x2==data[j].x1&&data[i].y2==data[j].y1||data[i].x2==data[j].x2&&data[i].y2==data[j].y2))
 71                             flag=false;
 72                     if(flag)
 73                     {
 74                         target=i;
 75                         x1=data[i].x1,y1=data[i].y1;
 76                         x2=data[i].x2,y2=data[i].y2;
 77                         break;
 78                     }
 79                 }
 80                 for(int i=0;i<data.size();i++)
 81                     if(i!=target)
 82                     {
 83                         if(data[i].x1==x1&&data[i].y1==y1)
 84                             return cross(data[i].x2-data[i].x1,data[i].y2-data[i].y1,x1-x2,y1-y2)<0?5:2;
 85                         else if(data[i].x2==x1&&data[i].y2==y1)
 86                             return cross(data[i].x1-data[i].x2,data[i].y1-data[i].y2,x1-x2,y1-y2)<0?5:2;
 87                     }
 88             }
 89             printf("wa!\n");
 90             while(true);
 91         }
 92         else if(num[1]==0&&num[2]==0)
 93             return 1;
 94         else if(num[1]==4&&num[2]==0)
 95             return 2;
 96         else if(num[1]==2&&num[2]==1)
 97             return 3;
 98         else if(num[1]==1&&num[2]==1)
 99             return 4;
100         else if(num[1]==4&&num[2]==1)
101             return 6;
102         else if(num[1]==2&&num[2]==0)
103             return 7;
104         else if(num[1]==4&&num[2]==2)
105             return 8;
106         else if(num[1]==3&&num[2]==1)
107             return 9;
108     }
109 };
110 map<int,node> data;
111 int n,set[N],ans[10];
112 int find(int pos)
113 {
114     if(set[pos]==pos) return pos;
115     else return set[pos]=find(set[pos]);
116 }
117 int main()
118 {
119     while(scanf("%d",&n)!=EOF&&n)
120     {
121         data.clear();
122         memset(ans,0,sizeof(ans));
123         for(int i=0;i<n;i++)
124         {
125             set[i]=i;
126             scanf("%d%d%d%d",&l[i].x1,&l[i].y1,&l[i].x2,&l[i].y2);
127             for(int j=0;j<i;j++)
128                 if(cross(l[i],l[j])&&find(i)!=find(j))
129                     set[find(i)]=find(j);
130         }
131         for(int i=0;i<n;i++)
132             data[find(i)].data.push_back(l[i]);
133         for(map<int,node>::iterator i=data.begin();i!=data.end();i++)
134             ans[i->second.type()]++;
135         printf("%d",ans[0]);
136         for(int i=1;i<10;i++)
137             printf(" %d",ans[i]);
138         printf("\n");
139     }
140     return 0;
141 }


yzhw 2012-01-14 19:57 发表评论
]]>
pku 3998 Land Division DP斜率优化http://m.shnenglu.com/yzhw/archive/2011/10/18/158598.htmlyzhwyzhwMon, 17 Oct 2011 18:17:00 GMThttp://m.shnenglu.com/yzhw/archive/2011/10/18/158598.htmlhttp://m.shnenglu.com/yzhw/comments/158598.htmlhttp://m.shnenglu.com/yzhw/archive/2011/10/18/158598.html#Feedback1http://m.shnenglu.com/yzhw/comments/commentRss/158598.htmlhttp://m.shnenglu.com/yzhw/services/trackbacks/158598.html阅读全文

yzhw 2011-10-18 02:17 发表评论
]]>
HDU 3682 To Be an Dream Architect Ҏ原理http://m.shnenglu.com/yzhw/archive/2011/10/03/157376.htmlyzhwyzhwSun, 02 Oct 2011 16:06:00 GMThttp://m.shnenglu.com/yzhw/archive/2011/10/03/157376.htmlhttp://m.shnenglu.com/yzhw/comments/157376.htmlhttp://m.shnenglu.com/yzhw/archive/2011/10/03/157376.html#Feedback0http://m.shnenglu.com/yzhw/comments/commentRss/157376.htmlhttp://m.shnenglu.com/yzhw/services/trackbacks/157376.html每次可以删除一个木条x=?,y=?或者x=?,z=?或者y=?,z=?Q求最后删除的木块L
Q?img src="http://acm.hdu.edu.cn/data/images/3682-1.gif" alt="" />
开始写的时候出CBUGQ无奈,上网N解,更无奈,都是些几句话hash然后是一堆难懂的代码。?br />后来仔细想了惻I把重复的操作去除后(是两次删除的同一个木条)Q下面就是个很简单的Ҏ原理?br />因ؓ去除了重复操作,一个木块最多被删除3ơ,然后删除的个数就删除臛_一ơ的个数-删除臛_两次的个?删除臛_3ơ的个数。不能强行枚举,可以用map或者传说中的hash记录被删除掉木块的次数。这里,׃操作最多m=1000Q删除木块数最多ؓC(m,2)Q然后两两枚举操作,把相交木块删除次?1Q然后最后map中所有木块删除次数只能有2个|1?Q当gؓ1Ӟtotal-1,gؓ3Ӟtotal-2
Z么?因ؓ我说了,一个木块最多被删除3ơ,然后俩俩枚D的时候,你懂的?br />
 1 # include <cstdio>
 2 # include <utility>
 3 # include <cstring>
 4 # include <algorithm>
 5 # include <functional>
 6 # include <set>
 7 # include <cstdlib>
 8 # include <map>
 9 using namespace std;
10 struct node
11 {
12     int p[3];
13     bool operator<(const node &pos) const
14     {
15         for(int i=0;i<3;i++)
16             if(p[i]!=pos.p[i]) 
17                 return p[i]<pos.p[i];
18         return false;
19     }
20 };
21 pair<int,int> data[1000][2];
22 set<pair<pair<int,int>,pair<int,int> > > r1;
23 map<node,int> r2;
24 int main()
25 {
26     int test;
27     scanf("%d",&test);
28     while(test--)
29     {
30        int n,m,p=0;
31        char str[128];
32        scanf("%d%d",&n,&m);
33        r1.clear();r2.clear();
34        while(m--)
35        {
36            scanf("%s",str);
37            char *t=strtok(str,",");
38            data[p][0].first=(*t)-'X';
39            data[p][0].second=atoi(t+2);
40            t=strtok(NULL," ");
41            data[p][1].first=(*t)-'X';
42            data[p][1].second=atoi(t+2);
43            if(data[p][0].first>data[p][1].first) swap(data[p][0],data[p][1]);
44            pair< pair<int,int>,pair<int,int> > tt;
45            tt.first=data[p][0];
46            tt.second=data[p][1];
47            if(data[p][0].second>=1&&data[p][0].second<=n&&data[p][1].second>=1&&data[p][1].second<=n&&r1.find(tt)==r1.end()) p++,r1.insert(tt);
48        }
49        m=p;
50        for(int i=0;i<m;i++)
51         for(int j=i+1;j<m;j++)
52           if(data[i][0]==data[j][0]&&data[i][1].first!=data[j][1].first||
53              data[i][1]==data[j][0]&&data[i][0].first!=data[j][1].first||
54              data[i][0]==data[j][1]&&data[i][1].first!=data[j][0].first||
55              data[i][1]==data[j][1]&&data[i][0].first!=data[j][0].first)
56           {
57               node t;
58               t.p[data[i][0].first]=data[i][0].second;
59               t.p[data[i][1].first]=data[i][1].second;
60               t.p[data[j][0].first]=data[j][0].second;
61               t.p[data[j][1].first]=data[j][1].second;
62               r2[t]++;
63           }
64        int total=m*n;
65        for(map<node,int>::iterator i=r2.begin();i!=r2.end();i++)
66            if(i->second==1) total--;
67            else total-=2;
68        printf("%d\n",total);
69     }
70     //system("pause");
71     return 0;
72 
73 


yzhw 2011-10-03 00:06 发表评论
]]>
2010 天|赛区G hdu 3726 splay http://m.shnenglu.com/yzhw/archive/2011/09/30/157191.htmlyzhwyzhwFri, 30 Sep 2011 00:51:00 GMThttp://m.shnenglu.com/yzhw/archive/2011/09/30/157191.htmlhttp://m.shnenglu.com/yzhw/comments/157191.htmlhttp://m.shnenglu.com/yzhw/archive/2011/09/30/157191.html#Feedback0http://m.shnenglu.com/yzhw/comments/commentRss/157191.htmlhttp://m.shnenglu.com/yzhw/services/trackbacks/157191.html阅读全文

yzhw 2011-09-30 08:51 发表评论
]]>
2010 ICPC天|赛区 J hdu 3727 划分树的理解http://m.shnenglu.com/yzhw/archive/2011/09/30/157189.htmlyzhwyzhwFri, 30 Sep 2011 00:44:00 GMThttp://m.shnenglu.com/yzhw/archive/2011/09/30/157189.htmlhttp://m.shnenglu.com/yzhw/comments/157189.htmlhttp://m.shnenglu.com/yzhw/archive/2011/09/30/157189.html#Feedback0http://m.shnenglu.com/yzhw/comments/commentRss/157189.htmlhttp://m.shnenglu.com/yzhw/services/trackbacks/157189.html按照我的理解Q划分树即一个线D|Q用来确定数l下标和层次Q以及一个log2(n)*n的数l,来记录划分信?br />q题实现4个操作:
1、插?br />按照划分树的定义Q如果小于有序表中中间节点的|递归插入左子树,否则递归插入叛_树。更新当前区间段的划分信息(无非是往后计一个)
2、询问s,e区间Wk数
查询s,e区间里面划分到左子树的个数iQ如果i>=kQ那么显焉归到左子树查询Q否则就是递归到右子树查询k-i的数。注意!q里要重新定位左子树和右子树中的区间Q由于是闭区_那么做端点ؓs+sum(s-1),右端点ؓs+sum(e)-1Q这个减一丢了。。调了我半天。。哎。。以前写都是左闭叛_区间的,l果习惯了。?br />3、查询gؓk的数的位?br />q个需要一个辅助数l,记录gؓk的数插在最层区间的哪个位|了。这个办好后Q就Ҏ了,如果数被划分C左子树,那么递归查询左子树,否则q回递归查询叛_树的值加上当前区间被划分到左子树的个?br />4、查询rank k的数
同样是这P如果当前区间被划分到左子树的个数于{于kQ那么递归查询左子树,否则递归查询叛_树中rank为k-左子树的size?br />大概思想是q样了,实现有很多细节,比如说假设p==区间左端点(左区间木有数Q,那么sum(p-1)的时候就要特判下了。我喜欢用三元式Q很方便?br />
代码
# include <cstdio>
# include <cstring>
# include <map>
using namespace
std;
# define N 100005
int arr[20][N];
struct
node
{

   int
s,e,layer;
   int
c;
}
st[4*N];
int
q[500000][4],c;
int
remap[N],position[N];
map<int,int> refer;
void
init(int s,int e,int layer,int pos=1)
{

    st[pos].s=s;st[pos].e=e;
    st[pos].layer=layer;
    st[pos].c=st[pos].s;
    if
(s!=e) init(s,(s+e)/2,layer+1,pos<<1),init((s+e)/2+1,e,layer+1,(pos<<1)+1);
}

void
insert(int value,int pos=1)
{

     if
(st[pos].s==st[pos].e)
        arr[st[pos].layer][st[pos].c++]=value;
     else

     {

         if
(value<=(st[pos].s+st[pos].e)/2)
         {

             arr[st[pos].layer][st[pos].c]=(st[pos].c==st[pos].s?0:arr[st[pos].layer][st[pos].c-1])+1;
             st[pos].c++;
             insert(value,pos<<1);
         }

         else

         {

             arr[st[pos].layer][st[pos].c]=(st[pos].c==st[pos].s?0:arr[st[pos].layer][st[pos].c-1]);
             st[pos].c++;
             insert(value,(pos<<1)+1);
         }
     }
}

int
q1(int s,int t,int k,int pos=1)
{

    if
(st[pos].s==st[pos].e)
        return
  remap[arr[st[pos].layer][st[pos].s]];
    else

    {

        if
(arr[st[pos].layer][t]-(s==st[pos].s?0:arr[st[pos].layer][s-1])>=k)//left
            return q1(st[pos].s+(s==st[pos].s?0:arr[st[pos].layer][s-1]),st[pos].s+arr[st[pos].layer][t]-1,k,pos<<1);
        else
//right
        {
            k-=arr[st[pos].layer][t]-(s==st[pos].s?0:arr[st[pos].layer][s-1]);
            return
q1((st[pos].s+st[pos].e)/2+1+s-1-st[pos].s+1-(s==st[pos].s?0:arr[st[pos].layer][s-1]),(st[pos].s+st[pos].e)/2+1+t-st[pos].s+1-arr[st[pos].layer][t]-1,k,(pos<<1)+1);
        }
    }
}

int
q2(int s,int pos=1)
{

    if
(st[pos].s==st[pos].e) return 1;
    else if
(arr[st[pos].layer][s]-(s==st[pos].s?0:arr[st[pos].layer][s-1]))
      return
q2(st[pos].s+arr[st[pos].layer][s]-1,pos<<1);
    else
      return
(st[pos].c==st[pos].s?0:arr[st[pos].layer][st[pos].c-1])+q2((st[pos].s+st[pos].e)/2+1+s-st[pos].s+1-arr[st[pos].layer][s]-1,(pos<<1)+1);
}

int
q3(int k,int pos=1)
{

    if
(st[pos].s==st[pos].e) return remap[arr[st[pos].layer][st[pos].s]];
    else if
(k<=(st[pos].c==st[pos].s?0:arr[st[pos].layer][st[pos].c-1])) return q3(k,pos<<1);
    else return
q3(k-(st[pos].s==st[pos].c?0:arr[st[pos].layer][st[pos].c-1]),(pos<<1)+1);
}

int
main()
{

    int
n,test=1;
    while
(scanf("%d",&n)!=EOF)
    {

       refer.clear();c=1;
       memset(arr,0,sizeof(arr));
       for
(int i=0;i<n;i++)
       {

           char
tmp[12];
           scanf("%s",tmp);
           if
(*tmp=='I')
             q[i][0]=0;
           else
q[i][0]=tmp[6]-48;
           switch
(q[i][0])
           {

           case
0:
                scanf("%d",&q[i][1]);
                refer[q[i][1]]=0;
                break
;
           case
1:
                scanf("%d%d%d",&q[i][1],&q[i][2],&q[i][3]);
                break
;
           default
:
                scanf("%d",&q[i][1]);
                break
;
           };
       }

       for
(map<int,int>::iterator i=refer.begin();i!=refer.end();i++)
         remap[c]=i->first,i->second=c++;
       init(1,c-1,0);
       long long
t[4]={0,0,0,0};
       int
now=1;
       for
(int i=0;i<n;i++)
         switch
(q[i][0])
         {

           case
0:
                insert(refer[q[i][1]]);
                position[refer[q[i][1]]]=now++;
                break
;
           case
1:
                t[1]+=q1(q[i][1],q[i][2],q[i][3]);
                break
;
           case
2:
                t[2]+=q2(position[refer[q[i][1]]]);
                break
;
           case
3:
                t[3]+=q3(q[i][1]);
                break
;
         };

       printf("Case %d:\n%I64d\n%I64d\n%I64d\n",test++,t[1],t[2],t[3]);
    }

    return
0;
}



yzhw 2011-09-30 08:44 发表评论
]]>
ճˮþ޾Ʒtv| һþþþþþ| ƷþþþþþþӰԺ | þۺɫHEZYO| ŷþۺϾɫۺ| þ޹˾Ʒ| þþþþƷAV| re99þþƷ99| þþþƷþþþþ | þֹۺ޾Ʒ| ޾Ʒtvþþþþþþ | պƷþþվ| 99þѹƷ| þþһƷ99þþƷ88| ɫþþ99Ʒ| պӰԺþ| ھƷѾþӰԺ| 99þѹػ| þþþþþŮú| ݺݾþۺ| 777þµַ| þҹҹݺ| þ| 99þó˹Ʒ| þ99ù龫Ʒ66| ŷƷ˿þþĻ| ڵþ| Ʒþþþþþþ| ˾þĻ| ƷŮþøվ| þҹ³˿ƬҹƷ| 99þþƷëƬ| 91Ʒþþþþ91 | þþþĻɫ | AVһþ| ˾þô߽槼| Ʒþþþþ֣ݹ˾| 99þþƷѿһ | ƷžžþƵ | þþƷһպ| ɫۺϾþ|