博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[NOIp2010提高组]关押罪犯
阅读量:7261 次
发布时间:2019-06-29

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

OJ题号:洛谷1525

思路:贪心。

先将所有的人按怨气值从大到小排一下,然后依次尝试将双方分入两个不同的监狱,如果失败(即已分入相同的监狱),则输出这个怨气值。

1 #include
2 #include
3 #include
4 struct Edge { 5 int u,v,w; 6 bool operator >(const Edge &x) const { 7 return this->w>x.w; 8 } 9 };10 const int N=20001;11 class UnionFindSet {12 private:13 int anc[N<<1];14 int Find(int x) {15 return (x==anc[x])?x:(anc[x]=Find(anc[x]));16 }17 public:18 UnionFindSet(const int n) {19 for(int i=1;i<=n<<1;i++) anc[i]=i;20 }21 bool isConnected(const int x,const int y) {22 return Find(x)==Find(y);23 }24 void Union(const int x,const int y) {25 anc[Find(x)]=Find(y);26 }27 };28 int main() {29 int n,m;30 scanf("%d%d",&n,&m);31 Edge e[m];32 for(int i=0;i
());36 UnionFindSet s(n);37 for(int i=0;i

 

转载于:https://www.cnblogs.com/skylee03/p/6985911.html

你可能感兴趣的文章
【Math】证明:实对称阵属于不同特征值的的特征向量是正交的
查看>>
C++ 复合类型
查看>>
Mysql写出高质量的sql语句的几点建议
查看>>
C++中的异常安全性【转】
查看>>
[LeetCode] Flatten Binary Tree to Linked List
查看>>
HDU 5311 Sequence
查看>>
计算日期到天数转换
查看>>
Halcon学习(八)文本操作
查看>>
ECharts(中国地图)的使用 及 非空 tooltip formatter 验证
查看>>
HDU 3579 Hello Kiki 中国剩余定理(合并方程
查看>>
(转)基于Metronic的Bootstrap开发框架经验总结(5)--Bootstrap文件上传插件File Input的使用...
查看>>
专注与极简主义
查看>>
[Node] Run Any Version of a Node Tool with npx
查看>>
Python 算法(1) 快速排序
查看>>
Redis学习第五课:Redis Set类型及操作
查看>>
Spring-更多DI的知识
查看>>
Ubuntu 16.04安装WebStorm
查看>>
DICOM:docker实现DICOM服务虚拟化
查看>>
印刷喷码字符识别,数段字符识别:易拉罐底字符识别开发说明书
查看>>
MongoDB Shell 经常使用操作
查看>>