{"id":381,"date":"2020-04-25T15:12:53","date_gmt":"2020-04-25T07:12:53","guid":{"rendered":"http:\/\/nocriz.com\/?p=381"},"modified":"2021-09-08T20:20:07","modified_gmt":"2021-09-08T12:20:07","slug":"noi-online-r2-%e9%a2%98%e8%a7%a3","status":"publish","type":"post","link":"https:\/\/nocriz.com\/?p=381","title":{"rendered":"NOI Online R2 \u9898\u89e3"},"content":{"rendered":"\n<p>\u7531\u4e8e\u9519\u8bef\u7684\u6bd4\u8d5b\u7b56\u7565\u3001\u8fc7\u5ea6\u7684\u6c34\u7fa4\u548c\u6211\u65e9\u4e0a\u4e0d\u77e5\u9053\u6709\u8fd9\u4e2a\u6bd4\u8d5b\u7684\u6b8b\u9177\u4e8b\u5b9e\uff0c\u6211\u6700\u591a\u5c31\u62ff200\u5206\u4e86\uff0c\u60e8\u8d25\u2026\u2026\u6bd4\u8d5b\u7ed3\u675f15\u5206\u949f\u4e4b\u540e\u624d\u5199\u5b8cC\u3002\u65e0\u8bba\u5982\u4f55\uff0c\u6211\u4f3c\u4e4e\u8fd8\u662f\u53ef\u4ee5\u653e\u4e00\u4e0b\u4ee3\u7801\uff0c\u6c34\u4e00\u7bc7\u535a\u5ba2\u7684\uff1f<\/p>\n\n\n\n<p>\u6240\u6709\u4ee3\u7801\u672a\u7ecf\u8bc1\u5b9e\u3002<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">\u7b2c\u4e00\u9898<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;iostream>\n\nusing namespace std;\ntypedef long long ll;\nint gcd(int a,int b){\n\treturn b != 0?gcd(b,a%b):a;\n}\nint T,p1,p2,k;\nint main(){\n\tfreopen(\"color.in\",\"r\",stdin);\n\tfreopen(\"color.out\",\"w\",stdout);\n\tios::sync_with_stdio(false);\n\tcin>>T;\n\twhile(T--){\n\t\tcin>>p1>>p2>>k;\n\t\tint d = gcd(p1,p2);\n\t\tp1\/=d;\n\t\tp2\/=d;\n\t\tif(p1>p2)swap(p1,p2);\n\t\tint lim = (p2+p1-2)\/p1;\n\t\tif(lim>=k){\n\t\t\tcout&lt;&lt;\"No\\n\";\n\t\t}else{\n\t\t\tcout&lt;&lt;\"Yes\\n\";\n\t\t}\n\t}\n\treturn 0;\n}\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u7b2c\u4e8c\u9898<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;algorithm>\n#include &lt;iostream>\n#include &lt;cstring>\n#include &lt;vector>\nchar buf&#091;1000000],*p1,*p2;\ninline bool isdigit(const char &amp;ch){\n\treturn ch>=48&amp;&amp;ch&lt;=57;\n}\ninline char nextchar(){\n\treturn p1==p2&amp;&amp;(p2=buf+fread(p1=buf,1,1000000,stdin),p1==p2)?EOF:*p1++;\n}\ninline void getint(int &amp;des){\n\tchar ch=des=0;\n\twhile(!isdigit(ch)&amp;&amp;ch!=EOF)ch=nextchar();\n\twhile(isdigit(ch))des=des*10+ch-48,ch=nextchar();\n}\nusing namespace std;\ntypedef long long ll;\nconst int mod = 1000000007;\ninline int mul(int x,int y){return 1ll*x*y%mod;}\ninline int add(int x,int y){return x+y>=mod?x+y-mod:x+y;}\ninline int sub(int x,int y){return x-y&lt;0?x-y+mod:x-y;}\ninline int sq(int x){return 1ll*x*x%mod;}\nint pow(int a,int b){return b == 0 ? 1 : ( b&amp;1 ? mul(a,sq(pow(a,b\/2))) : sq(pow(a,b\/2)));}\n\nint n,A&#091;1000010],V&#091;1000010];\nvector&lt;int> po&#091;1000010];\nint d1&#091;1000010],d2&#091;1000010];\ninline void update(const int &amp;left,const int &amp;right,const int &amp;w){\n\tregister int i;\n\tfor(i=left;i&lt;=1000005;i+=i&amp;-i){\n\t\td1&#091;i]=add(d1&#091;i],w);\n\t\td2&#091;i]=add(d2&#091;i],mul(left,w));\n\t}\n\tfor(i=right;i&lt;=1000005;i+=i&amp;-i){\n\t\td1&#091;i]=sub(d1&#091;i],w);\n\t\td2&#091;i]=sub(d2&#091;i],mul(right,w));\n\t}\n}\ninline int query(const int &amp;left,const int &amp;right){\t\t\t\t\t\t\t\/\/\u00d7\u00f3\u00b1\u00d5\u00d3\u00d2\u00bf\u00aa\n\tregister int i;register int ans=0;\n\tfor(i=left-1;i>=1;i-=i&amp;-i){\n\t\tans=sub(ans,(1ll*d1&#091;i]*left-d2&#091;i]+mod)%mod);\n\t}\n\tfor(i=right-1;i>=1;i-=i&amp;-i){\n\t\tans=(1ll*d1&#091;i]*right-d2&#091;i]+ans+mod)%mod;\n\t}\n\treturn ans;\n}\n\nint main() {\n\tfreopen(\"sequence.in\",\"r\",stdin);\n\tfreopen(\"sequence.out\",\"w\",stdout);\n\tgetint(n);\n\tfor(int i=0;i&lt;n;i++){\n\t\tgetint(A&#091;i]);V&#091;i] = A&#091;i];\n\t}\n\tsort(V,V+n);\n\tint m = unique(V,V+n)-V;\n\tfor(int i=0;i&lt;n;i++){\n\t\tA&#091;i] = lower_bound(V,V+m,A&#091;i])-V;\n\t\tpo&#091;A&#091;i]].push_back(i);\n\t}\n\tfor(int i=0;i&lt;n;i++)reverse(po&#091;i].begin(),po&#091;i].end());\n\tint ans = 0,cu = 0;\n\tint cv = 0;\n\tfor(int i=0;i&lt;n;i++){\n\t\tif(i == po&#091;A&#091;i]].back()){\n\t\t\tcv+=1;\n\t\t\tupdate(i+1,n-1+2,1);\n\t\t}\n\t\tcu = add(cu,sq(cv));\n\t}\n\tfor(int i=0;i&lt;n;i++){\n\t\tans = add(ans,cu);\n\t\tpo&#091;A&#091;i]].pop_back();\n\t\tint r = po&#091;A&#091;i]].size()?po&#091;A&#091;i]].back():n;\n\t\tcu = sub(cu,mul(2,query(i+1,r-1+2)));\n\t\tcu = add(cu,r-i);\n\t\tupdate(i+1,r-1+2,mod-1);\n\t}\n\tcout&lt;&lt;ans&lt;&lt;endl;\n\treturn 0;\n}\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u7b2c\u4e09\u9898<\/h2>\n\n\n\n<p>\u8bbedp[i][j]\u4e3a\u7b2ci\u53f7\u70b9\u7684\u5b50\u6811\u4e2d\u9009\u53d6j\u5bf9\u914d\u5bf9\u8282\u70b9\u7684\u9009\u62e9\u65b9\u6848\u6570\u3002<\/p>\n\n\n\n<p>\u53d6<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/nocriz.com\/wp-content\/ql-cache\/quicklatex.com-9a12393297e62ab749f09438ef3d8d39_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#102;&#95;&#105;&#32;&#61;&#32;&#100;&#112;&#091;&#49;&#093;&#091;&#105;&#093;&#42;&#40;&#110;&#47;&#50;&#45;&#105;&#41;&#33;\" title=\"Rendered by QuickLaTeX.com\" height=\"23\" width=\"236\" style=\"vertical-align: -6px;\"\/>\uff0c\u7b54\u6848\u5e8f\u5217\u4e3a<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/nocriz.com\/wp-content\/ql-cache\/quicklatex.com-530192e810c5a33c99e97f51dc4f28d1_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#103;&#95;&#105;\" title=\"Rendered by QuickLaTeX.com\" height=\"14\" width=\"17\" style=\"vertical-align: -4px;\"\/>\uff0c\u90a3\u4e48\u6211\u4eec\u6709\uff1a<\/p>\n\n\n\n<p><p class=\"ql-center-displayed-equation\" style=\"line-height: 28px;\"><span class=\"ql-right-eqno\"> &nbsp; <\/span><span class=\"ql-left-eqno\"> &nbsp; <\/span><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/nocriz.com\/wp-content\/ql-cache\/quicklatex.com-2493c740311d049ffbff29da5c4695a2_l3.png\" height=\"28\" width=\"176\" class=\"ql-img-displayed-equation quicklatex-auto-format\" alt=\"&#92;&#091;&#102;&#95;&#107;&#32;&#61;&#32;&#115;&#117;&#109;&#95;&#123;&#105;&#61;&#107;&#125;&#94;&#110;&#67;&#95;&#107;&#94;&#105;&#32;&#103;&#95;&#107;&#92;&#093;\" title=\"Rendered by QuickLaTeX.com\"\/><\/p><\/p>\n\n\n\n<p>\u4e8e\u662f\u4f7f\u7528\u4e8c\u9879\u5f0f\u53cd\u6f14\u5c31\u53ef\u4ee5\u6c42\u51fa\u7b54\u6848\u4e86\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;algorithm>\n#include &lt;iostream>\n#include &lt;cstring>\n#include &lt;vector>\n\nusing namespace std;\nint mod = 998244353;\ninline int mul(int x,int y){return 1ll*x*y%mod;}\ninline int add(int x,int y){return x+y>=mod?x+y-mod:x+y;}\ninline int sub(int x,int y){return x-y&lt;0?x-y+mod:x-y;}\ninline int sq(int x){return 1ll*x*x%mod;}\nint mpow(int a,int b){return b == 0 ? 1 : ( b&amp;1 ? mul(a,sq(mpow(a,b\/2))) : sq(mpow(a,b\/2)));}\nconst int N = 1000000;\nint fac&#091;N+10],invfac&#091;N+10];\n\n\nint C(int n,int m){\n\tif(n&lt;0 || m&lt;0 || m>n)return 0;\n\treturn mul(fac&#091;n],mul(invfac&#091;m],invfac&#091;n-m]));\n}\nint n,u,v;\nvector&lt;int> G&#091;5050];\nchar ch&#091;5050];\nint dp&#091;5050]&#091;5050],sz&#091;5050],sc&#091;5050]&#091;2];\n\nvoid dfs(int num,int cf = -1){\n\tdp&#091;num]&#091;0] = 1;\n\tfor(auto ct:G&#091;num]){\n\t\tif(ct == cf)continue;\n\t\tdfs(ct,num);\n\t\tvector&lt;int> ndp(sz&#091;num]+sz&#091;ct]+2,0);\n\t\tfor(int i=0;i&lt;=sz&#091;num];i++){\n\t\t\tfor(int j=0;j&lt;=sz&#091;ct];j++){\n\t\t\t\tndp&#091;i+j] = add(ndp&#091;i+j],mul(dp&#091;num]&#091;i],dp&#091;ct]&#091;j]));\n\t\t\t}\n\t\t}\n\t\tfor(int i=0;i&lt;ndp.size();i++)dp&#091;num]&#091;i] = ndp&#091;i];\n\t\tsz&#091;num]+=sz&#091;ct];\n\t\tsc&#091;num]&#091;0]+=sc&#091;ct]&#091;0];\n\t\tsc&#091;num]&#091;1]+=sc&#091;ct]&#091;1];\n\t}\n\tvector&lt;int> ndp(sz&#091;num]+2,0);\n\tfor(int i=0;i&lt;=sz&#091;num];i++){\n\t\tif(!dp&#091;num]&#091;i])continue;\n\t\tndp&#091;i] = add(ndp&#091;i],dp&#091;num]&#091;i]);\n\t\tint ca = sc&#091;num]&#091;(ch&#091;num]-'0')^1]-i;\n\t\tif(ca&lt;0)break;\n\t\tndp&#091;i+1] = add(ndp&#091;i+1],mul(dp&#091;num]&#091;i],ca));\n\t}\n\tfor(int i=0;i&lt;ndp.size();i++)dp&#091;num]&#091;i] = ndp&#091;i];\n\tsz&#091;num] +=1;\n\tsc&#091;num]&#091;ch&#091;num]-'0']+=1;\n}\nint main() {\n\t\/\/freopen(\"match.in\",\"r\",stdin);\n\t\/\/freopen(\"match.out\",\"w\",stdout);\n\tfac&#091;0] = 1;\n\tfor(int i=1;i&lt;=N;i++)fac&#091;i] = mul(fac&#091;i-1],i);\n\tinvfac&#091;N] = mpow(fac&#091;N],mod-2);\n\tfor(int i=N-1;i>=0;i--) invfac&#091;i] = mul(invfac&#091;i+1],i+1);\n\tcin>>n;\n\tcin>>(ch+1);\n\tfor(int i=1;i&lt;n;i++){\n\t\tcin>>u>>v;\n\t\tG&#091;u].push_back(v);\n\t\tG&#091;v].push_back(u);\n\t}\n\tdfs(1);\n\tfor(int i=0;i&lt;=n\/2;i++){\n\t\tdp&#091;1]&#091;i] = mul(dp&#091;1]&#091;i],fac&#091;n\/2-i]);\n\t}\n\tfor(int i=0;i&lt;=n\/2;i++){\n\t\tint cans = 0;\n\t\tfor(int j=i;j&lt;=n\/2;j++){\n\t\t\tif((j-i)%2 == 1){\n\t\t\t\tcans = sub(cans,mul(C(j,i),dp&#091;1]&#091;j]));\n\t\t\t}else{\n\t\t\t\tcans = add(cans,mul(C(j,i),dp&#091;1]&#091;j]));\n\t\t\t}\n\t\t}\n\t\tcout&lt;&lt;cans&lt;&lt;\" \\n\"&#091;i == n\/2];\n\t}\n\treturn 0;\n}\n<\/code><\/pre>\n\n\n\n<div class=\"page_counter_label\"><span class=\"page_counter_text\" style=\"color:#000000;background:#FFFFFF;\">Total Page Visits: 5312<\/span><\/div>\n ","protected":false},"excerpt":{"rendered":"<p>\u7531\u4e8e\u9519\u8bef\u7684\u6bd4\u8d5b\u7b56\u7565\u3001\u8fc7\u5ea6\u7684\u6c34\u7fa4\u548c\u6211\u65e9\u4e0a\u4e0d\u77e5\u9053\u6709\u8fd9\u4e2a\u6bd4\u8d5b\u7684\u6b8b\u9177\u4e8b\u5b9e\uff0c\u6211\u6700\u591a\u5c31\u62ff200\u5206\u4e86\uff0c\u60e8\u8d25\u2026\u2026\u6bd4\u8d5b\u7ed3\u675f15\u5206 [&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],"tags":[],"_links":{"self":[{"href":"https:\/\/nocriz.com\/index.php?rest_route=\/wp\/v2\/posts\/381"}],"collection":[{"href":"https:\/\/nocriz.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nocriz.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nocriz.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nocriz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=381"}],"version-history":[{"count":2,"href":"https:\/\/nocriz.com\/index.php?rest_route=\/wp\/v2\/posts\/381\/revisions"}],"predecessor-version":[{"id":388,"href":"https:\/\/nocriz.com\/index.php?rest_route=\/wp\/v2\/posts\/381\/revisions\/388"}],"wp:attachment":[{"href":"https:\/\/nocriz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=381"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nocriz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=381"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nocriz.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=381"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}