2024年信奥赛C++提高组csp-s初赛真题及答案解析(阅读程序第3题)
2024年信奥赛C提高组csp-s初赛真题及答案解析阅读程序第3题第 3 题#includeiostream#includecstring#includealgorithmusingnamespacestd;constintmaxn10000005;constintP1998244353,P21000000007;constintB12,B231;constintK10,K213;typedeflonglongll;intn;boolp[maxn];intp1[maxn],p2[maxn];structH{inth1,h2,l;H(boolbfalse){h1bK1;h2bK2;l1;}Hoperator(constHh)const{H hh;hh.llh.l;hh.h1(1ll*h1*p1[h.l]h.h1)%P1;hh.h2(1ll*h2*p2[h.l]h.h2)%P2;returnhh;}booloperator(constHh)const{returnlh.lh1h.h1h2h.h2;}booloperator(constHh)const{if(l!h.l)returnlh.l;elseif(h1!h.h1)returnh1h.h1;elsereturnh2h.h2;}}h[maxn];voidinit(){memset(p,1,sizeof(p));p[0]p[1]false;p1[0]p2[0]1;for(inti1;in;i){p1[i](1ll*B1*p1[i-1])%P1;p2[i](1ll*B2*p2[i-1])%P2;if(!p[i])continue;for(intj2*i;jn;ji){p[j]false;}}}intsolve(){for(intin;i;--i){h[i]H(p[i]);if(2*i1n){h[i]h[2*i]h[i]h[2*i1];}elseif(2*in){h[i]h[2*i]h[i];}}couth[1].h1endl;sort(h1,hn1);intmunique(h1,hn1)-(h1);returnm;}intmain(){cinn;init();coutsolve()endl;}判断题假设程序运行前能自动将maxn改为n1所实现的算法的时间复杂度是 O(nlog⁡n)。 A. 正确 B. 错误时间开销的瓶颈是init()函数。 A. 正确 B. 错误若修改常数B1或K1的值该程序可能会输出不同的结果。 A. 正确 B. 错误选择题在solve()函数中h[]的合并顺序可以看作是 A. 二叉树的 BFS 序 B. 二叉树的先序遍历 C. 二叉树的中序遍历 D. 二叉树的后序遍历输入 10输出的第一行是 A. 83 B. 424 C. 54 D. 110101000输入 16输出的第二行是 A. 7 B. 9 C. 10 D. 12题解程序分析该程序实现了一个基于双哈希的子树哈希计算算法主要步骤包括初始化使用筛法标记1到n中的质数并预计算两个基数的幂模P1和P2。子树哈希计算从n到1逆序遍历节点将每个节点视为一棵二叉树的根左子为2*i右子为2*i1计算该子树的中序遍历字符串的双哈希值。输出第一行输出根节点h[1]的第一个哈希分量h1第二行输出所有子树哈希值中不同值的个数。判断题解析时间复杂度程序包含三部分init()筛法复杂度为O(n log log n)预计算幂为O(n)。solve()遍历和合并哈希为O(n)。排序h数组为O(n log n)。总时间复杂度由排序主导为O(n log n)故正确。对于较大的n排序的O(n log n)远大于init()的O(n log log n)因此瓶颈在排序而非init()故错误。B1和K1直接影响哈希值的计算改变它们可能导致不同的哈希结果从而影响输出故正确。选择题解析对于节点i合并操作为h[2*i] h[i] h[2*i1]对应二叉树的中序遍历左子树 → 根 → 右子树故选C。模拟计算得h[1].h1 83故选A。所有子树的中序遍历字符串共有 10 种不同的值故不同哈希值的个数为 10故选C。专栏推荐信奥赛C提高组csp-s初赛复赛真题题解持续更新https://blog.csdn.net/weixin_66461496/category_13125089.html各种学习资料助力大家一站式学习和提升#includebits/stdc.husingnamespacestd;intmain(){cout########## 一站式掌握信奥赛知识! ##########;cout############# 冲刺信奥赛拿奖! #############;cout###### 课程购买后永久学习不受限制! ######;return0;}1、csp信奥赛高频考点知识详解及案例实践CSP信奥赛C动态规划https://blog.csdn.net/weixin_66461496/category_13096895.html点击跳转CSP信奥赛C标准模板库STLhttps://blog.csdn.net/weixin_66461496/category_13108077.html 点击跳转信奥赛C提高组csp-s知识详解及案例实践https://blog.csdn.net/weixin_66461496/category_13113932.html2、csp信奥赛冲刺一等奖有效刷题题解CSP信奥赛C初赛及复赛高频考点真题解析持续更新https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转CSP信奥赛C一等奖通关刷题题单及题解持续更新https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转3、GESP C考级真题题解GESP(C 一级二级三级)真题题解持续更新https://blog.csdn.net/weixin_66461496/category_12858102.html 点击跳转GESP(C 四级五级六级)真题题解持续更新https://blog.csdn.net/weixin_66461496/category_12869848.html 点击跳转GESP(C 七级八级)真题题解持续更新https://blog.csdn.net/weixin_66461496/category_13117178.html4、CSP信奥赛C竞赛拿奖视频课https://edu.csdn.net/course/detail/40437 点击跳转· 文末祝福 ·#includebits/stdc.husingnamespacestd;intmain(){cout跟着王老师一起学习信奥赛C;cout 成就更好的自己 ;cout csp信奥赛一等奖属于你! ;return0;}

