{"id":292,"date":"2012-07-11T19:03:26","date_gmt":"2012-07-11T11:03:26","guid":{"rendered":"http:\/\/www.shuizilong.com\/house\/?p=292"},"modified":"2012-07-13T20:00:39","modified_gmt":"2012-07-13T12:00:39","slug":"codechef-july-challenge-2012","status":"publish","type":"post","link":"https:\/\/www.shuizilong.com\/house\/archives\/codechef-july-challenge-2012\/","title":{"rendered":"CodeChef July Challenge 2012"},"content":{"rendered":"<p>\uff08\u8fdb\u5ea6\uff1a 9 \/ 10<\/p>\n<h3>Brief description: <\/h3>\n<p>Problem A. Addition chains:<br \/>\n[\u52a0\u6cd5\u94fe][\u5927\u6570][\u6784\u9020]<br \/>\n\u6784\u9020 n \u7684\u52a0\u6cd5\u94fe\u3001\u957f\u5ea6\u8d8a\u77ed\u5f97\u5206\u8d8a\u9ad8\u3001\u957f\u5ea6\u4e0d\u5f97\u8d85\u8fc7 500\u3002<br \/>\n\uff08n \u2264 10^100 \uff09<\/p>\n<p>Problem B. My Fair Coins:<br \/>\n[\u7ebf\u6027\u9012\u63a8\u6570\u5217][\u7c7b\u6590\u6ce2\u90a3\u5951\u6570\u5217][\u77e9\u9635\u4e58\u6cd5]<br \/>\n\u7565\uff09<\/p>\n<p>Problem C. Dynamic GCD:<br \/>\n[\u8f7b\u91cd\u8fb9\u6811\u94fe\u5256\u5206][\u7ebf\u6bb5\u6811]<br \/>\n\u7ed9\u5b9a\u4e00\u9897\u6811\uff0c\u52a8\u6001\u7ef4\u62a4\u4ee5\u4e0b\u64cd\u4f5c:<\/p>\n<ul>\n<li>C u v d: \u6bcf\u6b21\u4e00\u6761\u8def\u5f84\u4e0a\u7684\u6570 + d\u3002\uff08d \u4e3a\u6b63\u6570\uff09<\/li>\n<li>F u v: \u6c42\u4e00\u6761\u8def\u5f84\u4e0a\u6240\u6709\u6570\u7684 gcd\u3002<\/li>\n<\/ul>\n<p><!--more--><\/p>\n<p>Problem D. Chef&#8217;s Dream:<br \/>\n\u7565.. O(nlogn) \u8d2a\u5fc3)<\/p>\n<p>Problem E. Equivalent Suffix Tries:<br \/>\n\u7ed9\u5b9a\u4e00\u4e2a\u4e32 S\u3001\u95ee\u6709\u591a\u5c11\u4e32\u7684 Suffix Tries \u4e0e\u5176\u540c\u6784\u3002<\/p>\n<p>Problem F. Favourite Numbers:<br \/>\n[\u81ea\u52a8\u673aDP][\u6570\u4f4dDP]<br \/>\n\u7ed9\u5b9a\u4e00\u7ec4\u75c5\u6bd2\u4e32\uff0c\u95ee [l, r] \u533a\u95f4\u5185\uff0c\u7b2c kth \u4e2a\u5305\u542b\u6709\u75c5\u6bd2\u4e32\u7684\u6570\u662f\u591a\u5c11\u3002<\/p>\n<p>Problem G. The Gray-Similar Code:<br \/>\n[nice][adhoc]<br \/>\n\u7ed9\u5b9a\u4e00\u4e2a\u957f\u5ea6\u4e3a n \u7684\u5e8f\u5217 {ai}\uff0c\u76f8\u90bb\u4e24\u4e2a\u6570\u4e4b\u95f4\u7684 xor \u76f8\u5dee\u4e00\u4f4d\u3002<br \/>\n\u95ee\u6570\u7ec4\u4e2d\u662f\u5426\u5b58\u5728\u4e00\u7ec4 1 \u2264 i1 < i2 < i3 < i4 \u2264 n, \u4f7f\u5f97 a_i1 xor a_i2 xor a_i3 xor a_i4 = 0\u3002\n\nProblem H. Little Elephant and Bubble Sort:\n[\u6982\u7387][\u6811\u72b6\u6570\u7ec4]\n\u4e00\u4e2a\u6570\u7ec4\uff0c\u5bf9\u4e8e\u6bcf\u4e00\u4f4d\u6709 pi \u7684\u6982\u7387\u4e3a ai, 1-pi \u7684\u6982\u7387\u4e3a bi\u3002\u3002\n\u95ee\u8be5\u6570\u7ec4\u6267\u884c\u5192\u6ce1\u6392\u5e8f\u7684\u671f\u671b\u4ea4\u6362\u6b21\u6570\u3002\n\nProblem I. Restaurant Rating:\n[\u52a8\u6001\u7ef4\u62a4\u7b2c k \u5927\u6570][\u5927\u6839\u5806 + \u5c0f\u6839\u5806][\u5e73\u8861\u6811 TLE?]\n\u52a8\u6001\u7ef4\u62a4\u4e00\u4e2a\u5e8f\u5217\uff0c\u8981\u6c42\u652f\u6301\u4ee5\u4e0b\u64cd\u4f5c\uff1a\n1 x: \u63d2\u5165\u4e00\u4e2a\u6570 x\u3002\n2: \u8be2\u95ee\u7b2c kth \u5927\u7684\u6570\uff0ck \u4e3a \\floor{n\/3}\u3002\u3002\u3002\n\nProblem J. Gift Rift:\n[\u7b7e\u5230\u9898][\u978d\u70b9]\n\u7565\uff09\n\n...\n<!--more--><\/p>\n<h3>Analysis: <\/h3>\n<p>Addition chains:<br \/>\n\u6709\u5f85\u8865\u5b8c\uff09<\/p>\n<p>Dynamic GCD:<br \/>\n\u76ee\u6d4b\u4e0d\u80fd\u4e0a\u52a8\u6001\u6811\uff08\uff1f\u3002\u3002\u3002<\/p>\n<p>\u3002\u3002\u3002\u90a3\u4e48\u6811\u94fe\u5256\u5206\u662f\u5e38\u89c4\u4e86\u3002\u3002\u96c6\u4e2d\u5206\u6790\u5355\u94fe\u7684\u60c5\u51b5\u600e\u4e48\u7ef4\u62a4\u3002\u3002<br \/>\n\u5206\u6790\u4fee\u6539\u64cd\u4f5c\u3002\u3002\u90a3\u4e48\u4e00\u6bb5\u6570 +d \u7684\u8bdd\u3002\u3002\u3002\u76f8\u5bf9\u4e4b\u95f4\u7684\u5dee\u662f\u4e0d\u53d8\u7684\u3002\u3002<\/p>\n<p>\u7136\u540e\u6ce8\u610f gcd \u7684\u6027\u8d28\u3002\u3002 gcd(a, b) = gcd(a &#8211; b, b);<br \/>\n\u90a3\u4e48\u4e00\u4e32\u6570\u7684 gcd \u53ef\u4ee5\u8f6c\u6362\u4e3a\u3002\u3002gcd(a, b-a, c-a, d-a &#8230; )<br \/>\n\uff08<a href=\"http:\/\/code.google.com\/codejam\/contest\/433101\/dashboard#s=p1\">\u53c2\u89c1 GCJ Qualification Round 2010 Problem B. Fair Warning<\/a><\/p>\n<p>\u8fd9\u6837\u5c31\u53ef\u4ee5\u7528\u5757\u72b6\u94fe\u8868\u6765\u7ef4\u62a4\u3002\u3002\u3002\u5bf9\u4e8e\u5757\u72b6\u94fe\u8868\u7684\u5927\u5c0f\u3002\u3002<\/p>\n<p>\u8fd9\u91cc\u6709\u4e24\u79cd\u9009\u62e9\u3002\u3002\u4e00\u79cd\u662f\u5bf9\u6240\u6709\u94fe\u7528\u4e00\u4e2a\u7edf\u4e00\u7684\u503c \uff08\u4f8b\u5982 \u6574\u9897\u6811\u7684 sqrt(n) \u3002\u3002<br \/>\n\u53e6\u4e00\u79cd\u662f\u5bf9\u6bcf\u6761\u94fe\u7528\u4e0d\u540c\u7684\u503c\u3002\u3002\uff08\u6bcf\u6761\u94fe\u7684 sqrt(n)\u3002\u3002\u3002<br \/>\n\u8fd9\u91cc\u6709\u5f85\u5206\u6790\u3002\u3002\u3002<\/p>\n<p>\u4f46\u662f\u4ee5\u4e0a\u4e24\u79cd\u65b9\u6cd5\u90fd TLE \u4e86\u3002\u3002\u3002<br \/>\n\u4e0b\u9762\u9000\u56de\u524d\u9762\u4e00\u4e2a\u6b65\u9aa4\u3002\u3002\u3002<br \/>\n\u4ecd\u7136\u662f\u5229\u7528\u90a3\u4e2a\u5174\u81f4\u3002\u3002\u3002\u6ce8\u610f\u5230\u4e00\u4e32\u6570\u7684 gcd \u53ef\u4ee5\u8f6c\u6362\u4e3a<\/p>\n<p>gcd(a, b-a, c-b, d-a) \u3002\u3002\u3002\u3002\u3002<br \/>\n\u8fd9\u6837\u518d\u5bf9\u539f\u6570\u5217\u5dee\u5206\u5f97\u5230\u6570\u5217 b\u3002\u3002\u3002\u4fee\u6539\u64cd\u4f5c\u7684\u8bdd\u3002\u3002\u81f3\u591a\u53ea\u4f1a\u5f71\u54cd\u5230 b \u6570\u7ec4\u7684\u4e24\u9879\u3002\u3002\u3002<\/p>\n<p>\u4e8e\u662f\u6210\u6bb5\u4fee\u6539\uff08+d\uff09\u6210\u6bb5\u8be2\u95ee\u7684 gcd \u3002\u3002\u3002\u5c31\u7b49\u4ef7\u4e8e\u6c42\u4ee5\u4e0b\u4e24\u4e2a\u5b50\u95ee\u9898\u7684 gcd\u3002\u3002\u3002\u3002\u3002<br \/>\n\u6210\u6bb5\u4fee\u6539 (+d)\uff0c\u5355\u70b9\u8be2\u95ee\u3002\u3002\u3002<br \/>\n\u5355\u70b9\u4fee\u6539\uff0c\u6210\u6bb5 gcd\u3002\u3002\u3002\u3002<\/p>\n<p>\u4ee5\u4e0a\u4e24\u4e2a\u95ee\u9898\u5206\u522b\u7528\u7ebf\u6bb5\u6811\u7ef4\u62a4\u5373\u53ef\u3002\u3002<\/p>\n<p>Equivalent Suffix Tries:<br \/>\n\u3002\u3002\u3002<\/p>\n<p>Favourite Numbers:<br \/>\ndp[i][u] \u8868\u793a\u5f53\u524d\u957f\u5ea6\u4e3a i\uff0c\u5728\u81ea\u52a8\u673a\u7684 u \u4f4d\u7f6e\u65f6\u6709\u4e32\u662f\u5b58\u6d3b\u7684\u3002\u3002<br \/>\n\u56e0\u4e3a\u4e32\u90fd\u662f\u53cd\u7740 Input \u7684\uff0c\u6240\u4ee5\u72b6\u6001\u8f6c\u79fb\u7684\u65f6\u5019\u6ce8\u610f\u5411\u76f8\u53cd\u65b9\u5411\u8f6c\u79fb\u3002<br \/>\n\u6570\u4f4dDP\u597d\u50cf\u4e5f\u53ef\u4ee5\u4f46\u662f\u597d\u50cf\u4e0d\u600e\u4e48\u597d\u5199\u3002\u3002\uff09<\/p>\n<p>The Gray-Similar Code:<br \/>\n\u5047\u8bbe\u5b58\u5728\u4e00\u7ec4\u89e3\uff0ci1, i2, i3, i4\u3002<br \/>\n\u5219\u8bbe Ai1 ^ Ai2 = Ai3 ^ Ai4 = mask;<br \/>\n\u3002\u3002\u82e5 mask != 0 \uff0c\u5219\u5fc5\u5b58\u5728\u76f8\u90bb\u4e24\u9879\u5c5e\u4e8e [i1, i2] \u548c [i3, i4] \u533a\u95f4\uff0c\u4f7f\u5f97\u5b83\u4eec\u7684 ^ \u7b49\u4e8e mask \u4e2d\u7684\u4e00\u4e2a\u4e8c\u8fdb\u5236\u4f4d\u3002<br \/>\n\uff08\u4ece\u8def\u5f84\u7684\u89d2\u5ea6\u8003\u8651\u5373\u53ef\u3002\u3002\uff09<br \/>\n\u8fd9\u6837\u6574\u4e2a\u7b97\u6cd5\u5c31\u5206\u6210\u4e86\u4e24\u4e2a\u6b65\u9aa4\uff0c\u9996\u5148\u5148\u5224\u65ad mask = 0 \u7684\u60c5\u51b5\uff0c\u8fd9\u79cd\u60c5\u51b5\u6709\u4e24\u7c7b\u3002\uff084\u4e2a\u4e00\u6837\u7684\u6570\uff0c\u6216\u80052\u7ec42\u4e2a\u4e00\u6837\u7684\u6570\u3002\uff09<br \/>\n\u4e4b\u540e\u5904\u7406 mask != 0 \u7684\u60c5\u51b5\uff0c\u505a\u5dee\u5206\u9884\u5904\u7406\u51fa\u4e00\u4e2a int S[64]; \u7684\u6570\u7ec4\u626b\u63cf\u5373\u53ef\u3002\u6ce8\u610f\u4f7f\u7528 unsigned long long;<\/p>\n<p>&#8230;<\/p>\n<h3>External link: <\/h3>\n<p><a href=\"http:\/\/www.codechef.com\/JULY12\/\">http:\/\/www.codechef.com\/JULY12\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uff08\u8fdb\u5ea6\uff1a 9 \/ 10 Brief description: Problem A. Addition chains: [\u52a0\u6cd5\u94fe][\u5927\u6570][\u6784\u9020] \u6784\u9020 n \u7684\u52a0\u6cd5\u94fe\u3001\u957f\u5ea6\u8d8a\u77ed\u5f97\u5206\u8d8a\u9ad8\u3001\u957f\u5ea6\u4e0d\u5f97\u8d85\u8fc7 500\u3002 \uff08n \u2264 10^100 \uff09 Problem B. My Fair Coins: [\u7ebf\u6027\u9012\u63a8\u6570\u5217][\u7c7b\u6590\u6ce2\u90a3\u5951\u6570\u5217][\u77e9\u9635\u4e58\u6cd5] \u7565\uff09 Problem C. Dynamic GCD: [\u8f7b\u91cd\u8fb9\u6811\u94fe\u5256\u5206][\u7ebf\u6bb5\u6811] \u7ed9\u5b9a\u4e00\u9897\u6811\uff0c\u52a8\u6001\u7ef4\u62a4\u4ee5\u4e0b\u64cd\u4f5c: C u v d: \u6bcf\u6b21\u4e00\u6761\u8def\u5f84\u4e0a\u7684\u6570 + d\u3002\uff08d \u4e3a\u6b63\u6570\uff09 F u v: \u6c42\u4e00\u6761\u8def\u5f84\u4e0a\u6240\u6709\u6570\u7684 gcd\u3002<\/p>\n","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":[83],"tags":[],"class_list":["post-292","post","type-post","status-publish","format-standard","hentry","category-codechef"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p2tdP7-4I","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.shuizilong.com\/house\/wp-json\/wp\/v2\/posts\/292","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=292"}],"version-history":[{"count":1,"href":"https:\/\/www.shuizilong.com\/house\/wp-json\/wp\/v2\/posts\/292\/revisions"}],"predecessor-version":[{"id":293,"href":"https:\/\/www.shuizilong.com\/house\/wp-json\/wp\/v2\/posts\/292\/revisions\/293"}],"wp:attachment":[{"href":"https:\/\/www.shuizilong.com\/house\/wp-json\/wp\/v2\/media?parent=292"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.shuizilong.com\/house\/wp-json\/wp\/v2\/categories?post=292"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.shuizilong.com\/house\/wp-json\/wp\/v2\/tags?post=292"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}