{"id":348,"date":"2020-04-21T21:45:46","date_gmt":"2020-04-21T13:45:46","guid":{"rendered":"http:\/\/bytew.net\/?p=348"},"modified":"2021-09-08T20:20:07","modified_gmt":"2021-09-08T12:20:07","slug":"codeforces-1136e1-e2-chiori-and-doll-picking","status":"publish","type":"post","link":"https:\/\/bytew.net\/?p=348","title":{"rendered":"Codeforces 1136E1\/E2 Chiori and Doll Picking"},"content":{"rendered":"\n<p>\u6316\u4e00\u4e2a\u5751\uff0c\u5f85\u8865\u9898\u89e3\u3002\u4e0b\u9644\u4ee3\u7801<\/p>\n\n\n\n<!--more-->\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;bits\/stdc++.h>\nusing namespace std;\n\n#define set0(x) memset(x,0,sizeof(x))\n#define F first\n#define S second\n#define PB push_back\n#define MP make_pair\n#define rep(i, a, b) for(int i = a; i &lt; (b); ++i)\n#define trav(a, x) for(auto&amp; a : x)\n#define all(x) x.begin(), x.end()\n#define sz(x) (int)(x).size()\n\ntypedef long long ll;\ntypedef pair&lt;int,int> pii;\ntypedef pair&lt;ll,ll> pll;\ntypedef vector&lt;int> VI;\ntemplate&lt;typename T> void read(T &amp;x){\n\tx = 0;char ch = getchar();ll f = 1;\n\twhile(!isdigit(ch)){if(ch == '-')f*=-1;ch=getchar();}\n\twhile(isdigit(ch)){x = x*10+ch-48;ch=getchar();}x*=f;\n}\ntemplate&lt;typename T, typename... Args> void read(T &amp;first, Args&amp; ... args) {\n\tread(first);\n\tread(args...);\n}\n\nint mod = 998244353,inv2 = (mod+1)\/2;\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)));}\n\nint n,m;\nll a&#91;200020],b&#91;60],v&#91;60],vn = 0;\nint cnt&#91;60],C&#91;61]&#91;61];\n\nvoid dfs(ll cv,int len){\n\tif(len == vn){\n\t\t++cnt&#91;__builtin_popcountll(cv)];\n\t\treturn;\n\t}\n\tdfs(cv,len+1);\n\tdfs(cv^v&#91;len],len+1);\n}\n\nint main() {\n\tread(n,m);\n\tC&#91;0]&#91;0] = 1;\n\tfor(int i=1;i&lt;=60;i++){\n\t\tC&#91;i]&#91;0] = 1;\n\t\tfor(int j=1;j&lt;=i;j++)C&#91;i]&#91;j] = add(C&#91;i-1]&#91;j],C&#91;i-1]&#91;j-1]);\n\t}\n\tfor(int i=0;i&lt;n;i++){\n\t\tread(a&#91;i]);\n\t\tll cc = a&#91;i];\n\t\tfor(int j=m-1;j>=0;j--){\n\t\t\tif(b&#91;j])cc = min(cc,cc^b&#91;j]);\n\t\t\telse if((cc>>j)&amp;1){\n\t\t\t\tb&#91;j] = v&#91;vn++] = cc;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tfor(int j=0;j&lt;m;j++){\n\t\tfor(int k=j+1;k&lt;m;k++)if((b&#91;k]>>j)&amp;1)b&#91;k]^=b&#91;j];\n\t}\n\tif(vn&lt;m\/2){\n\t\tdfs(0,0);\n\t\tfor(int i=0;i&lt;=m;i++)\n\t\t\tcout&lt;&lt;mul(cnt&#91;i],mpow(2,n-vn))&lt;&lt;\" \\n\"&#91;i == m];\n\t\treturn 0;\n\t}\n\tvn = 0;\n\tfor(int i=0;i&lt;m;i++){\n\t\tif(!b&#91;i]){\n\t\t\tll cv = 1ll&lt;&lt;i;\n\t\t\tfor(int j=i+1;j&lt;m;j++)if((b&#91;j]>>i)&amp;1)cv|=1ll&lt;&lt;j;\n\t\t\tv&#91;vn++] = cv;\n\t\t}\n\t}\n\tdfs(0,0);\n\tint ans&#91;61] = {0};\n\tfor(int i=0;i&lt;=m;i++){\n\t\tint cv&#91;61] = {0};\n\t\tfor(int j=0;j&lt;=i;j++){\n\t\t\tfor(int k=0;k&lt;=m-i;k++){\n\t\t\t\tif(j&amp;1)cv&#91;j+k] = sub(cv&#91;j+k],mul(C&#91;i]&#91;j],C&#91;m-i]&#91;k]));\n\t\t\t\telse cv&#91;j+k] = add(cv&#91;j+k],mul(C&#91;i]&#91;j],C&#91;m-i]&#91;k]));\n\t\t\t}\n\t\t}\n\t\tfor(int j=0;j&lt;=m;j++){\n\t\t\tans&#91;j] = add(ans&#91;j],mul(mul(cv&#91;j],cnt&#91;i]),mul(mpow(2,n-m+vn),mpow(inv2,vn))));\n\t\t}\n\t}\n\tfor(int j=0;j&lt;=m;j++){\n\t\tcout&lt;&lt;ans&#91;j]&lt;&lt;\" \\n\"&#91;j == m];\n\t}\n\treturn 0;\n}\n<\/code><\/pre>\n ","protected":false},"excerpt":{"rendered":"<p>\u6316\u4e00\u4e2a\u5751\uff0c\u5f85\u8865\u9898\u89e3\u3002\u4e0b\u9644\u4ee3\u7801<\/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:\/\/bytew.net\/index.php?rest_route=\/wp\/v2\/posts\/348"}],"collection":[{"href":"https:\/\/bytew.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bytew.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bytew.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bytew.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=348"}],"version-history":[{"count":4,"href":"https:\/\/bytew.net\/index.php?rest_route=\/wp\/v2\/posts\/348\/revisions"}],"predecessor-version":[{"id":352,"href":"https:\/\/bytew.net\/index.php?rest_route=\/wp\/v2\/posts\/348\/revisions\/352"}],"wp:attachment":[{"href":"https:\/\/bytew.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=348"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bytew.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=348"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bytew.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=348"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}