我们用“怨气值”(一个正整数值)来表示某两名罪犯之间的仇恨程度,
如果两名怨气值为 cc 的罪犯被关押在同一监狱,他们俩之间会发生摩擦,并造成影响力为 cc 的冲突事件。
每年年末,警察局会将本年内监狱中的所有冲突事件按影响力从大到小排成一个列表,然后上报市长那里。
市长只会去看列表中的第一个事件的影响力,
他准备将罪犯们在两座监狱内重新分配,以求产生的冲突事件影响力都较小, 问这个最小值?
扩展域并查集
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | #include <iostream> #include <algorithm> using namespace std ; const int N=1e5+6; struct T{ int x,y,z; }A[N]; int fa[N],m; int n; int find( int x){ return x==fa[x]?x:fa[x]=find(fa[x]); } void cmb( int x, int y){ int fx=find(x),fy=find(y); fa[fy]= fx; } int cmp(T &x,T &y){ return x.z>y.z; } signed main(){ cin>>n>>m; int i; for (i=1;i<=n;i++) fa[i]= i,fa[i+n]=i+n; for (i=1;i<=m;i++){cin>>A[i].x>>A[i].y>>A[i].z;} sort(A+1,A+1+m,cmp); for (i=1;i<=m;i++){ int fx = find(A[i].x) ,fy=find(A[i].y); if (fx==fy) { cout<<A[i].z<<endl; return 0;} cmb(A[i].x+n,A[i].y); cmb(A[i].y+n,A[i].x); } cout<<0<<endl; } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!