hdu3172Virtual Friends涨姿势并查集

最短路问题(各种方法整理)附上一个完美模板 最短路问题(short-path problem),从某点出发到达另一点所经过的路径权值相加最小的一条路径,就是最短路径。 经典的也是最容易掌握的方法Floyd,Dijkstra两种算法。 1.Floyd算法 Floyd算法可以求解的是任意两点的最短路径,功能强大,因此复杂度也很高,但是非常的好懂。 思想很简单,两点的最短路径无非就是直接从一点到另一点,要么就是中间还存在着其他的点。因此只 阅读详情

题目描述大致如下:

给定n个关系,每次给出关系的时候,求出这个集合的中人的总数,每次合并这两个人所在的集合

因为每次给出关系的时候都需要求出总数,所以每次去合并的时候去重新更新根节点,再去统计是不现实的.一开始因为这个TLE好几次.

之后发现其实每个子节点的个数也是可以合并到根节点去的,就类似p数组,可以定义sum数组,每次合并的时候,把子节点中的个数加入到父节点中,每次输出父节点的sum即可

还是费了一些时间,算是一个很不错的变形吧

#include<bits/stdc++.h>
using namespace std;
#define inf 0x3f3f3f3f3f
string a,b;
map<string ,int>m;
int cnt,t,n;
int p[100005];
long long sum[100005];
void init()
{
    for(int i=0; i<100005; i++){
        p[i]=i;
        sum[i]=1;
    }
    cnt=0;
    m.clear();
}

int find(int x)
{
    return p[x]==x?x:p[x]=find(p[x]);
}

void merge(int a,int b)
{
    int pa = find(a),pb= find(b);
    //cout<<pa<<"!!"<<pb<<endl;
    //cout<<sum[pa]<<"!!!!!"<<sum[pb]<<endl;
    if(pa!=pb){
        p[pb]=pa;
        sum[pa]+=sum[pb];
    }
}

int getans(int x){
    int pa = find(x);
    //cout<<x<<" "<<pa<<endl;
    return sum[pa];
}

int main()
{
    //freopen("1.txt","r",stdin);
    std::ios::sync_with_stdio(false);
    cin>>t;
    while(t--)
    {
        init();
        cin>>n;
        for(int i=0; i<n; i++)
        {
            cin>>a>>b;
            if(m.count(a)==0)
                m[a]=cnt++;
            if(m.count(b)==0)
                m[b]=cnt++;
            merge(m[a],m[b]);
            cout<<getans(m[b])<<endl;
        }
    }
    return 0;
}


【点云数据集】整理汇总(自用,更新ing) 涵盖了各种不同的城市场景:教堂、街道、铁路轨道、广场、村庄、足球场、城堡等等。邮件地址:dmich-request@graphics.stanford.edu,内容需包含:1. 您的姓名、头衔或职位,以及所在机构或隶属关系;license比较难获取,目前可获取的人员:(1)目前隶属于大学、工业研究实验室或其他主要机构的已发表过研究成果的研究人员;普林斯顿 ModelNet 项目的目标是为计算机视觉、计算机图形学、机器人技术和认知科学领域的研究人员提供全面、干净的物体 3D CAD 模型集合。 阅读详情

相关推荐

Quartz定时任务调度框架中的Misfire策略实战解析

本文深入解析了Quartz定时任务调度框架中的Misfire(失火)处理策略。针对SimpleTrigger和CronTrigger两种常用触发器,详细对比了其各自的Misfire指令(如NowWithExistingCount、FireAndProceed等)的核心行为与适用场景,并提供了基于不同业务需求(如数据补跑、时间点敏感度)的实战选型指南,帮助开发者构建更健壮可靠的任务调度系统。

weixin_29250573的博客 75

hdu3172

并查集水题。。。输入输出有点麻烦。。。1800多ms。。。超时的边缘 #include #include #include #include using namespace std; int father[100002]; int sum[100002]; int rank[100002]; int find(int x) { while (x!=father[x])

creater_X 967

提示词注入攻击全面解析与防御策略

提示词注入(Prompt Injection)是指攻击者通过精心构造的输入内容,操纵或欺骗AI系统执行非预期行为的技术手段。这种攻击类似于传统的SQL注入或XSS攻击,但其目标是AI模型的提示词处理机制而非数据库或网页。提示词注入利用了大语言模型的一个基本特性:它们被设计为遵循指令。攻击者通过在用户输入中嵌入特定指令,试图覆盖或绕过系统原有的安全限制和行为规则,让模型执行本不应该执行的操作。深度防御:实施多层次防御策略,不依赖单一安全措施持续更新:随着攻击技术的发展不断更新防御措施安全设计优先。

