尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
打卡信奥刷题(3610)用C++实现信奥题 P11725 [JOIG 2025] 修学旅行 / School Trip
P11725 [JOIG 2025] 修学旅行 / School Trip题目描述JOIG 高中有3N3^N3N名学生编号从111到3N3^N3N。JOIG 高中决定举行一场学校旅行有两个可能的旅行目的地阿拉斯加记为“方案A\texttt{A}A”和玻利维亚记为“方案B\texttt{B}B”。学生们决定使用以下的流程确定最终的旅行方案考虑一个长度为3N3^N3N的字符串SSS如果学生i(1≤i≤3N)i\left(1\le i\le 3^N\right)i(1≤i≤3N)选择方案A\texttt{A}A那么SiS_iSi​为A\texttt{A}A否则为B\texttt{B}B执行以下操作NNN次假设当前SSS的长度为XXX考虑一个长度为X3\frac{X}{3}3X​的字符串S′SS′满足Sj′(1≤j≤X3)S_j\left(1\le j\le\frac{X}{3}\right)Sj′​(1≤j≤3X​)为S3j−2,S3j−1,S3jS_{3j-2},S_{3j-1},S_{3j}S3j−2​,S3j−1​,S3j​中出现次数较多的字符A\texttt{A}A或B\texttt{B}B接着将SSS替换为S′SS′所有操作结束之后SSS将成为一个长度为111的字符串要么为A\texttt{A}A要么为B\texttt{B}B如果SSS为A\texttt{A}A那么学校最终选取方案A\texttt{A}A否则选取方案B\texttt{B}B。初始时我们使用一个字符串TTT表示每名学生选择哪个方案如果学生i(1≤i≤3N)i\left(1\le i\le 3^N\right)i(1≤i≤3N)选择方案A\texttt{A}A那么TiT_iTi​为A\texttt{A}A否则为B\texttt{B}B。之后依次发生了QQQ次事件第k(1≤k≤Q)k(1\le k\le Q)k(1≤k≤Q)次事件中学生pk(1≤pk≤3N)p_k\left(1\le p_k\le 3^N\right)pk​(1≤pk​≤3N)改变了其选择的方案即若原来他 / 她选择方案A\texttt{A}A那么现在他 / 她选择的方案变为B\texttt{B}B反之亦然。对于k1,2,…,Qk1,2,\ldots,Qk1,2,…,Q求出第kkk次事件发生后按照上述流程学校会选择哪个旅行方案。输入格式第一行输入两个整数N,QN,QN,Q。第二行输入一个字符串TTT。接下来QQQ行每行一个整数pkp_kpk​。输出格式输出QQQ行第k(1≤k≤Q)k(1\le k\le Q)k(1≤k≤Q)行一个字符串表示第kkk次事件过后学校选择的旅行方案如果为A\texttt{A}A那么学校选择方案A\texttt{A}A如果为B\texttt{B}B那么学校选择方案B\texttt{B}B。输入输出样例 #1输入 #12 3 ABABBAABB 3 8 4输出 #1B B A输入输出样例 #2输入 #22 5 AAAAAAAAA 1 2 7 8 5输出 #2A A A B B输入输出样例 #3输入 #31 4 AAB 3 1 2 3输出 #3A A B B输入输出样例 #4输入 #43 6 AABABABBABAABABBBBBBAABABAA 4 1 9 3 8 9输出 #4B B B B B A说明/提示【样例解释 #1】在第111次事件发生后确定方案流程中SSS的变化为ABBBBAABB→BBB→B\texttt{ABBBBAABB}\to\texttt{BBB}\to\texttt{B}ABBBBAABB→BBB→B最终选取方案B\texttt{B}B在第222次事件发生后确定方案流程中SSS的变化为ABBBBAAAB→BBA→B\texttt{ABBBBAAAB}\to\texttt{BBA}\to\texttt{B}ABBBBAAAB→BBA→B最终选取方案B\texttt{B}B在第333次事件发生后确定方案流程中SSS的变化为ABBABAAAB→BAA→A\texttt{ABBABAAAB}\to\texttt{BAA}\to\texttt{A}ABBABAAAB→BAA→A最终选取方案A\texttt{A}A。该样例满足子任务2,52,52,5的限制。【样例解释 #2】该样例满足子任务2,4,52,4,52,4,5的限制。【样例解释 #3】该样例满足子任务1,2,3,51,2,3,51,2,3,5的限制。【样例解释 #4】该样例满足子任务2,52,52,5的限制。【数据范围】1≤N≤121\le N\le 121≤N≤121≤Q≤2×1051\le Q\le 2\times 10^51≤Q≤2×105TTT是长度为3N3^N3N且仅包含大写字母A\texttt{A}A和B\texttt{B}B的字符串1≤pk≤3N(1≤k≤Q)1\le p_k\le 3^N(1\le k\le Q)1≤pk​≤3N(1≤k≤Q)。【子任务】888分N1N1N1171717分Q≤10Q\le 10Q≤10222222分pk≤5(1≤k≤Q)p_k\le 5(1\le k\le Q)pk​≤5(1≤k≤Q)282828分TTT中所有字符均为A\texttt{A}A且之后的修改均满足pk≠pl(1≤kl≤Q)p_k\ne p_l(1\le kl\le Q)pk​pl​(1≤kl≤Q)252525分无附加限制。C实现#includebits/stdc.h#defineintlonglong#defineIOSios::sync_with_stdio(false);cin.tie(0);cout.tie(0)usingnamespacestd;constintN6e55;intPow(intx,inty){intres1;while(y){if(y1)res*x;y1;x*x;}returnres;}intn,q;string t;boolans[N*4];//1表示B0表示Aintls(intx){returnx*3-1;}//求左孩子intms(intx){returnx*3;}//求中间的孩子intrs(intx){returnx*31;}//求右孩子voidpush_up(intx){ans[x](ans[ls(x)]ans[ms(x)]ans[rs(x)]2);}voidbuild(intx,intl,intr){//建树if(lr){ans[x]t[l]-A;return;}//赋值intmid(r-l1)/3;//区间长度build(ls(x),l,lmid-1);//左区间build(ms(x),lmid,lmid*2-1);//中间区间build(rs(x),lmid*2,r);//右区间push_up(x);//传递上去}voidupdate(intx,intk,intnowl,intnowr){//更新if(nowlnowr){ans[x]!ans[x];return;}//更新intmid(nowr-nowl1)/3;//同上if(knowlmid-1)update(ls(x),k,nowl,nowlmid-1);elseif(nowlmid*2k)update(rs(x),k,nowlmid*2,nowr);elseupdate(ms(x),k,nowlmid,nowlmid*2-1);push_up(x);}signedmain(){IOS;cinnq;nPow(3,n);cint;t t;build(1,1,n);for(inti1,x;iq;i){cinx;update(1,x,1,n);cout(ans[1]?B:A)endl;}return0;}
RELATED

