当前位置: 首页 > news >正文

洛谷P2814 家谱(c嘎嘎)

题目链接:P2814 家谱 - 洛谷 | 计算机科学教育新生态

题目难度:普及/提高


 

解题心得:这道题用了并查集(貌似不怎么常用的字符串并查集),用STL中的map将子孙和祖先连接起来,第一次接触这种做法感觉很妙,发篇题解记录下。。。。

代码部分:

#include<bits/stdc++.h>
using namespace std;	
#define _for(i,a,b) for(int i=(a); i<(b); i++)
#define _rep(i,a,b) for(int i=(a); i<=(b); i++)
typedef long long ll;
const int N = 1e5 + 10;
map<string,string>p; 
string s,t;string find(string x)
{if(x != p[x]) p[x] = find(p[x]);return p[x];
}int main()
{ios::sync_with_stdio(false);cin.tie(nullptr),cout.tie(nullptr);char ch;cin >> ch;while(ch != '$'){cin >> s;if(ch == '#'){t = s;if(p[s] == "") p[s] = s;}else if(ch == '+'){p[s] = t;}else cout<<s<<' '<<find(s)<<'\n';cin >> ch;} return 0;
}

http://www.lryc.cn/news/512443.html

相关文章:

  • 时空信息平台-API安全措施-下篇:登录鉴权【访问受限】您的请求已被该站点的安全策略拦截。
  • 找不到vcruntime140.dll文件,无法继续执行如何修复?共有7种方法
  • 【PCIe 总线及设备入门学习专栏 4.5 -- PCIe Message and PCIe MSI】
  • Docker搭建MySQL
  • #C01L11P02. C01.L11.while循环.while循环和for循环的区别
  • 利用deepspeed在Trainer下面微调大模型
  • 【spring】参数校验Validation
  • 基于PyQt5的UI界面开发——图像与视频的加载与显示
  • [python SQLAlchemy数据库操作入门]-16.CTE:简化你的复杂查询
  • 多分类的损失函数
  • 在WSL的系统中配置免密和GitHub传输数据(SSH)
  • Python中元组(tuple)内置的数据类型
  • chrome缓存机制以及验证缓存机制
  • 医药进出口交易|基于SSM+vue的医药进出口交易系统的设计与实现(源码+数据库+文档)
  • 爱快 IK-Q6000 WiFi6无线路由器 简单开箱评测和拆解
  • 时间敏感网络中全面分析与调度的模型驱动方法
  • 统计颜色Count Color(POJ2777)题解
  • MySQL数据的增删改查(一)
  • 国产文本编辑器EverEdit - 如何给小众语言开发大纲分析脚本
  • 【数据结构】线性数据结构——数组
  • QT---------GUI程序设计基础
  • 2、Bert论文笔记
  • Linux之ARM(MX6U)裸机篇----7.蜂鸣器实验
  • Zabbix 监控平台 添加监控目标主机
  • SpringCloud整合skywalking实现链路追踪和日志采集
  • html文件通过script标签引入外部js文件,但没正确加载的原因
  • OpenHarmony开发板环境搭建
  • 【Rust自学】7.6. 将模块拆分为不同文件
  • Python入门:8.Python中的函数
  • MySQL什么情况下会加间隙锁?