{"id":169,"date":"2012-04-07T22:49:44","date_gmt":"2012-04-07T14:49:44","guid":{"rendered":"http:\/\/www.shuizilong.com\/house\/?p=169"},"modified":"2012-04-07T23:17:36","modified_gmt":"2012-04-07T15:17:36","slug":"coci-20112012-round-1","status":"publish","type":"post","link":"https:\/\/www.shuizilong.com\/house\/archives\/coci-20112012-round-1\/","title":{"rendered":"COCI 2011\/2012 Round #1"},"content":{"rendered":"<p><!--more--><\/p>\n<h3>Brief description: <\/h3>\n<p>Problem A. jabuke<br \/>\n\u661f\u83b2\u8239\u3002<\/p>\n<p>Problem B. matrix<br \/>\n\u7ed9\u5b9a\u4e00\u4e2a N * N \u7684\u65b9\u9635\uff0c\u5b9a\u4e49\u5b50\u77e9\u9635\u7684 beautiful_value = {\u4e3b\u5bf9\u89d2\u7ebf\u548c \u2013 \u526f\u5bf9\u89d2\u7ebf\u548c}\u3002<br \/>\n\u6c42\u6700\u5927\u503c\u3002<br \/>\n( .. N <= 400 . .)\n\nProblem C. X3\n\u7ed9\u5b9a N \u4e2a\u6570\uff0c\u6c42\u6240\u6709\u8fd9\u4e9b\u6570\u4e24\u4e24\u4e4b\u95f4\u7684\u5f02\u6216\u548c\u3002\n( .. N <= 10^6 .. .)\n\nProblem D. ples\n\u7ed9\u5b9a N \u540d\u7537\u751f\u548c N \u540d\u5973\u751f\u7684\u8eab\u9ad8\uff0c\u5176\u4e2d\u6b63\u6570\u8868\u793a\u5176\u53ea\u613f\u610f\u548c\u6bd4\u81ea\u5df1\u9ad8\u7684\u5f02\u6027\u8df3\u821e\uff0c\n\u8d1f\u6570\u8868\u793a\u5176\u53ea\u613f\u610f\u548c\u6bd4\u81ea\u5df1\u77ee\u7684\u5f02\u6027\u8df3\u821e\uff0c\u6c42\u6700\u5927\u5339\u914d\u3002\n\n( .. N <= 10^5 .. .)\n\nProblem E. sort\n\n\u7ed9\u51fa\u4ee5\u4e0b\u7684\u4e00\u4e2a\u6392\u5e8f\u7b97\u6cd5..\n\nwhile (\u672a\u5b8c\u6210){\n\t\u5c06\u6240\u6709\u9012\u51cf\u5e8f\u5217\u5206\u79bb\u51fa\u6765\uff0c\u8fdb\u884c reverse() \u64cd\u4f5c\u3002\n}\n\n\u7ed9\u5b9a\u4e00\u4e2a {1..N} \u7684\u6392\u5217\uff0c\u95ee\u8fd9\u4e2a\u6392\u5e8f\u7b97\u6cd5\u4f1a\u6267\u884c\u591a\u5c11\u6b21 reverse() \u64cd\u4f5c\u3002\n\n( .. N <= 10^5 .. )\n\nProblem F. skakac\n\n\u7ed9\u5b9a\u4e00\u5757 N * N \u7684 chess \u68cb\u76d8\uff0c\u6bcf\u4e2a\u683c\u5b50\u4e0a\u9762\u6807\u6ce8\u4e00\u4e2a\u6570\u5b57\uff0c{aij}\n\u8868\u793a\u8fd9\u4e2a\u683c\u5b50\u5728\u6b65\u6570\u662f K \u7684\u500d\u6570\u7684\u65f6\u5019\u4f1a\u88ab blocked\u3002\n\u73b0\u5728\u7ed9\u4f60\u4e00\u4e2a knight \u7684\u521d\u59cb\u4f4d\u7f6e\uff0c\u95ee T \u6b65\u4e4b\u540e\u6240\u6709\u53ef\u80fd\u5360\u636e\u7684\u4f4d\u7f6e\u3002\n\n( .. N <= 30 ., T <= 10^6, aij <= 10^9 . ..)\n\n\n\n<h3>Analysis: <\/h3>\n<p>A \u7565\u3001B \u7565 \uff08\u6ce8\u610f MLE \u7684\u95ee\u9898\uff09\u3001C \u7565 \uff08\u6309\u4f4d\u7edf\u8ba1\uff09\u3001D \u7565\uff08\u6392\u5e8f\u3001\u8d2a\u5fc3\uff0c\u6ce8\u610f\u4e0d\u8981\u5f80\u56fe\u8bba\u65b9\u9762\u60f3\u3002\u3002\u3002)<\/p>\n<p>E \u6a21\u62df\u51e0\u4e2a\u5c0f\u6570\u636e\u3002\u3002\u53d1\u73b0\u7528\u6811\u72b6\u6570\u7ec4\u5c31\u884c\u4e86\u3002\u3002<\/p>\n<p>F \u81f3\u4e8e\u6700\u540e\u4e00\u9898\u3002\u3002<\/p>\n<pre class=\"brush: cpp; light: false; title: jabuke; toolbar: true; notranslate\" title=\"jabuke\">\r\n#include&lt;iostream&gt;\r\nusing namespace std;\r\nint n,m,k,col,l,r,ans;\r\nint main(){\r\n    for(cin&gt;&gt;n&gt;&gt;m&gt;&gt;k,l=1,r=l+m-1;k--;)\r\n    if(cin&gt;&gt;col,col&lt;l)ans+=l-col,l=col,r=l+m-1;\r\n    else if(col&gt;r)ans+=col-r,r=col,l=r-m+1;\r\n    cout&lt;&lt;ans&lt;&lt;endl;\r\n}\r\n<\/pre>\n<pre class=\"brush: cpp; light: false; title: matrix; toolbar: true; notranslate\" title=\"matrix\">\r\nconst int N = 409;\r\nint A&#x5B;N]&#x5B;N], L&#x5B;N]&#x5B;N], R&#x5B;N]&#x5B;N];\r\nint n, res;\r\n \r\nint main(){\r\n \r\n    \/\/freopen(&quot;in.txt&quot;, &quot;r&quot;, stdin);\r\n \r\n    RD(n); REP_2(i, j, n, n) cin &gt;&gt; A&#x5B;i]&#x5B;j];\r\n \r\n    res = 0; REP(i, n){\r\n \r\n        REP(j, n){\r\n            L&#x5B;j]&#x5B;0] = A&#x5B;i]&#x5B;j], R&#x5B;j]&#x5B;0] = A&#x5B;i]&#x5B;j];\r\n            REP_1(k, n){\r\n                if (i+k==n||j+k==n) break;\r\n                L&#x5B;j]&#x5B;k] = L&#x5B;j]&#x5B;k-1] + A&#x5B;i+k]&#x5B;j+k];\r\n            }\r\n            REP_1(k, n){\r\n                if (i+k==n||j-k==-1) break;\r\n                R&#x5B;j]&#x5B;k] = R&#x5B;j]&#x5B;k-1] + A&#x5B;i+k]&#x5B;j-k];\r\n            }\r\n        }\r\n \r\n        REP(j, n) REP(k, n){\r\n            if (j+k == n) break;\r\n            checkMax(res, L&#x5B;j]&#x5B;k] - R&#x5B;j+k]&#x5B;k]);\r\n        }\r\n    }\r\n \r\n    cout &lt;&lt; res &lt;&lt; endl;\r\n}\r\n<\/pre>\n<pre class=\"brush: cpp; light: false; title: X3; toolbar: true; notranslate\" title=\"X3\">\r\n#include&lt;iostream&gt;\r\nusing namespace std;\r\n#define LL long long\r\nconst int N=20;\r\nLL i,t,n,sum,a&#x5B;N]&#x5B;2];\r\nint main(){\r\n    for(cin&gt;&gt;n;n--;)for(scanf(&quot;%d&quot;,&amp;t),i=0;i&lt;N;++a&#x5B;i]&#x5B;!!(t&amp;1&lt;&lt;i)],++i);\r\n    for(i=0;i&lt;N;++i)sum+=a&#x5B;i]&#x5B;0]*a&#x5B;i]&#x5B;1]*(1&lt;&lt;i);\r\n    cout&lt;&lt;sum&lt;&lt;endl;\r\n}\r\n<\/pre>\n<pre class=\"brush: cpp; light: false; title: ples; toolbar: true; notranslate\" title=\"ples\">\r\nVI A1, A2, B1, B2;\r\nint n, res;\r\n \r\nint main(){\r\n \r\n    \/\/freopen(&quot;in.txt&quot;, &quot;r&quot;, stdin);\r\n \r\n    RD(n);\r\n \r\n    int ai; REP(i, n){\r\n        RD(ai); if (ai &gt; 0) A1.PB(ai); else A2.PB(ai);\r\n    }\r\n \r\n    int bi; REP(i, n){\r\n        RD(bi); if (bi &gt; 0) B1.PB(bi); else B2.PB(bi);\r\n    }\r\n \r\n    SRT(A1), SRT(A2), SRT(B1), SRT(B2);\r\n \r\n    int j = 0; DWN(i, SZ(A1), 0){\r\n        if (j &lt; SZ(B2) &amp;&amp; abs(B2&#x5B;j]) &gt; A1&#x5B;i]) ++j;\r\n    }\r\n \r\n    res += j;\r\n \r\n    j = 0; DWN(i, SZ(B1), 0){\r\n        if (j &lt; SZ(A2) &amp;&amp; abs(A2&#x5B;j]) &gt; B1&#x5B;i]) ++j;\r\n    }\r\n \r\n    res += j;\r\n \r\n    cout &lt;&lt; res &lt;&lt; endl;\r\n}\r\n<\/pre>\n<pre class=\"brush: cpp; light: false; title: sort; toolbar: true; notranslate\" title=\"sort\">\r\nconst int N = 100009;\r\nint A&#x5B;N], C&#x5B;N], n;\r\n \r\nint S(int x){\r\n    int res = 0; while (x){res += C&#x5B;x]; x ^= low_bit(x);}\r\n    return res;\r\n}\r\n \r\nvoid M(int x){\r\n    while (x &lt;= n){++C&#x5B;x], x += low_bit(x);}\r\n}\r\n \r\nint main(){\r\n \r\n    REP_C(i, _RD(n)) RD(A&#x5B;i]);\r\n \r\n    LL ans = 0 ;\r\n \r\n    for (int i=0,j=1;i&lt;n;i=j,++j){\r\n        while (j&lt;n&amp;&amp;A&#x5B;j]&lt;A&#x5B;j-1]) ++j; if (i+1&lt;j) ++ans;\r\n        DWN(k, j, i) ans += (i+j-k-1) - S(A&#x5B;k]), M(A&#x5B;k]);\r\n    }\r\n \r\n    cout &lt;&lt; ans &lt;&lt; &quot;\\n&quot; ;\r\n}\r\n<\/pre>\n<pre class=\"brush: cpp; light: false; title: skakac; toolbar: true; notranslate\" title=\"skakac\">\r\nconst int TT = 1000009, N = 32;\r\nvector&lt;short&gt; mask&#x5B;N];\r\nshort _&#x5B;2], A&#x5B;2]&#x5B;N]; int K&#x5B;N], M&#x5B;N];\r\nint n, T, U, bj;\r\n \r\nint lcm(LL a, LL b){\r\n    LL t = a \/ __gcd(a, b) * b;\r\n    if (t &gt; T) return T + 1;\r\n    return t;\r\n}\r\n \r\nvoid no_solution(){\r\n    cout &lt;&lt; 0 &lt;&lt; endl;\r\n    exit(0);\r\n}\r\n \r\nvoid init(){\r\n    RD(n, T); int x0, y0; RD(x0, y0), --x0, --y0, A&#x5B;0]&#x5B;x0] = _1(y0\/2);\r\n    bj = x0 ^ y0;\r\n \r\n    int k, kk; REP(i, n){\r\n \r\n        REP(j, n) RD(K&#x5B;j]); M&#x5B;i] = 2; REP(j, n) M&#x5B;i] = lcm(M&#x5B;i], K&#x5B;j]);\r\n        mask&#x5B;i].resize(M&#x5B;i]);\r\n \r\n        REP(j, n){\r\n            k = K&#x5B;j]; if ((i^j^bj)&amp;1){\r\n                if (!(k&amp;1)) continue; kk = k &lt;&lt; 1;\r\n                for (int t=k;t&lt;M&#x5B;i];t+=kk) mask&#x5B;i]&#x5B;t] |= _1(j\/2);\r\n                if (M&#x5B;i] &lt;= T &amp;&amp; T&amp;1) mask&#x5B;i]&#x5B;0] |= _1(j\/2);\r\n            }\r\n            else {\r\n                k = k &amp; 1 ? k &lt;&lt; 1 : k;\r\n                for (int t=k;t&lt;M&#x5B;i];t+=k) mask&#x5B;i]&#x5B;t] |= _1(j\/2);\r\n                if (M&#x5B;i] &lt;= T &amp;&amp; !(T&amp;1)) mask&#x5B;i]&#x5B;0] |= _1(j\/2);\r\n            }\r\n \r\n        }\r\n    }\r\n \r\n}\r\n \r\n#define p (t&amp;1)\r\n#define q !p\r\n \r\nvoid solve(){\r\n    int S, op; REP_1(t, T){\r\n        RST(A&#x5B;p]); int tt = t ^ bj; REP(i, n) if (A&#x5B;q]&#x5B;i]){\r\n            op = (A&#x5B;q]&#x5B;i] &lt;&lt; 1) | (A&#x5B;q]&#x5B;i] &gt;&gt; 1);\r\n            A&#x5B;p]&#x5B;i-1] |= op, A&#x5B;p]&#x5B;i+1] |= op;\r\n            if ((i^tt)&amp;1) op = (A&#x5B;q]&#x5B;i] &gt;&gt; 1) | A&#x5B;q]&#x5B;i];\r\n            else op = (A&#x5B;q]&#x5B;i] &lt;&lt; 1) | A&#x5B;q]&#x5B;i];\r\n            A&#x5B;p]&#x5B;i-2] |= op, A&#x5B;p]&#x5B;i+2] |= op;\r\n        }\r\n \r\n        REP(i, n) A&#x5B;p]&#x5B;i] &amp;= mask&#x5B;i]&#x5B;t%M&#x5B;i]];\r\n    }\r\n}\r\n \r\n#undef p\r\n \r\nvoid print(){\r\n    int res = 0, p = T &amp; 1;\r\n    REP(i, n) res += count_bits(A&#x5B;p]&#x5B;i]); cout &lt;&lt; res &lt;&lt; endl;\r\n    REP_2(i, j, n, n) if (!((i^j^bj^T)&amp;1) &amp;&amp; _1(A&#x5B;p]&#x5B;i], j\/2)){\r\n        cout &lt;&lt; i+1 &lt;&lt; &quot; &quot; &lt;&lt; j+1 &lt;&lt; endl;\r\n    }\r\n}\r\n \r\nint main(){\r\n \r\n    \/\/freopen(&quot;in.txt&quot;, &quot;r&quot;, stdin);\r\n \r\n    init(); solve();\r\n    print();\r\n}\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[62],"tags":[],"class_list":["post-169","post","type-post","status-publish","format-standard","hentry","category-coci"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p2tdP7-2J","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.shuizilong.com\/house\/wp-json\/wp\/v2\/posts\/169","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.shuizilong.com\/house\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.shuizilong.com\/house\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.shuizilong.com\/house\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.shuizilong.com\/house\/wp-json\/wp\/v2\/comments?post=169"}],"version-history":[{"count":0,"href":"https:\/\/www.shuizilong.com\/house\/wp-json\/wp\/v2\/posts\/169\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.shuizilong.com\/house\/wp-json\/wp\/v2\/media?parent=169"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.shuizilong.com\/house\/wp-json\/wp\/v2\/categories?post=169"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.shuizilong.com\/house\/wp-json\/wp\/v2\/tags?post=169"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}