ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

2026-08-30~09-01 hetao1733837 的刷题记录

2026-08-30~09-01 hetao1733837 的刷题记录 2026-08-30~09-01 hetao1733837 的刷题记录CF2255B A Ribbon for Tomorrow原题链接B. A Ribbon for Tomorrow分析需要从回文串的方向进行思考。要不直接把回文串删了吧……剩下的直接组合数做然后加上1 11表示原来的就做完了为什么想到回文串呢因为我们有一个反转操作回文串的反转是没有卵用的。感觉删掉回文的不好做因为我没有模出来。先打一个O ( n 3 ) O(n^3)O(n3)的暴力吧……你会发现这个是一个01串不加以利用实在可惜。为啥我的暴力假了bur一个非回文会出现相同的情况吗/xia难道是好做的就是我把1看成1 110看成− 1 -1−1然后我们可以轻松地统计一些位置然后做完了回文子串和前缀和没有任何关系又假了切记假了就是假了不能有什么理由。思考一下正解。拿到一道题先按照题目模拟一下拿到分数再思考正解。保证有分再说。这个题理论上直接模拟不难吧先别猜什么结论。先模拟再说。呃不过这个也没有什么意义。考虑到因为回文串没有用所以要主动破坏回文性所以我们发现对于一个形如0110···011反转实际上是把前面的0挪到后面所以问题变成了把0插入到若干位置。一个插板法做完了。然后1的答案直接和0的答案乘起来就行。不是操作 **任意次**我又没有读对题正解#includebits/stdc.h#defineintlonglong#definemod998244353usingnamespacestd;constintN1000005;intt,n;string s;intfac[N];intqpow(inta,intb){intres1;while(b){if(b1)resres*a%mod;aa*a%mod;b1;}returnres;}intcalc(intn,intm){if(mn||m0||n0)return1;returnfac[n]*qpow(fac[n-m],mod-2)%mod*qpow(fac[m],mod-2)%mod;}signedmain(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cint;fac[0]1;for(inti1;iN;i){fac[i]fac[i-1]*i%mod;}for(intcs1;cst;cs){cinn;cins;intcnt00,cnt10;inttmp00,tmp10;for(inti0;in;i){if(i0){if(s[0]0){tmp0;}if(s[0]1){tmp1;}}if(s[i]0){cnt0;}if(s[i]1){cnt1;}if(i0){if(s[i]!s[i-1]){if(s[i]0){tmp0;}if(s[i]1){tmp1;}}}}coutcalc(cnt0-1,tmp0-1)*calc(cnt1-1,tmp1-1)%mod\n;}}CF1174F Ehab and the Big Finale原题链接F. Ehab and the Big Finale分析bur咋是这个正解#includebits/stdc.husingnamespacestd;constintN390005;intquery1(intu){intres;coutd u\n;cout.flush();cinres;returnres;}intquery2(intv){intres;couts v\n;cout.flush();cinres;returnres;}voidanswer(intx){cout! x\n;cout.flush();exit(0);}intn;vectorinte[N];intD;intde[N],sz[N],son[N],fa[N];voiddfs(intu,intf,intdep){de[u]dep;fa[u]f;sz[u]1;if(depD)return;for(intv:e[u]){if(vf)continue;dfs(v,u,dep1);sz[u]sz[v];if(sz[v]sz[son[u]])son[u]v;}}signedmain(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cinn;for(inti1,u,v;in;i){cinuv;e[u].push_back(v);e[v].push_back(u);}Dquery1(1);if(D0)answer(1);dfs(1,0,0);intrt1;while(true){if(de[rt]D)answer(rt);if(sz[rt]sz[son[rt]]*2){rtquery2(rt);continue;}inttmprt;while(sz[son[tmp]]*2sz[tmp])tmpson[tmp];intdisquery1(tmp);if(dis0)answer(tmp);if(de[tmp]disD){rtquery2(tmp);continue;}while(de[tmp]dis!D){tmpfa[tmp];dis--;}rtquery2(tmp);}return0;}AT_abc473_g [ABC473G] Wipeout原题链接[ABC473G] Wipeout分析哦这个困难就在于我既要钦定某个位置被记住而且还要保证一些东西就是没有被记住或者怎么样吧……呃……啊吧啊吧……对这个特殊性质是好做的。直接拿下了42 p t s 42pts42pts的高分。我将会在第二次学习完Stirling和Catlan之后写这个。
返回列表