比赛组队
- 思路:此题讲了冰茶鸡的删点,为了不影响该集合中其它点的连接情况,我们用mom映射实际真实的父亲,然后原父亲继续保持联通(但他的魂已经转到了母亲上了)。
- 代码:
#include<bits/stdc++.h>
using namespace std;
const int N=1e6+5;
int fa[N],mo[N],cnt[N];
int get_fa(int u) {
if(fa[u]==u)return u;
return fa[u]=get_fa(fa[u]);
}
void Update1(int u,int v) {
int fu=get_fa(mo[u]),fv=get_fa(mo[v]);
if(fu!=fv) {
fa[fu]=fv;
cnt[fv]+=cnt[fu];
}
}
void Update2(int u,int v) {
int fu=get_fa(mo[u]),fv=get_fa(mo[v]);
if(fu!=fv) {
mo[u]=fv;
cnt[fv]++,cnt[fu]--;
}
}
int main() {
int n,m;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++) fa[i]=mo[i]=i,cnt[i]=1;
for(int i=1;i<=m;i++) {
int opt,x,y;
scanf("%d%d",&opt,&x);
if(opt==1) {
scanf("%d",&y);
Update1(x,y);
}
else if(opt==2) {
scanf("%d",&y);
Update2(x,y);
}
else {
printf("%d\n",cnt[get_fa(mo[x])]);
}
}
return 0;
}
冷战
队形变换
- 思路:一个集合内的表示一种共性的冰茶鸡(能够互换)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人