题目
题目链接
题解思维+并查集。
难的不是使用并查集,而是看出来能用并查集。
由于之前做过,有点印象,所以一下想到了并查集
大概一说,fa[x]表示x要更新到多少,每次将x的fa更新为多少?更新为x+1?不一定,这得看x+1更新到了多少,如果x+1在之前都更新到了x+k,那么x肯定不能仅更新到x+1,而是更新到x+k+1。整体来看,我们x的更新取决于x+1,x +1取决于x+2,……这些数的fa值都可以指向同一个数x+k+1。有点并查集的意思吧。
题解连接
注意卡cin,cout。
具体题解看别人的吧,懒得写了,下午摆烂了,所以晚上得刷够六道题补回来。
代码#include
using namespace std;
const int N = 1e6+10;
int n, x, fa[N];
int find (int x) {
return fa[x] == x ? x : fa[x] = find (fa[x]);
}
int main()
{
cin >> n;
for (int i = 0;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脚手架写一个简单的页面?