目录
前言
- 前言
- 思路
- CODE
一看上去 就是一道 很裸的题(还没有 食物链难呢 ) 结果大意了 给我做了半小时emm
思路- 因为数据范围很大 用到的很小 所以我们想到hash (也就是离散化)
- 所以我们可以通过 类似于 邻接链表里面的(idx ++ 这种方法一样 处理)
(通过cnt标记 有多少个种类的数 然后我们find 的时候只需要 cnt的操作即可 没必要到1e9了)
unordered_map mp;
int get(int x)
{
if(mp.count(x) == 0 ) mp[x] = ++cnt;
return mp[x];
}
- 所以我们就可以 先 存放 (X = X) 的数组
- 然后我们在用(X!=X)的来判断即可
是不是非常简单呢 (QAQ)
CODE#include
#define IOS ios::sync_with_stdio(false)
using namespace std;
const int N = 4e6+10;
int n,m,p[N],cnt;
unordered_map mp;
struct node
{
int a,b,w;
} num[N];
int get(int x)
{
if(mp.count(x) == 0 ) mp[x] = ++cnt;
return mp[x];
}
int find(int x)
{
if(x != p[x])
return p[x] = find(p[x]);
return p[x];
}
void solve()
{
int n;
cin>>n;
for(int i=1; i>a>>b>>w;
int fa = get(a);
int fb = get(b);
num[i] = {fa,fb,w};
}
for(int i=1; i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?