{"id":494,"date":"2011-10-06T13:33:00","date_gmt":"2011-10-06T05:33:00","guid":{"rendered":"http:\/\/localhost\/?p=494"},"modified":"2011-10-06T13:33:00","modified_gmt":"2011-10-06T05:33:00","slug":"srm_520","status":"publish","type":"post","link":"https:\/\/www.shuizilong.com\/wjmzbmr\/?p=494","title":{"rendered":"SRM 520"},"content":{"rendered":"\n<p>250\uff1a\u50bb\u53c9\u9898\uff0c\u679a\u4e3e\u5373\u53ef<\/p>\n<p>500\uff1a\u5bf9\u6bcf\u4e2a\u4eba\u7b97\u51fa\u4ed6\u662f\u591a\u5c11\u5206\u7684\u65b9\u6cd5\u6570\uff0c\u7136\u540e\u505a\u4e00\u6b21\u7b80\u5355\u7684dp\u5373\u53ef<\/p>\n<p>Code:<\/p>\n<p>#include &lt;vector&gt;#include &lt;list&gt;#include &lt;map&gt;#include &lt;set&gt;#include &lt;deque&gt;#include &lt;stack&gt;#include &lt;bitset&gt;#include &lt;algorithm&gt;#include &lt;functional&gt;#include &lt;numeric&gt;#include &lt;utility&gt;#include &lt;sstream&gt;#include &lt;iostream&gt;#include &lt;iomanip&gt;#include &lt;cstdio&gt;#include &lt;cmath&gt;#include &lt;cstdlib&gt;#include &lt;ctime&gt;#include &lt;cstring&gt;#define foreach(e,x) for(__typeof(x.begin()) e=x.begin();e!=x.end();++e)using namespace std;class SRMIntermissionPhase {        public:        int countWays(vector&lt;int&gt;, vector&lt;string&gt;);};const int MOD = int(1e9) + 7;inline int add(int a, int b) {        int c = a + b;        if (c &gt;= MOD)                c -= MOD;        return c;}int SRMIntermissionPhase::countWays(vector&lt;int&gt; points, vector&lt;string&gt; description) {        const int MAX_VALUE = 200000 + 10;        vector&lt;int&gt; am(MAX_VALUE, 0);        am[MAX_VALUE &#8211; 1] = 1;        for (int i = 0; i &lt; description.size(); ++i) {                vector&lt;int&gt; cur(MAX_VALUE, 0);                cur[0] = 1;                for (int j = 0; j &lt; 3; ++j) {                        if (description[i][j] == &#8216;Y&#8217;) {                                int v = points[j];                                vector&lt;int&gt; ncur(MAX_VALUE, 0);                                partial_sum(cur.begin(), cur.end(), cur.begin(), add);                                for (int i = 1; i &lt; ncur.size(); ++i) {                                        ncur[i] = cur[i &#8211; 1] &#8211; (i &gt;= v + 1 ? cur[i &#8211; v &#8211; 1] : 0);                                        if (ncur[i] &lt; 0)                                                ncur[i] += MOD;                                }                                cur = ncur;                        }                }                vector&lt;int&gt; nam(MAX_VALUE, 0);                partial_sum(am.rbegin(), am.rend(), am.rbegin(), add);                for (int i = 0; i + 1 &lt; am.size(); ++i) {                        nam[i] = 1LL * am[i + 1] * cur[i] % MOD;                }                am = nam;        }        return accumulate(am.begin(), am.end(), 0LL) % MOD;}\/\/Powered by [KawigiEdit] 2.0!<\/p>\n<\/p>\n<p>1000:<\/p>\n<p>\u6211\u4eec\u4ee4\u4e00\u4e2a\u4eba\u5982\u679c\u53ea\u80fdCha\u522b\u4eba\uff0c\u5c31\u53eb\u4ed6\u653bG\uff0c\u5982\u679c\u53ea\u80fd\u88abCha\u5c31\u53eb\u53d7S\uff0c\u5982\u679c\u80fd\u81ea\u653b\u81ea\u53d7\u5c31\u53eb\u4ed6B\uff0c<\/p>\n<p>\u90a3\u4e48\u4e00\u4e2a\u4eba\u5728\u88ab\u7206\u4e86\u4e4b\u540e\u4e0d\u80fd\u7206\u522b\u4eba\uff08\u5927\u96fe\uff09<\/p>\n<p>\u7a0d\u4f5c\u5206\u6790\u53ef\u4ee5\u53d1\u73b0\u4e0d\u6210\u529f\u7684Cha\uff0cCha\u8c01\u90fd\u53ef\u4ee5\uff0c\u6240\u4ee5\u53ea\u8003\u8651\u6210\u529f\u7684Cha<\/p>\n<p>G\u548cS\u90fd\u5f88\u597d\u5206\u6790\uff0c\u5173\u952e\u662fB\uff0c\u53ef\u4ee5\u5047\u8bbe<\/p>\n<p>g-&gt;b1-&gt;b2-&gt;b3-&gt;b4,<\/p>\n<p>\u53ef\u4ee5\u53d1\u73b0\u5728\u8fd9\u4e2a\u653b\u53d7\u94fe\u4e2d\uff0cCha\u7684\u987a\u5e8f\u5fc5\u987b\u662fb4\u5012\u8fc7\u6765\u5230g\uff0c\u90a3\u4e48\u8fd9\u4e2a\u987a\u5e8f\u5c31\u7ed9\u5b9a\u4e86<\/p>\n<p>\u4e5f\u5c31\u662f\u8bf4\u8fd9\u4e48\u4e00\u4e2a\u94fe\u6761\u7b49\u4ef7\u4e8e\u4e00\u4e2aG<\/p>\n<p>\u8fdb\u4e00\u6b65\u7684\u5206\u6790\u53ef\u4ee5\u53d1\u73b0\u4e0d\u540c\u7684\u94fe\u6761\u65b9\u6848\u6570\u5c31\u662f\u65af\u7279\u6797\u7b2c\u4e8c\u6570\u5217\u3002\u3002\u3002<\/p>\n<p>\u90a3\u4e48\u628a\u8fd9\u4e2a\u4e58\u4e0a\u53bb\u5c31\u53ea\u9700\u8981\u8003\u8651G\u548cS\u4e86\u3002\u3002\u5c31\u50bb\u53c9\u4e86\u3002\u3002<\/p>\n<p>&nbsp;<\/p>\n<p>P.S.\u8bed\u6cd5\u9ad8\u4eae\u662f\u7528vim\u505a\u7684\u3002\u3002\u3002<\/p>\n<p>&nbsp;<\/p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>250\uff1a\u50bb\u53c9\u9898\uff0c\u679a\u4e3e\u5373\u53ef 500\uff1a\u5bf9\u6bcf\u4e2a\u4eba\u7b97\u51fa\u4ed6\u662f\u591a\u5c11\u5206\u7684\u65b9\u6cd5\u6570\uff0c\u7136\u540e\u505a\u4e00\u6b21\u7b80\u5355\u7684dp\u5373\u53ef Code: #include &lt;vector&gt;#include &lt;list&gt;#include &lt;map&gt;#include &lt;set&gt;#include &lt;deque&gt;#include &lt;stack&gt;#include &lt;bitset&gt;#include &lt;algorithm&gt;#include &lt;functional&gt;#include &lt;numeric&gt;#include &lt;utility&gt;#include &lt;sstream&gt;#include &lt;iostream&gt;#include &lt;iomanip&gt;#include &lt;cstdio&gt;#include &lt;cmath&gt;#include &lt;cstdlib&gt;#include &lt;ctime&gt;#include &lt;cstring&gt;#define foreach(e,x) for(__typeof(x.begin()) e=x.begin();e!=x.end();++e)using namespace std;class SRMIntermissionPhase { public: int countWays(vector&lt;int&gt;, vector&lt;string&gt;);};const int MOD = int(1e9) + 7;inline int add(int a, int b) { int c = a + b; if (c &gt;= [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[10],"tags":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=\/wp\/v2\/posts\/494"}],"collection":[{"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=494"}],"version-history":[{"count":0,"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=\/wp\/v2\/posts\/494\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=494"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=494"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.shuizilong.com\/wjmzbmr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=494"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}