发布时间:2026/7/26 12:10:22
打卡信奥刷题(3471)用C++实现信奥题 P10564 [ICPC 2024 Xi‘an I] Rubbish Sorting P10564 [ICPC 2024 Xi’an I] Rubbish Sorting题目描述Bob 有很多垃圾。有一天他想要对它们进行分类。对于每一件垃圾其类型用一个正整数表示。他有qqq个操作。对于每个操作可能是以下两种操作之一。1 s x他告诉你名为sss的垃圾类型为xxx。2 s他想询问你垃圾sss的类型。但他的记忆并不总是准确的。对于每个操作222sss可能没有在之前的操作111中出现过。我们定义两个字符串s1s_1s1​和s2s_2s2​的相似度为∑i1min⁡{∣s1∣,∣s2∣}[s1,is2,i]\sum_{i1}^{\min\{|s_1|,|s_2|\}} [s_{1,i}s_{2,i}]∑i1min{∣s1​∣,∣s2​∣}​[s1,i​s2,i​]。这里所有字符串的索引从111开始。对于一个字符串sss其类型是与sss相似度最大的字符串的类型在所有之前操作111中出现过的字符串中。如果有多个字符串与sss的相似度都最大那么sss的类型是这些字符串类型中的最小值。现在他希望你解决这个问题。输入格式第一行包含一个整数q(1≤q≤3×105)q(1\le q\le 3\times 10^5)q(1≤q≤3×105)表示操作的数量。接下来的qqq行包含操作每行一个。它们对应于题目中给出的描述。保证对于每个操作222在它之前至少有一个操作111。但有些垃圾会有多种类型你可以将其视为你读到的最小类型。垃圾的名称仅由小写拉丁字母组成。1≤∣s∣≤5,1≤x≤1091 \le |s| \le 5, 1 \le x \le 10^91≤∣s∣≤5,1≤x≤109。输出格式对于每个操作222你应该在单独的一行中输出一个整数即垃圾sss的类型。输入输出样例 #1输入 #14 1 aaa 1 2 aa 1 ab 2 2 bb输出 #11 2说明/提示由 ChatGPT 4o 翻译C实现#includebits/stdc.husingnamespacestd;intq,x,ans,p;mapstring,intmp;mapstring,intop;structnode{intp,v;node(intp_-1,intv_1e9):p(p_),v(v_){}};voiddfs1(string s,intcur){//枚举状态并存入if(cur5){intcnt0;for(charc:s)if(c!%)cnt;//匹配度if(!mp.count(s)||cntmp[s]||(cntmp[s]xop[s])){mp[s]cnt;op[s]x;}return;}dfs1(s,cur1);//改变或者不改变chartmps[cur];s[cur]%;dfs1(s,cur1);s[cur]tmp;return;}nodedfs2(string s,intcur){if(cur5){if(mp.count(s))returnnode(mp[s],op[s]);returnnode();}node resdfs2(s,cur1);chartmps[cur];s[cur]%;node res2dfs2(s,cur1);if(res2.pres.p||(res2.pres.pres2.vres.v))resres2;returnres;}intmain(){ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);cinq;while(q--){into;string s;cinos;while(s.size()5)s%;//补全长度if(o1){cinx;dfs1(s,0);}else{node resdfs2(s,0);coutres.v\n;}}return0;}后续接下来我会不断用C来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现记录日常的编程生活、比赛心得感兴趣的请关注我后续将继续分享相关内容

相关新闻

2026/7/26 12:10:22

如何免费突破百度网盘限速:终极直链解析工具完整指南

如何免费突破百度网盘限速:终极直链解析工具完整指南 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 你是否也曾被百度网盘的非会员下载速度折磨得焦头烂额&#x…

2026/7/26 12:00:06

DM6435嵌入式系统:交换矩阵架构与EDMA3数据传输优化实践

1. 系统互连架构:DM6435的数据高速公路设计哲学在嵌入式处理器,尤其是像TMS320DM6435这样的高性能数字媒体处理器中,系统互连架构的设计直接决定了整个芯片的“交通”效率。你可以把它想象成一座现代化城市的交通网络:CPU核心是市…

2026/7/26 12:00:06

Unity回合制战斗系统开发:从状态机到性能优化的5个核心问题

1. 项目概述:从“阴阳师”式神战斗看回合制游戏开发的复杂性 做Unity3D游戏开发,特别是回合制品类,总绕不开一个标杆——《阴阳师》。它的式神战斗系统,以其华丽的技能特效、复杂的策略搭配和流畅的回合体验,成为了无数…

2026/7/26 12:55:24

Windows本地HTTPS开发环境配置全指南

1. 为什么我们需要本地HTTPS开发环境现代Web开发中,越来越多的API和前端功能要求必须运行在HTTPS环境下才能正常工作。比如:浏览器地理位置定位APIService Worker/PWA相关功能摄像头/麦克风访问权限第三方登录(OAuth 2.0)跨域资源…

2026/7/26 12:55:24

10分钟上手linuxdeploy:AppImage打包新手入门教程

10分钟上手linuxdeploy:AppImage打包新手入门教程 【免费下载链接】linuxdeploy AppDir creation and maintenance tool. Featuring flexible plugin system. 项目地址: https://gitcode.com/gh_mirrors/lin/linuxdeploy AppImage作为一种流行的Linux应用分发…

2026/7/26 12:55:24

Dify可视化AI工作流:零代码构建文本摘要应用

1. 项目概述:当AI开发遇上可视化编排 最近在测试Dify这个AI应用开发平台时,发现它的工作流编排功能确实能大幅降低开发门槛。传统需要写Python脚本调用API的文本摘要任务,现在通过拖拽节点和连线就能完成。我花了些时间完整走通了从环境准备到…

2026/7/26 12:50:24

一文读懂DenseNet核心原理:密集连接如何解决梯度消失难题

一文读懂DenseNet核心原理:密集连接如何解决梯度消失难题 【免费下载链接】DenseNet DenseNet implementation in Keras 项目地址: https://gitcode.com/gh_mirrors/den/DenseNet DenseNet(密集连接卷积网络)是深度学习领域的革命性架…

2026/7/26 0:03:36

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

一、背景与测试方案 在实际项目交付中,PDF文件合并与版权保护水印的叠加是一个高频但容易被低估的技术需求。典型的处理链路涉及:多源PDF的文件流合并、页面级水印渲染(含透明度混合与图层叠加)、输出文件体积控制。看似简单的操作…

2026/7/26 0:03:36

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

一、背景与测试方案 在实际项目交付中,PDF文件合并与版权保护水印的叠加是一个高频但容易被低估的技术需求。典型的处理链路涉及:多源PDF的文件流合并、页面级水印渲染(含透明度混合与图层叠加)、输出文件体积控制。看似简单的操作…

2026/7/26 2:45:59

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…