相关推荐

第二节 【Git基础篇】Git入门实战:安装、初始化与核心命令学习

第二节 【Git基础篇】Git入门实战:安装、初始化与核心命令学习

【Git基础篇】Git入门实战:安装、初始化与核心命令学习 前言 一、第一步:安装 Git 1.1 Ubuntu / Debian 系(推荐 apt 安装) 1.2 Windows 系统 1.3 macOS 系统 二、第二步:首次运行前的身份配置 三、第三步:创建你的第一个本地仓库 四、第四步:核心命令,逐个拆解 4.1 `g…

📅 2026/10/6 22:31:47
腾讯云文档OCR三件套实战:表格识别+文档还原+智能结构化,截图秒变可编辑文档

腾讯云文档OCR三件套实战:表格识别+文档还原+智能结构化,截图秒变可编辑文档

您好,我是ID: 熊猫钓鱼! 十余年深耕技术一线,我始终相信:优秀的开发如同垂钓——既要对技术生态的「水域」有深邃理解,也要对问题本质的「鱼汛」保持敏锐直觉。从架构设计到性能调优,从技术选型到团队协作&…

📅 2026/10/6 22:31:47
Kotlin Multiplatform for OpenHarmony 实战:为 kable 实现 OpenHarmony 蓝牙低功耗(BLE)引擎

Kotlin Multiplatform for OpenHarmony 实战:为 kable 实现 OpenHarmony 蓝牙低功耗(BLE)引擎

大家好,我是熊猫钓鱼!欢迎大家和我一起探讨技术。希望您能点赞关注,谢谢! 摘要 本文是「Kotlin Multiplatform 三方库鸿蒙化适配」系列的第四篇,围绕 kable(Juul Labs 出品的 Kotlin Multiplatform 低功耗…

📅 2026/10/6 22:31:47
MORE NEWS

更多资讯

📰

CKEditor实现PPT图片粘贴上传:从剪贴板原理到工程落地

如果你做过教育平台的课程编辑器,一定遇到过这个场景:老师辛辛苦苦从PPT里复制一张演示图,切回CKEditor富文本框里粘贴,点完保存再打开,图片不翼而飞,只剩一行寂寞的占位符。我第一次接这个需求时也觉得很奇…

📰

教育平台PPT图片粘贴到CKEditor的完整实现方案

做教育平台的同学,八成被同一个需求找过:老师从 PPT 里复制一张图,然后直接粘贴到 CKEditor 编辑区域,期望它在网页富文本里原样出现。这需求听起来特别简单,但真做起来会发现里面全是细节——剪贴板里到底有什么格式、…

📰

Codex 安装 Agent 工具包与 MCP 配置实战指南

1. 为什么要在 Codex 里装 Agent 工具包很多人第一次听到"在 Codex 里装 Agent 工具包"这个说法,第一反应是:Codex 不是那个写代码的模型吗,怎么还能装东西?这里得先把概念捋清楚,不然后面所有操作都是空中楼…

📰

e0e1-wx 新版指南:微信小程序 wxapkg 反编译流程与避坑

反编译三个字一提,很多人脑子里直接跳出“拆别人代码”的画面。实际干过这行的都清楚,真实场景里反编译更多是为了自查和复盘:小程序上线前想确认线上包和本地构建版本是否一致,开发时弄丢了一版带注释的源码只能从产物反推&#…

📰

DevExpress VCL Controls v25.2.3 全系安装与源码调试指南

简介:DevExpress VCL Controls v25.2.3 for Delphi 10-13.1 完整源码包,面向需要为最新版 Delphi 构建现代化 Windows 桌面应用的开发者,提供数据网格、报表、图表、导航与皮肤定制等高级 VCL 组件,弥补标准组件库在复杂交互界面上…

📰

hyperframes 实战:HTML 转 MP4 的 CLI 工具链与 AI 代理集成

1. hyperframes 到底是什么:从标题到核心定位的拆解第一次看到 “hyperframes” 这个词,我下意识把它拆成了 “hyper” 和 “frames” 两段来理解。Frames 在技术语境里通常指向帧、画面、结构单元,而 hyper 带有超、增强、聚合的意味。把这两…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