2024 sheep

news/2024/11/17 1:53:43/文章来源:https://www.cnblogs.com/sadlin/p/18410476

image

类似最小生成树,对边排序依次加上,但是数据大,要进行离线处理,存起来,将比他小的边加上,判断连通用并查集(路径压缩,按秩合并)。

唐完的我在赛时没写按秩,而且while没写终止条件(唐老鸭)。

先按秩后合并,测评机有点玄学但确实要这样。

初版:

#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10;
int ans[N];
int n,m,q;
int siz[N];
struct ss{int u,v,w;
}e[N];struct sa{int s,t,c,id;
}a[N];bool cmp(ss g,ss h){return g.w<h.w;
}bool cmp2(sa g,sa h){return g.c<h.c;
}int fa[N];
int find(int x){return fa[x]==x?x:find(fa[x]);
}int main(){freopen("sheep.in","r",stdin);freopen("sheep.out","w",stdout);ios::sync_with_stdio(false);cin>>n>>m>>q;for(int i=1;i<=n;i++){fa[i]=i;siz[i]=1;}for(int i=1;i<=m;i++){cin>>e[i].u>>e[i].v>>e[i].w;}sort(e+1,e+m+1,cmp);for(int i=1;i<=q;i++){cin>>a[i].s>>a[i].t>>a[i].c;a[i].id=i;}sort(a+1,a+q+1,cmp2);int j=1;int x,y;for(int i=1;i<=m;i++){while(e[i].w>a[j].c&&j<=q){if(find(a[j].s)==find(a[j].t)){ans[a[j].id]=1;}++j;}x=find(e[i].u);y=find(e[i].v);if(x==y){continue;}if(siz[x]>siz[y]){swap(x,y);}siz[y]+=siz[x];fa[x]=y;}while(j<=q){ans[a[j].id]=(find(a[j].s)==find(a[j].t));j++;} for(int i=1;i<=m;i++){if(ans[i]){cout<<"Yes\n";}else{cout<<"No\n";}}return 0;
}

抄版:

#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10;
bool ans[N];
int n,m,q;
int siz[N];
struct ss{int u,v,w;int id;
}e[N],a[N];bool cmp(ss g,ss h){return g.w<h.w;
}int fa[N];
int find(int x){return fa[x]==x?x:find(fa[x]);
}void merge(int u,int v){u=find(u);v=find(v);if(u==v){ return;}if(siz[u]>siz[v]){swap(u,v);}fa[u]=v;siz[v]+=siz[u];return;
}int main(){freopen("sheep.in","r",stdin);freopen("sheep.out","w",stdout);ios::sync_with_stdio(false);cin>>n>>m>>q;for(int i=1;i<=n;i++){fa[i]=i;siz[i]=1;}for(int i=1;i<=m;i++){cin>>e[i].u>>e[i].v>>e[i].w;}for(int i=1;i<=q;i++){cin>>a[i].u>>a[i].v>>a[i].w;a[i].id=i;}sort(e+1,e+m+1,cmp);sort(a+1,a+q+1,cmp);for(int i=1,j=1;i<=q;i++){while(e[j].w<=a[i].w&&j<=m){merge(e[j].u,e[j].v);++j;}ans[a[i].id]=(find(a[i].u)==find(a[i].v)); }for(int i=1;i<=q;i++){if(ans[i]){cout<<"Yes\n";}else{cout<<"No\n";}}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/796075.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PbootCMS如何输出当前页面的完整url

在PBootCMS中,输出当前页面的完整URL可以通过模板标签来实现。以下是具体的步骤和模板标签的使用方法: 输出当前页面的完整URL 可以使用 {pboot:httpurl} 标签来获取当前页面的完整URL。这个标签会自适应地获取当前访问的网址,可以用于需要使用网站路径前缀的情况。扫码添加…

pbootcms后台“登录失败:表单提交校验失败,请刷新后重试”

当遇到PBootCMS后台登录时提示“登录失败:表单提交校验失败,请刷新后重试”的问题时,可以尝试以下几个解决方法:刷新页面:首先按照提示刷新页面,看看是否能够解决问题。 清理浏览器缓存:有时候浏览器缓存可能导致表单提交出现问题,尝试清除浏览器缓存后再试。 删除运行…

PbootCMS后台登录验证码看不清怎么回事?

如果你发现PBootCMS后台登录时的验证码看不清楚,这可能是由于以下几个原因造成的:验证码背景与文字颜色相近:验证码的背景色和文字颜色可能过于接近,导致对比度不足,使得验证码难以辨认。 PHP版本不兼容:某些PHP版本可能与生成验证码的脚本不兼容,导致验证码显示异常。解…

jQuery高级选择符与遍历

1.HTML代码 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><scrip…

uniapp使用路由名称跳转

由于web端和app公用一套菜单,而两个项目的路径是不同的,为解决这个问题,封装了一套使用路由名称作为跳转路由的方法 1.在pages.json文件里pages对应的页面配置里添加 routeName 字段(自定义),我做的app里面的菜单是后台获取的,所以这里的value值对应的是后台返回的页面路…

MyBatis-Plus动态表名

MyBatis-Plus动态表名 一、早期方案 1.1 MyBatis-Plus版本 1、添加MyBatis-Plus依赖 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.1</version> </dependency&g…

PbootCMS附件上传失败报错UNKNOW: Code: 8192; Desc: stripos()

在PBootCMS中遇到附件上传失败的报错 UNKNOW: Code: 8192; Desc: stripos(): Non-string needles will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior,这通常是因为PHP版本升级后某些函数的行为发生了变化。具体来说…

Android Studio单独运行Java程序

见图:添加代码如下: <option name="delegatedBuild" value="false" />

西门子WinCC开发笔记(一):winCC西门子组态软件介绍、安装

前言WinCC,非常经典的组态软件,西门子触摸屏。  西门子PLC的软件还是弄得比较多,WinCC是西门子触摸屏的编程和仿真软件,配套西门子的触摸屏,可以组态编程、仿真然后下载到HMI人机触摸屏上,作为组态软件来说,是非常值得了解、熟悉和学习的。 相关博客《案例分享:Qt激光…

面试-JS Web API-事件绑定和事件代理

编写一个通用的事件监听函数 描述事件冒泡的流程 无线下拉的图片列表,如何监听每个图片的点击?---事件代理 用e.target获取触发元素 用matches判断是否是触发元素事件绑定 addEventListenerfunction bindEvent(elem, type, fn) {elem.addEventListener(type, fn) }const btn1…

用 Rust 实现敏感信息拦截插件,提升 AI 网关安全防护能力

本⽂对敏感信息拦截插件的使用方式和实现原理进行了简单介绍,它能够自动检测并处理请求和响应中的敏感词,有效防止敏感信息泄露。通过对不同数据范围的支持和灵活的配置选项,该插件能够适应各种应用场景,确保数据的安全性和合规性。希望对你有帮助!作者:刘毅杰,棱镜七彩…

Linux--软链接,硬链接

在 Linux 和类 Unix 系统中,软链接(符号链接)和硬链接是用于文件系统中引用文件的两种方式。它们各自有不同的特点和用途。 软链接(符号链接) 硬链接定义 软链接是一个指向另一个文件或目录的特殊文件,包含指向目标文件路径的文本信息 硬链接是指向文件系统中同一文件的…