博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 1116 并查集和欧拉路径
阅读量:6094 次
发布时间:2019-06-20

本文共 913 字,大约阅读时间需要 3 分钟。

---恢复内容开始---

把它看成是一个图

只是需要欧拉路径就可以了 首尾能连成一条线即可

如果要判断这个图是否连通 得用并查集

在hrbust oj里面看答案学到的方法 不用各种for循环套着判断能否循环

只需要在union的时候做做调整 让比较大的父亲节点的父亲节点等于小的父亲节点 向1靠拢就可以 

但是在这里面 是向出现过的最小的字母的排序靠拢 所以要记录

而且for循环26个字母的时候 只对出现过的字母做判断它是否与最小的字母可以连通

#include
#include
#include
#include
using namespace std;int ru[30];int chu[30];int fa[30];int vis[30];void init(){ for(int i=1;i<=26;i++) { ru[i]=0; chu[i]=0; fa[i]=i; vis[i]=0; }}int find(int i){ return fa[i]==i?i:find(fa[i]);}void un(int a,int b){ int aa=find(a); int bb=find(b); if(aa>bb) fa[aa]=bb; else fa[bb]=aa;}int main(){ int t; scanf("%d",&t); while(t--) { int n; scanf("%d",&n); char s[2000]; init(); int minn=26; for(int i=0;i

  

---恢复内容结束---

转载于:https://www.cnblogs.com/rayrayrainrain/p/5188521.html

你可能感兴趣的文章
四种简单的排序算法(转)
查看>>
Quartz2D之着色器使用初步
查看>>
多线程条件
查看>>
Git [remote rejected] xxxx->xxxx <no such ref>修复了推送分支的错误
查看>>
Porter/Duff,图片加遮罩setColorFilter
查看>>
黄聪:VMware安装Ubuntu10.10【图解】转
查看>>
Centos 6.x 升级openssh版本
查看>>
公式推♂倒题
查看>>
无法嵌入互操作类型“……”,请改用适用的接口
查看>>
vue实现点击展开,点击收起
查看>>
如何使frame能居中显示
查看>>
0320 《构建之法》前三章观后感
查看>>
关于轮子的想法
查看>>
第k小数
查看>>
构建之法阅读笔记三
查看>>
Python/PHP 远程文件/图片 下载
查看>>
【原创】一文彻底搞懂安卓WebView白名单校验
查看>>
写给对前途迷茫的朋友:五句话定会改变你的人生
查看>>
并行程序设计学习心得1——并行计算机存储
查看>>
mysql练习题40道
查看>>