相关新闻

STM32与MPU6050驱动的两轮自平衡小车:从硬件搭建到PID调参实战

STM32与MPU6050驱动的两轮自平衡小车:从硬件搭建到PID调参实战

1. 两轮自平衡小车的工作原理 两轮自平衡小车本质上是一个倒立摆系统,这种结构天生就不稳定,需要通过实时控制才能保持平衡。想象一下用手指顶着一根直立的木棍,你需要不断移动手指来调整木棍的位置——这就是自平衡小车的工作原理&#xff…

2026/7/6 19:55:19 阅读更多 →
基于Dify的农商银行智能客服系统:AI辅助开发实战与架构优化

基于Dify的农商银行智能客服系统:AI辅助开发实战与架构优化

背景痛点:银行客服的“三座大山” 去年接手农商银行智能客服项目时,我们团队被三个现实问题按在地上摩擦: 金融术语像黑话:用户一句“我想转结构性存款到天天理财”,传统关键词匹配直接宕机,NLU 意图识别…

2026/7/5 6:40:13 阅读更多 →
ChatGPT与DeepSeek的技术革命:从模型架构到产业影响深度解析

ChatGPT与DeepSeek的技术革命:从模型架构到产业影响深度解析

技术背景:从“猜词”到“思考” 如果把 2017 年 Transformer 的发布比作内燃机诞生,那么大语言模型(LLM)的演进就是汽车工业的迭代史。GPT 系列用“下一个 token 预测”把无监督预训练推向极致;InstructGPT 引入 RLHF…

2026/7/6 8:34:11 阅读更多 →

最新新闻

如何从零开始为syzkaller内核模糊测试工具做贡献:新手完全指南

如何从零开始为syzkaller内核模糊测试工具做贡献:新手完全指南

如何从零开始为syzkaller内核模糊测试工具做贡献:新手完全指南 【免费下载链接】syzkaller syzkaller is an unsupervised coverage-guided kernel fuzzer 项目地址: https://gitcode.com/gh_mirrors/sy/syzkaller 你是否曾经想为开源内核安全项目做贡献&…

2026/7/6 19:55:17 阅读更多 →
EhViewer开源项目深度解析:构建现代化漫画浏览体验的Android解决方案

EhViewer开源项目深度解析:构建现代化漫画浏览体验的Android解决方案

EhViewer开源项目深度解析:构建现代化漫画浏览体验的Android解决方案 EhViewer是一个基于Material Design 2设计语言的开源Android漫画浏览应用,为E-Hentai平台用户提供了优雅、高效的内容浏览体验。这个项目不仅解决了漫画爱好者在移动设备上访问和浏览…

2026/7/6 19:55:17 阅读更多 →
FancySelect与iOS设备兼容性:智能适配与强制覆盖技巧

FancySelect与iOS设备兼容性:智能适配与强制覆盖技巧

FancySelect与iOS设备兼容性:智能适配与强制覆盖技巧 【免费下载链接】FancySelect A better select for discerning web developers everywhere. 项目地址: https://gitcode.com/gh_mirrors/fa/FancySelect FancySelect是一个为挑剔的Web开发者精心打造的选…

2026/7/6 19:53:14 阅读更多 →
为什么DocuSeal能让文档签署从繁琐到极简?3分钟了解开源电子签名的未来

为什么DocuSeal能让文档签署从繁琐到极简?3分钟了解开源电子签名的未来

为什么DocuSeal能让文档签署从繁琐到极简?3分钟了解开源电子签名的未来 【免费下载链接】docuseal Open source DocuSign alternative. Create, fill, and sign digital documents ✍️ 项目地址: https://gitcode.com/GitHub_Trending/do/docuseal 想象一下…

2026/7/6 19:53:14 阅读更多 →
PortBender与Cobalt Strike集成指南:打造高效渗透测试工作流

PortBender与Cobalt Strike集成指南:打造高效渗透测试工作流

PortBender与Cobalt Strike集成指南:打造高效渗透测试工作流 【免费下载链接】PortBender TCP Port Redirection Utility 项目地址: https://gitcode.com/gh_mirrors/po/PortBender 在当今复杂的网络安全环境中,渗透测试工具的高效集成成为了红队…

2026/7/6 19:51:13 阅读更多 →
Temboard社区与支持:如何获取PostgreSQL远程控制平台的帮助与资源

Temboard社区与支持:如何获取PostgreSQL远程控制平台的帮助与资源

Temboard社区与支持:如何获取PostgreSQL远程控制平台的帮助与资源 【免费下载链接】temboard PostgreSQL Remote Control 项目地址: https://gitcode.com/gh_mirrors/te/temboard Temboard是一款强大的PostgreSQL远程控制和管理平台,能够帮助数据…

2026/7/6 19:51:13 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