news 2026/9/2 16:33:39

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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 -11,然后我们可以轻松地统计一些位置,然后做完了?
回文子串和前缀和没有任何关系!!!


又假了😭
切记,假了就是假了,不能有什么理由。
思考一下正解。
拿到一道题,先按照题目模拟一下,拿到分数再思考正解。保证有分再说。这个题理论上直接模拟不难吧,先别猜什么结论。先模拟再说。
呃,不过这个也没有什么意义。
考虑到,因为回文串没有用,所以要主动破坏回文性,所以,我们发现对于一个形如0110···011,反转实际上是把前面的0挪到后面,所以,问题变成了把0插入到若干位置。一个插板法做完了。然后1的答案直接和0的答案乘起来就行。
不是,操作 **任意次!!!**我又没有读对题😭

正解

#include<bits/stdc++.h>#defineintlonglong#definemod998244353usingnamespacestd;constintN=1000005;intt,n;string s;intfac[N];intqpow(inta,intb){intres=1;while(b){if(b&1)res=res*a%mod;a=a*a%mod;b>>=1;}returnres;}intcalc(intn,intm){if(m>n||m<0||n<0)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);cin>>t;fac[0]=1;for(inti=1;i<N;i++){fac[i]=fac[i-1]*i%mod;}for(intcs=1;cs<=t;cs++){cin>>n;cin>>s;intcnt0=0,cnt1=0;inttmp0=0,tmp1=0;for(inti=0;i<n;i++){if(i==0){if(s[0]=='0'){tmp0++;}if(s[0]=='1'){tmp1++;}}if(s[i]=='0'){cnt0++;}if(s[i]=='1'){cnt1++;}if(i>0){if(s[i]!=s[i-1]){if(s[i]=='0'){tmp0++;}if(s[i]=='1'){tmp1++;}}}}cout<<calc(cnt0-1,tmp0-1)*calc(cnt1-1,tmp1-1)%mod<<'\n';}}

CF1174F Ehab and the Big Finale

原题链接:F. Ehab and the Big Finale

分析

bur,咋是这个???

正解

#include<bits/stdc++.h>usingnamespacestd;constintN=390005;intquery1(intu){intres;cout<<"d "<<u<<'\n';cout.flush();cin>>res;returnres;}intquery2(intv){intres;cout<<"s "<<v<<'\n';cout.flush();cin>>res;returnres;}voidanswer(intx){cout<<"! "<<x<<'\n';cout.flush();exit(0);}intn;vector<int>e[N];intD;intde[N],sz[N],son[N],fa[N];voiddfs(intu,intf,intdep){de[u]=dep;fa[u]=f;sz[u]=1;if(dep>=D)return;for(intv:e[u]){if(v==f)continue;dfs(v,u,dep+1);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);cin>>n;for(inti=1,u,v;i<n;i++){cin>>u>>v;e[u].push_back(v);e[v].push_back(u);}D=query1(1);if(D==0)answer(1);dfs(1,0,0);intrt=1;while(true){if(de[rt]==D)answer(rt);if(sz[rt]>=sz[son[rt]]*2){rt=query2(rt);continue;}inttmp=rt;while(sz[son[tmp]]*2>sz[tmp])tmp=son[tmp];intdis=query1(tmp);if(dis==0)answer(tmp);if(de[tmp]+dis==D){rt=query2(tmp);continue;}while(de[tmp]+dis!=D){tmp=fa[tmp];dis--;}rt=query2(tmp);}return0;}

AT_abc473_g [ABC473G] Wipeout

原题链接:[ABC473G] Wipeout

分析

哦,这个困难就在于我既要钦定某个位置被记住,而且还要保证一些东西,就是没有被记住,或者怎么样吧……呃……啊吧啊吧……
对,这个特殊性质是好做的。直接拿下了42 p t s 42pts42pts的高分。
我将会在第二次学习完StirlingCatlan之后写这个。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 16:33:16

单片机毕设项目:基于 STM32 的 OLED 本地显示物联网环境安防系统设计 基于 STM32 的多模式室内环境智能调控系统设计

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机&#xff0c;Java、小程序技术领域和毕业项目实战 ✌️…

作者头像 李华
网站建设 2026/9/2 16:31:27

Python与AI大模型学习路线:从零基础到RAG项目实战指南

这次我们来看一份被很多人收藏过的 Python AI 大模型学习路线。它不是单一的软件项目&#xff0c;而是一整套覆盖方法论、基础语法、算法原理、大模型应用和项目实战的内容合集。如果你正在纠结“要不要转 AI”“从哪开始学 Python”“怎么把大模型真正用到项目里”&#xff0…

作者头像 李华
网站建设 2026/9/2 16:29:20

告别数据处理偏差:从走马观碑到精准遍历的实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/2 16:28:36

【AI大模型接入SDK】WebSocket SSE 协议

&#x1f3ac; 个人主页&#xff1a;艾莉丝努力练剑❄专栏传送门&#xff1a;《C语言》《数据结构与算法》《C/C干货分享&学习过程记录》 《Linux操作系统编程详解》《笔试/面试常见算法&#xff1a;从基础到进阶》《Python干货分享》⭐️为天地立心&#xff0c;为生民立命…

作者头像 李华
网站建设 2026/9/2 16:28:24

学习总结与比特和进制

1. bit&#xff08;比特&#xff09;1 bit 1 个二进制位&#xff0c;只能存 0 或者 1。 它是计算机最小的数据单位。举例&#xff1a; 1 → 占 1bit 0 → 占 1bit2. Byte&#xff08;字节&#xff09;1 字节 (Byte) 8 bitplaintext1字节&#xff1a; b7 b6 b5 b4 b3 b2 b1 b0…

作者头像 李华