打卡信奥刷题(3610)用C++实现信奥题 P11725 [JOIG 2025] 修学旅行 / School Trip

发布时间:2026/10/6 22:39:50

打卡信奥刷题(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;}
延伸阅读

更多相关文章

2026/10/6 22:39:50

线程转储分析工具完全指南:从jstack到死锁检测的实战方法

简介:这是一款面向 Java 开发者和运维人员的线程转储分析工具,完整代码包包含前端 Angular 工程与后端 Java 服务,通过 Web 界面上传 dump 文件后,可辅助排查死锁、线程阻塞及高 CPU 等并发问题。压缩包约 1.49MB,共 8…

2026/10/6 22:39:50

机器学习红酒产地预测实战:数据预处理与模型调参全流程

简介:面向机器学习初学者与数据挖掘爱好者,这份压缩包围绕“红酒产地预测”分类任务,给出了一套可直接运行的代码与配套实验报告。内容覆盖数据预处理、特征选择、逻辑回归/softmax回归等模型实现、交叉验证与评估指标计算,适合用…

2026/10/6 23:59:55

回溯法详解:LeetCode 46. 全排列

一、 问题描述给定一个不含重复数字的数组 nums,返回其所有可能的全排列。你可以按任意顺序返回答案。示例:输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]二、 核心思路:回溯 (Backtrac…

2026/10/6 23:59:55

【Web全栈进阶】PostgreSQL上手:Docker跑库 + 把早报站从SQLite迁过去

今天不写新功能,做一次“搬家”:把早报站的数据从SQLite搬进PostgreSQL——这是整个二季的地基工程。 🎯 本篇产出:一个跑在Docker里的PostgreSQL、一份可重复执行的数据迁移脚本、以及“为什么换”的完整决策链。含代码约60行。 …

2026/10/6 23:59:55

AI获客怎样减少重复线索?意客AI的原文复用与版本筛选

销售昨天看过一条办公室搬迁需求,今天又在“新线索”里看到它。如果对方已经暂停搬迁,第二次出现带来的只是一次重复阅读;如果需求范围变了,沿用昨天的沟通准备还可能问错问题。 星河卓越旗下意客AI根据业务描述寻找匹配需求&…

2026/10/6 23:59:55

装配车间MES落地指南:SimpleMES工单流转、BOM与齐套检查实战

简介:一套基于.NET 4.0的SimpleMES加工装配模拟系统,面向MES系统学习者、课程设计或毕业设计人员,以及需要快速搭建制造执行原型的开发者。服务端与客户端分工明确:服务端包含基础档案、加工与装配计划管理、实时看板和数据初始化…

2026/10/6 23:54:55

26年程序员转AI指南:收藏这份学习路线,轻松拥抱大模型时代!

文章分享了程序员如何成功转型AI领域的心得与经验。核心内容围绕五个学习阶段展开:先理解大模型调用本身,再学习AI应用开发所需能力,重点掌握RAG,随后学习Agent,最后通过项目实践积累经验。强调理解模型、业务和工程的…

2026/10/5 6:32:56

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/6 4:01:51

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/6 17:46:51

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

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

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