免责声明:本资料部分整理自合法网络公开渠道,部分为个人学习积累成果,仅作学习参考、学术交流使用。所收费用仅为资料搜集整理的时间劳务酬劳。版权归原作者及出版方所有,本人不承担相关版权及内容法律责任,若有侵权请告知,即刻删除处理。 4206

【HDU - 3172】【 Virtual Friends 】

题目: These days, you can do all sorts of things online. For example, you can use various websites to make virtual friends. For some people, growing their social network (their friends, their friends' ...

哇哈哈哈的博客 267

车辆贷款违约预测挑战赛

2021科大讯飞-车辆贷款违约预测挑战赛--方案简介车贷违约预测问题,目的是建立风险识别模型来预测可能违约的借款人。预测结果为借款人是否可能违约,属于二分类问题。偏数据挖掘的比赛,关键点是如何基于对数据的理解抽象归纳出有用的特征。站在大佬的视角,尝试学习总结,站在巨人的肩膀上,也许看得会更远一些。直接进入主题,开始学习套路,芜湖~特征工程1、常用库、数据导入import pandas as pd import numpy as np import lightgbm as lgb import xgboost

平平淡淡,戒急用忍,一生学闭嘴。 3341

Matlab激活失败?手把手教你解决License checkout failed问题(附详细截图)

本文针对Matlab激活后出现“License checkout failed”错误的常见问题,提供了详细的解决方案。核心在于精准定位并正确填写Windows系统用户名,而非计算机名或账户全名。文章通过分步截图和命令指引,手把手教你使用`whoami`命令获取正确信息,并重新运行激活程序,从根本上解决因用户名填写错误导致的许可检查失败问题。

weixin_29062823的博客 570

Virtual Friends(hdu-3172)

HDU - 3172 传送门 Problem Description These days, you can do all sorts of things online. For example, you can use various websites to make virtual friends. For some people, growing their social network (their friends, their friends’ friends, their friend..

Silence的博客 315

Python读取Matlab v7.3数据

文章目录Matlab保存数据Python读取 v7.3 Mat Matlab保存数据 在matlab设置中,常规->MAT文件,选择MATLAB版本7.3或更高版本保存数据。 注意保存数据的文件名为 corre.mat,保存的数据数组为data; 后面python的读取中会用到这两个参数 Python读取 v7.3 Mat 先安装hdf5storage库,再使用以下代码,就可以读取到mat中的数据,注意 import hdf5storage import numpy as np dataDi

weixin_43121914的博客 1081

HDU-3172-Virtual Friends(基础并查集)

题目 你可以使用各种网站来结交虚拟朋友。对一些人来说,扩大他们的社交网络(他们的朋友,朋友的朋友,朋友的朋友的朋友,等等)已经成为一种上瘾的爱好。就像有些人收集邮票,有些人收集虚拟的朋友。 你的任务是观察这样一个网站上的互动,并跟踪每个人的网络规模。 假设每段友谊都是相互的。如果弗雷德是巴尼的朋友,那么巴尼也是弗雷德的朋友。 输入 输入文件包含多个测试用例。 每个案例的第一行表示测试友谊巢的数量。...

qq_42576687的博客 248

海康DS-7604N-K1/RTB固件包

【摘要】海康DS-7604N-K1/RTB萤石云设备发布V4.30.091版本升级程序(2022.09.19),仅适用于指定型号。升级前需先升级至V3.4.106基础版本,刷机会重置设备为未激活状态,需重新设置admin密码。该机型支持密码/手势登录,无密码时可通过U盘升级。注意事项:升级存在风险,需确认程序适用性;升级过程严禁断电;必须阅读压缩包内的刷机说明。此为定制机型,非必要不建议升级。(150字)

海康威视技术支持 1568

被搜狗输入法背刺了!偷偷装的 “AI 汪仔” 狂占 CPU!手把手教你如何彻底关闭删除搜狗AI功能AI汪仔

手把手教你如何彻底关闭删除搜狗输入法的AI汪仔🚀

XiaoqiangClub的博客 2万+

hdu 3172

#include #include #include #include #include using namespace std; int k=0; const int M = 100005; int a[M]; int b[M]; map G; void reinit() { if(!G.empty()) G.clear(); k=0; memset(a,0,size

JogRunner的专栏 978

Sigrity System Explorer Transient Analysis模式进行瞬态仿真分析操作指导-差分信号

Sigrity System Explorer Transient Analysis模式可以用于瞬态仿真分析,通过搭建简易拓扑用于前仿真分析通道的时域性能,下面搭建一个简易的差分拓扑进行说明,以下图为例,准备好发送接收端的IBIS模型, (ibis_se.ibs,本例发送接收端都使用相同的IBIS模型),以及传输线的S参数模型(welement_se.sp)最上方的图形界面是传输线的模型,本例是一个上下都有参考平面的带状线,右侧的梯形是蚀刻角度,根据W1和W2以及铜厚来确定。

weixin_54787054的博客 440

hdu 3172Virtual Friends (map水过)

# include # include //不能sting.h # include # include # include using namespace std; int father[200010]; int num[200010]; int find(int x) { if(x==father[x]) return x; return father[x]=find(father

苍竹林 726

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

hdu 3172 Virtual Friends (映射并查集)

Virtual Friends Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5491    Accepted Submission(s): 1519 Problem Description These days, you can ...

weixin_34390105的博客 201

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

hdu 3172 Virtual Friends 并查集

Description These days, you can do all sorts of things online. For example, you can use various websites to make virtual friends. For some people, growing their social network (their friends, their

u013087645的专栏 717

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

hdu 3172 Virtual Friends (map+并查集)

Problem Description These days, you can do all sorts of things online. For example, you can use various websites to make virtual friends. For some people, growing their social network (their friends,

hndu__lz的博客 1401

HDU3172 UVA11503 Virtual Friends【并查集】

Virtual FriendsTime Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 9768    Accepted Submission(s): 2855Problem Description These days, you can do al...

海岛Blog 1528

HDU 3172 并查集水题

一道并查集的水题,字符串用map就可以了,,,题目: Virtual Friends Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1052    Accepted Submission(s): 341 Pr

1380

Virtual Friends

Problem Description These days, you can do all sorts of things online. For example, you can use various websites to make virtual friends. For some people, growing their social network (their friends,...

weixin_30919919的博客 214

hdu 3172 Virtual Friends(简单并查集)

点击打开链接 1.题目大意: 网上交友,计算朋友间都有关系的最多人数,用并查集做, 2,wrong answer的原因: 1、有多组样例 while(scanf("%d",&t)!=EOF)     {         while(t--)         { }     } 2、超时错在用charchange()给出每个人对应的数字编号,改正方法用map; 3/超时解决方式

sdjzping的专栏 3357

01背包,完全背包,多重背包的个人总结

大一刚接触背包问题的时候就觉得绕。那时候真的是一点代码基础都没有强行去理解。每次都是以失败告终,一直到大二都还不会写背包问题。 后来某次模拟赛之后碰到了背包问题,觉得这个还是挺简单的,终于是下定决心准备搞一搞这个东西了。 有了一定的基础理解起来就比以前容易多了。 首先,先分清楚这三个背包问题。 1.01背包:有n种物品与承重为m的背包。每种物品只有一件,每个物品都有对应的重量weight[

Linnnnnger的博客 1万+

列车调度(PAT)

当时想了很久,总是超时。最后参考了别人的代码才完全A了。 PAT题目总是这样,用一些很巧妙的容器跟函数。 然后大大简化代码量。 #include using namespace std; sets; int n,x; int main() { cin>>n; s.insert(0); for(int i=0;i<n;i++){ cin>>x;

Linnnnnger的博客 1502

最小生成树的两种方法

最小生成树问题的讲道理都是很直观的,让人一眼看得穿,然后再在模版上稍加改动就完成了。一般来说Prim跟Kruskal方法都是能解题的。但是复杂度不一样。Prim的时间复杂度是O(n^2),而Kruskal方法与给出的边的数量有关,复杂度为O(eloge)其实时间都是花在排序上了 。1.Prim算法简单来说,就是从一个点开始不断寻找,链接着其他相关点,每次加入一个距离最小的点。其中low数组就是保存...

Linnnnnger的博客 1379

牛客网——正则表达式匹配

给出匹配串,给出模式串。给出两种正则运算,一个是.(点)表示占位代表任意一个字符,一个是字符*(例如a*)代表此处可以有任意个*前面的字符。一开始想着是正着慢慢模拟,但是显然不可行,正着做显然是直接使用了前面的字符,而每次特殊判断字符后是不是*号过于复杂。第二个想着是倒着匹配,碰到*号了往新串中添加字符,然后观察时候可以构造出一个与原串相同的字符,但是也失败了,因为无法控制个数,例如abaaaa,...

Linnnnnger的博客 1081

RSA的简单模拟实现

对称加密都非常好理解,而且十分容易实现。 其实小的时候就早早知道了非对称加密的概念。但是就算在现实中找到海枯石烂也找到不到一个实例去实现。 然后上课老师举了一个很形象的例子: 非对称加密就像一个邮箱。邮箱的外壳就是加密秘钥,而邮箱的钥匙是解密秘钥。大家都可以使用这个加密秘钥把自己的信息发送出去而其他人也是同样的手法加密信息。但是过程是不可逆的,只有拥有解密秘钥的人,也就是拥有邮箱钥匙的人才能

Linnnnnger的博客 1048
上一篇: hihocoder1138涨姿势的最短路
下一篇: 阶乘位数问题
Linnnnnger
博客等级 码龄11年 71粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值