首页 > 其他分享 >P8686 [蓝桥杯 2019 省 A] 修改数组

P8686 [蓝桥杯 2019 省 A] 修改数组

时间:2024-03-07 20:56:20浏览次数:22  
标签:P8686 int ll 蓝桥 merge 2019 mp include


备赛蓝桥杯和icpc的习题:
一道并查集的题目

> #include<iostream>
> #include<vector>
> #include<algorithm>
> #include<math.h>
> #include<string>
> #include<string.h>
> #include<iomanip>
> #include<map>
> #include<queue>
> using namespace std;
> typedef long long ll;
> int n;//n个整数
> ll mp[100010] = { 0 };//存储初始数据
> ll s[100010] = { 0 };//存储i对应的终点:s[i]
> void init()//初始化
> {
> 	for (ll i = 1; i <= 100000; i++)s[i] = i;
> }
> ll merge_(ll i)//合并,同时路径压缩
> {
> 	if (s[i] != i)s[i]=merge_(s[i]);
> 	return s[i];
> }
> int main()
> {
> 	cin >> n;
> 	for (int i = 1; i <= n; i++)cin >> mp[i];
> 	init();
>
> 	for (int i = 1; i <= n; i++)
> 	{
> 		ll th = mp[i];//记录前驱,修改的节点,因为不记录的话会被下一行的mp[i]更新
> 		mp[i] = s[merge_(mp[i])];//所有都要修改,沿途之处不一定是终点,只有遍历到i=s[i]时才正确
>  		s[merge_(mp[i])]++;//增加1,使得下一个重复的点可以增加
> 		merge_(th);//合并,路径压缩
> 	}
> 	for (int i = 1; i <= n; i++)cout << mp[i] << ' ';
> 	return 0;
> }

debug了10几分钟,难绷。

标签:P8686,int,ll,蓝桥,merge,2019,mp,include
From: https://www.cnblogs.com/zzzsacmblog/p/18059733/bcj

相关文章

  • 流程图制作工具和绘图软件Visio2019下载
    Visio2019专业版是微软公司推出的功能强大的专业流程绘制工具,旨在以直观的方式工作,轻松绘制流程图。它可以创建各种流程图、网络图、组织结构图、工程设计以及其他使用现代形状和模板的内容。主要特点:协作共赢:支持多人同时编辑Visio图表,并轻松合并更改。获取实际见解......
  • 2020蓝桥杯c语言省赛B组
    2020蓝桥杯省赛B组1.回文日期考点枚举+翻转完整代码#include<bits/stdc++.h>usingnamespacestd;boolrn(intt){ if((t%4==0&&t%100!=0)||t%400==0)returntrue; returnfalse;}注意:是整体翻转不是年月日变成日月年!boolf(intn,inty,intr){inth=n*10000+......
  • [CISCN2019 华北赛区 Day2 Web1]Hack World 1 盲注
    页面打开如上获取到信息flag在flag表中的flag列中尝试注入发现对用户的输入进行了限制使用burp进行fuzz测试其中535代表该页面对该条件进行了过滤其中括号并没有被过滤所以可以利用括号来代替空格进行盲注已知f的ascii码为102构筑等式(select(ascii(mid(flag,1,1)......
  • 第十一届蓝桥杯试题B:寻找2020
    目录题目题解:暴力题目题解:暴力需要知道文件的操作;发现2020的行列标变化li=[]#创建一个空列表用于存储读取的文本内容withopen(r'2020.txt','r')asfp:#打开名为'2020.txt'的文件,并使用文件句柄fpforlineinfp.readlines():#逐行读取文件内容......
  • Windows RDP远程漏洞|CVE-2019-0708
    WindowsRDP远程漏洞|CVE-2019-0708目录WindowsRDP远程漏洞|CVE-2019-07081描述:2影响范围:3漏洞检测3.10708detector3.1.1程序说明3.1.2下载地址3.1.3使用方法3.2cve_2019_0708_bluekeep.rb4缓解措施5修复建议:1描述:北京时间2019年5月14日当未经身份验证的攻击者使......
  • 第十一届蓝桥杯:数字三角形
    目录题目暴力:最大路径和题解:动态规划题目暴力:最大路径和n=int(input())#输入数塔的行数#创建一个二维数组a来表示数塔,初始值都为0a=[[0]*(n+1)for_inrange(n+1)]#从第1行开始逐行读取输入,并计算最大路径和foriinrange(1,n+1):forjinrange(1,i......
  • 第十一届蓝桥杯试题I:平面切分
    目录题目题解题目题解多画一下发现面的数量等于交点数量+1,进而转化为求交点的数量,注意同一个交点只记一次,需要去重操作lines=set()#存储直线的集合res=1#初始面的数量为1n=int(input())#输入边的数量defcheck(A,B):points=set()#存储交点的......
  • P8681 [蓝桥杯 2019 省 AB] 完全二叉树的权值
    做这道题的时候混淆了满二叉树和完全二叉树的概念:满二叉树:顾名思义,就是塞满了完全二叉树:除了最后一层之外,每一层都必须是满的,且最后一层如果不满,则所有节点都尽可能靠左。#include<iostream>#include<stdio.h>#include<algorithm>#include<string>#defineFor(i,j,n......
  • [GWCTF 2019]pyre
    首先是简单的pyc-py这题唯一要注意的一个点就是遇到%务必进行爆破爆破exp`code=['\x1f','\x12','\x1d','(','0','4','\x01','\x06','\x14','4',',','\x1......
  • [极客大挑战 2019]BabySQL 1
    [极客大挑战2019]BabySQL1审题还是SQL注入和之前的是一个系列的。知识点联合注入,双写绕过解题输入万能密码发现回显中没有or,猜测是使用正则过滤了or。尝试双写绕过登录成功使用联合查询,本题中过滤了from,where,or,by,union,select。看到4没有注入点,2和3都......