ee

news/2025/2/22 21:04:52/文章来源:https://www.cnblogs.com/Myyy-L/p/18731388

明天一定调程序

include <bits/stdc++.h>

define int long long

define pii pair<int,int>

define mkp make_pair

define fst first

define scd second

using namespace std;
const int N=1e5+5;
const int inf=0x3f3f3f3f3f3f3f3f;
int n,m;
struct Edge { int u,v,w,id; }e[N];
struct node { int nxt,val,id; };
vector tr[N];
int fa[N],f[N],ans[N],val[N],idx[N];
struct Segment_Tree
{
struct NODE {
int l,r;
int mn,mx;
int tag,id;
}tr[N<<2];
void push_up(int id) { tr[id].mn=min(tr[id<<1].mn,tr[id<<1|1].mn); tr[id].mx=max(tr[id<<1].mx,tr[id<<1|1].mx); }
void push_down(int id)
{
if (tr[id].taginf) return ;
int ls=id<<1,rs=id<<1|1;
tr[ls].mn=min(tr[ls].mn,tr[id].tag),tr[ls].tag=min(tr[ls].tag,tr[id].tag);
tr[rs].mn=min(tr[rs].mn,tr[id].tag),tr[rs].tag=min(tr[rs].tag,tr[id].tag);
tr[id].tag=inf;
}
void build(int id,int l,int r)
{
tr[id].l=l,tr[id].r=r;
if (l
r) { tr[id].mn=tr[id].tag=inf; tr[id].mx=e[val[l]].w; tr[id].id=idx[l]; return ; }

	int mid=(l+r)>>1;build(id<<1,l,mid),build(id<<1|1,mid+1,r);push_up(id);
}
void update(int id,int l,int r,int k)
{if (tr[id].l>=l&&tr[id].r<=r) { tr[id].mn=min(tr[id].mn,k); tr[id].tag=min(tr[id].tag,k); return ; }push_down(id);int mid=tr[id].l+tr[id].r>>1;if (mid>=l) update(id<<1,l,r,k);if (mid+1<=r) update(id<<1|1,l,r,k);push_up(id); 
}
int query(int id,int l,int r)
{if (tr[id].l>=l&&tr[id].r<=r) return tr[id].mx;push_down(id);int mid=(tr[id].l+tr[id].r)>>1,res=0;if (l>=mid) res=max(res,query(id<<1,l,r));if (mid+1<=r) res=max(res,query(id<<1|1,l,r));return res; 
}
void eaea(int id)
{if (tr[id].l==tr[id].r){if (tr[id].mn<=val[tr[id].l]) ans[e[val[tr[id].l]].id]=2;else ans[e[val[tr[id].l]].id]=1;return ;}eaea(id<<1),eaea(id<<1|1);} 

}Tr;

bool cmp(Edge x,Edge y) { return x.w<y.w; }
int find_fa(int x) { return fa[x]=(fa[x]==x?x:find_fa(fa[x])); }
void kruskal()
{
for (int i=1;i<=n;i++) fa[i]=i;
sort(e+1,e+1+m,cmp);

int cnt=0;
for (int i=1;i<=m;i++)
{int u=e[i].u,v=e[i].v,w=e[i].w;int fa1=find_fa(u),fa2=find_fa(v);if (fa1==fa2) continue;fa[fa1]=fa2;tr[u].push_back({v,w,i}),tr[v].push_back({u,w,i});f[i]=1,cnt++;if (cnt>=n-1) break; 
}

}
int siz[N],dep[N];
pii son[N];
int dfn[N],tme,top[N];
int st[N][20];
void dfs1(int x,int _fa)
{
dep[x]=dep[_fa]+1,siz[x]=1;
fa[x]=st[x][0]=_fa;
int _size=tr[x].size();
for (int i=0;i<_size;i++)
{
int v=tr[x][i].nxt,w=tr[x][i].val;
if (v_fa) continue;
dfs1(v,x);
siz[x]+=siz[v];
son[x]=(siz[son[x].fst]>siz[v]?son[x]:mkp(v,w));
}
}
void dfs2(int x,int _top,int w)
{
top[x]=_top,dfn[x]=++tme,val[tme]=w,idx[tme]=x;
if (son[x].fst) dfs2(son[x].fst,_top,son[x].scd);
int _size=tr[x].size();
for (int i=0;i<_size;i++)
{
int v=tr[x][i].nxt;
if (v
fa[x]||vson[x].fst) continue;
dfs2(v,v,tr[x][i].id);
}
}
void init()
{
for (int j=1;j<=17;j++)
for (int i=1;i<=n;i++) st[i][j]=st[st[i][j-1]][j-1];
}
int lca(int x,int y)
{
if (dep[x]<dep[y]) swap(x,y);
int delta=dep[x]<dep[y],lg=0;
while (delta)
{
if (delta&1) x=st[x][lg];
delta>>=1,lg++;
}
if (x
y) return x;

for (int i=17;i>=0;i--)
{if (st[x][i]==st[y][i]) continue;x=st[x][i],y=st[y][i];
}
return st[x][0];

}
int query(int x,int y,int w)
{
int res=0;
while (top[x]!=top[y])
{
if (dep[top[x]]<dep[top[y]]) swap(x,y);
res=max(res,Tr.query(1,dfn[top[x]],dfn[x]));
x=fa[top[x]];
}
if (dep[x]<dep[y]) swap(x,y);
res=max(res,Tr.query(1,dfn[y]+1,dfn[x]));
return res;
}
void update(int x,int y,int w)
{
while (top[x]!=top[y])
{
if (dep[top[x]]<dep[top[y]]) swap(x,y);
Tr.update(1,dfn[top[x]],dfn[x],w);
x=fa[top[x]];
}
if (dep[x]<dep[y]) swap(x,y);
Tr.update(1,dfn[y]+1,dfn[x],w);
return ;
}
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);

