尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

打卡信奥刷题(3471)用C++实现信奥题 P10564 [ICPC 2024 Xi‘an I] Rubbish Sorting

打卡信奥刷题(3471)用C++实现信奥题 P10564 [ICPC 2024 Xi‘an I] Rubbish Sorting
📅 发布时间:2026/7/26 12:26:37

P10564 [ICPC 2024 Xi’an I] Rubbish Sorting

题目描述

Bob 有很多垃圾。有一天,他想要对它们进行分类。

对于每一件垃圾,其类型用一个正整数表示。

他有qqq个操作。对于每个操作,可能是以下两种操作之一。

  • 1 s x他告诉你,名为sss的垃圾类型为xxx。
  • 2 s他想询问你垃圾sss的类型。

但他的记忆并不总是准确的。

对于每个操作222,sss可能没有在之前的操作111中出现过。

我们定义两个字符串s1s_1s1​和s2s_2s2​的相似度为∑i=1min⁡{∣s1∣,∣s2∣}[s1,i=s2,i]\sum_{i=1}^{\min\{|s_1|,|s_2|\}} [s_{1,i}=s_{2,i}]∑i=1min{∣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

输入 #1

4 1 aaa 1 2 aa 1 ab 2 2 bb

输出 #1

1 2

说明/提示

(由 ChatGPT 4o 翻译)

C++实现

#include<bits/stdc++.h>usingnamespacestd;intq,x,ans,p;map<string,int>mp;map<string,int>op;structnode{intp,v;node(intp_=-1,intv_=1e9):p(p_),v(v_){}};voiddfs1(string s,intcur){//枚举状态并存入if(cur==5){intcnt=0;for(charc:s)if(c!='%')cnt++;//匹配度if(!mp.count(s)||cnt>mp[s]||(cnt==mp[s]&&x<op[s])){mp[s]=cnt;op[s]=x;}return;}dfs1(s,cur+1);//改变或者不改变chartmp=s[cur];s[cur]='%';dfs1(s,cur+1);s[cur]=tmp;return;}nodedfs2(string s,intcur){if(cur==5){if(mp.count(s))returnnode(mp[s],op[s]);returnnode();}node res=dfs2(s,cur+1);chartmp=s[cur];s[cur]='%';node res2=dfs2(s,cur+1);if(res2.p>res.p||(res2.p==res.p&&res2.v<res.v))res=res2;returnres;}intmain(){ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);cin>>q;while(q--){into;string s;cin>>o>>s;while(s.size()<5)s+='%';//补全长度if(o==1){cin>>x;dfs1(s,0);}else{node res=dfs2(s,0);cout<<res.v<<'\n';}}return0;}

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

相关新闻

  • 如何轻松压缩90%文件大小?CompressO终极指南:免费开源的多媒体压缩神器
  • AI学术写作工具的创新功能与实践指南
  • 邮件自动归档、优先级打标、敏感信息脱敏——一套开源可商用的AI分拣Pipeline(含Docker镜像+合规审计日志)

最新新闻

  • AI运动相机如何降低草根赛事直播成本
  • 2026年杭州画室校考集训公司深度横向评测:五家机构实力揭秘 - 品牌报告
  • CC27xx SACI接口实战:安全启动、Flash编程与调试认证全解析
  • 什么岗位该用猎头?2026年企业招聘账本:自招和猎头哪个更划算?
  • 7步攻克Kotaemon文档聊天工具配置难题:从零到精通的实战指南
  • 终极指南:如何用15个免费Illustrator脚本提升10倍设计效率 [特殊字符]

日新闻

  • 大连理工大学与东京大学联手打造的“主动型AI助手“
  • 170.2026年国家级科研瓶颈:超精密单点金刚石切削(SPDT)光学表面生成
  • SongBloom:革命性歌曲生成框架深度解析——如何通过交织自回归与扩散模型创作完整音乐

周新闻

  • 大连理工大学与东京大学联手打造的“主动型AI助手“
  • 170.2026年国家级科研瓶颈:超精密单点金刚石切削(SPDT)光学表面生成
  • SongBloom:革命性歌曲生成框架深度解析——如何通过交织自回归与扩散模型创作完整音乐

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号