cin>>n>>m;
for (int i=1;i<=m;i++) { cin>>e[i].u>>e[i].v>>e[i].w; e[i].id=i; }kruskal();
dfs1(1,0),dfs2(1,0,0);
init(),Tr.build(1,1,n);
for (int i=1;i<=m;i++)
{if (f[i]) continue;int u=e[i].u,v=e[i].v,w=e[i].w,l=lca(u,v);if (query(u,v,w)>=w) { ans[e[i].id]=2; update(u,v,w); }else ans[e[i].id]=3;
}
Tr.eaea(1);
for (int i=1;i<=m;i++)
{if (ans[i]==1) cout<<"any"<<"\n";else if (ans[i]==2) cout<<"at least one"<<"\n";else cout<<"none"<<"\n";
}
return 0;

}

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

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

相关文章

AXI4-Stream Data FIFO(2.0)

IP核具体设置如下,数据宽度64bit,深度32,启用了包传输。打开Example Design三个IP核和两个AXI读写模块。 clk_wiz_0是mmcm IP核,提供工作时钟,proc_sys_reset_0是系统复位 IP核,提供复位信号,axis_data_fifo是本次的仿真IP 核。 axis_data_fifo_example_master是写模块,…

DeepSeek宣布下周开源5大项目,这才是真OpenAI!

近日,DeepSeek 团队宣布将在下周连续开源 5 个项目。这一举措不仅吸引了众多开发者的目光,还在技术社区引发了热烈讨论,不少网友甚至将 DeepSeek 誉为 “真正的 OpenAI”。一、DeepSeek开源计划详情(一)开源时间与方式DeepSeek团队决定开展“OpenSourceWeek”(开源周)活…

NOIP 2024 游记 | Loser.

Loser. p.s. 本文章比较废话()Day 1 早上 6:30 被拽起来了。吃饭。出门。坐地铁。到! 华科大门,比,华师气派多了诶诶。扯了个横幅,拍照。拍照。拍照。 诶诶,怎么 7:45 就拽着我们进去了。 进考场。我怎么是第一排第一个 /jk 看见了 @Hakureireimu_cjrljpx,但是他不认识…

利用 vscode 进行远程开发

打开远程项目路径在远程服务器上安装 vscode 插件 Go、GitLens、Git History、Git Graph、MarsCode AI对于本地已经安装的插件,点击Install In SSH:xxx就能把插件安装到远程服务器对于本地没有安装的插件,直接查找插件,选中安装,即是安装到远程服务器git 不高亮显示修改行从…

查看Oracle的数据库表命令

在 Oracle 里 “数据库” 的概念和其他数据库系统有所不同,Oracle 一个实例通常对应一个数据库,但可以包含多个不同的模式(类似于其他数据库系统中的用户数据库)1. 查看数据库名称你可以在 SQL*Plus 或者 SQL Developer 等工具中执行如下 SQL 语句:SELECT name FROM v$dat…

Linux 中declare命令详解

Linux 中declare命令001、普通测试[root@PC1 dir1]# ls [root@PC1 dir1]# echo $var1[root@PC1 dir1]# var1="hello world" [root@PC1 dir1]# echo $var1 hello world [root@PC1 dir1]# var1=100.55 [root@PC1 dir1]# echo $var1 100.55 [root@PC1 dir1]# var1=100 […

《软件开发与创新课程设计》第一次课后作业——对学生选课系统的改进

(1)博客介绍 本文的学生选课系统的源码来自于csdn的一篇博客当中。该系统的实现语言以C++为主,本文的主要内容围绕该系统进行分析,并针对系统的主要问题进行一些修改或重构。 本篇如有问题存在,请各位读者多多指正! (2)学生选课系统分析 源代码如下: 点击查看代码 #de…

pikachu unsafe Fileupload

在上传点上传非法文件,提示上传文件不符合要求,且BP没有新的数据包产生,判断为客户端检查禁用浏览器JavaScript后刷新网页,再次上传文件,提示上传成功,文件路径为uploads/test.phpedge: 设置->Cookie和网站权限->所有权限->Javascript->禁用 Chorme:设置-&g…

rust学习十九.1、模式匹配(match patterns)

本章节大概是书本上比较特殊一个,因为它没有什么复杂的内容,通篇主要讨论模式匹配的语法。 一、两个名词a.可反驳 - refutable 对某些可能的值进行匹配会失败的模式被称为是 可反驳的(refutable) let Some(x) = some_option_value;如果 some_option_value 的值是…

大对数电缆打线顺序

5种线缆主色:白色、红色、黑色、黄色、紫色 5种线缆配色:蓝色、橙色、绿色、棕色、灰色 25对电话电缆色谱线序表30对电话电缆色谱线序 这里要特别说明下:30对的电话电缆要注意了,30对通信电缆里有2种白色的主色,大于25对了就一定要看标识线了!!有一小把是用“白蓝"…

01-springsecurity数据库登录

01 - SpringSecurity实现数据库登录 环境: springboot 3.4.2, springsecurity 6.4.2, mybatis 3.0.4springsecurity中的UserDetails接口用于表示用户信息, 包含用户名、密码等信息。UserDetailsService接口用于加载用户信息, 里边就这一个方法 public interface UserDetailsSer…

【喜与悲】- 2025.2.22 晚

下图为《Balatro》中的一张小丑牌:【喜与悲】喜与悲可以重新触发所有打出的人头牌,是重新触发家族中的一员。但其特性也决定了其强度方差极大,有配合则强度很高,没有配合则纯浪费小丑位。但很少有小丑能与其配合,而能与其配合的小丑大多单独拎出来又不强。更多时候其几乎只…