http://acm.fzu.edu.cn/problem.php?pid=2233

Problem Description

为了帮助柯南回到一米七四,阿笠博士夜以继日地研究APTX4869的解药。他得出了如下结果:

1.解药由n种原料构成;

2.对于两种不同的的原料a,b,它们之间有个影响值f(a,b);

3.需要把原料分成两个部分X,Y,每部分中至少有一种原料;

4.解药的效果由分别属于X,Y的原料之间,最小的影响值决定,即

效果=min{f(a,b)|a∈X,b∈Y)}

博士需要你帮忙求出:在所有的方案中,最大的效果值可以是多少?

 Input

多组数据(<=10),处理到EOF。

每组数据输入第一行为一个正整数n。

接下去是一个n行n列的整数矩阵,同一行的数以空格隔开。矩阵第i行j列表示第i种和第j种材料的影响值f(i,j)。给出的矩阵是对称的,即f(i,j)=f(j,i)。当i=j时,f(i,i)没有意义,矩阵该处的值为-1。

2<=n<=800。当i!=j时,0<=f(i,j)<=1000000;当i=j时,f(i,j)=-1。

 Output

每组数据输出一行,表示最大可能的效果值。

 Sample Input

3 -1 100 300 100 -1 200 300 200 -1

 Sample Output

200

 Source

福州大学第十三届程序设计竞赛

题目描述:

  给一个n*n的矩阵,(i, j)表示第 i 种材料 和 第 j 种材料的影响值,这个矩阵代表这n个物品之间的影响值。当把这n个物品分成两部分后,每部分内部材料不会相互影响,但是不同部分的材料之间会相互影响。问如何分割使得两部分材料相互之间的最小影响值最大?

解题思路:

  材料内部不会影响,那么只需要把影响值小的物品放在同一部分即可,所以用结构体保存物品之间的影响值,然后sort一下,影响值小的物品用并查集放在一个集合,当集合等于2的时候,遍历到物品分别在不同集合的影响值就是ans。

#include <cstdio>
#include <queue>
#include <stack>
#include <cmath>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;#define lson 2*root
#define rson 2*root+1
typedef long long LL;
const LL mod = 1000000007;
const LL INF= 1e9+7;
const int N = 810;struct node
{int x, y, cost;bool friend operator < (node n1, node n2){return n1.cost < n2.cost;}
}a[N*N];int f[N];int Find(int x)
{if(f[x]!=x)f[x] = Find(f[x]);return f[x];
}int main()
{int n;while(scanf("%d", &n)!=EOF){int i, j, k=0;for(i=0; i<=n; i++)f[i] = i;for(i=1; i<=n; i++)for(j=1; j<=n; j++){scanf("%d", &a[k].cost);if(i<j){a[k].x = i;a[k++].y = j;}}sort(a, a+k);int ans = INF, cnt=n;for(i=0; i<k; i++){int x = Find(a[i].x);int y = Find(a[i].y);if(x==y) continue;if(x!=y && cnt>2){f[x] = y;cnt--;}elseans = min(ans, a[i].cost);if(ans!=INF) break;}printf("%d\n", ans);}return 0;
}

转载于:https://www.cnblogs.com/YY56/p/5504163.html

(并查集)~APTX4869(fzu 2233)相关推荐

  1. 【并查集+dp】Team

    Team 时间限制: 1 Sec  内存限制: 128 MB 提交: 124  解决: 10 [提交] [状态] [命题人:admin] 题目描述 ACM-ICPC is a interesting ...

  2. HDU 3974 Assign the task(树 并查集)

    题意  公司中有n个员工  除了boss  每个员工都有自己的上司  自己下属的下属也是自己的下属  当给一个员工分配任务时  这个员工会把任务也分配到自己的所有下属   每个员工都只做最后一个被分配 ...

  3. 并查集c++代码_[Leetcode 每日精选](本周主题-并查集) 547. 朋友圈

    题目难度: 中等 原题链接 今天继续来做并查集的问题, 这道题仍然比较基础, 而且也是个比较接近现实的问题了. 大家在我的公众号"每日精选算法题"中的聊天框中回复 并查集 就能看到 ...

  4. HDU1811 Rank of Tetris 拓扑排序+并查集 OR 差分约束最短路+并查集

    题目链接 题意:就是给你一堆关系,看能不能排出个确定的顺序 做法: 1. 拓扑排序+并查集 应该很容易想到的一种思路,大于小于建立单向边.对于相等的呢,就把他们缩成一个点.就用并查集缩成一个点就行了 ...

  5. HDU 2586 How far away ? LCA ---tanjar+并查集 离线算法

    tanjar算法离线求LCA的思想主要是利用并查集的思想. 求距离的话就是d[start[i]]+end[en[i]]-2*d[lca[i]]; 首先从根节点dfs,在深度遍历的回溯的过程中不断的更新 ...

  6. POJ - 2513 Colored Sticks 欧拉通路+并查集+静态树

    一开始想用map来搞,但是感觉好复杂,然后想了一下看大佬们用trie做的,感觉十分合理就敲了一发. 一开始re,数组要开到550000 只会静态的字典树,在每个根节点看是否出现过改颜色,如果没有就把该 ...

  7. 关于 并查集(union find) 算法基本原理 以及 其 在分布式图场景的应用

    二月的最后一篇水文-想写一些有意思的东西. 文章目录 环检测在图数据结构中的应用 深度/广度优先 检测环 并查集数据结构 (Union-Find) 基本概念 初始化 合并 union 查找祖先 优化1 ...

  8. 【BZOJ1015】【JSOI2008】星球大战 并查集

    题目大意 给你一张\(n\)个点\(m\)条边的无向图,有\(q\)次操作,每次删掉一个点以及和这个点相邻的边,求最开始和每次删完点后的连通块个数. \(q\leq n\leq 400000,m\le ...

  9. 并查集 HDOJ 1232 畅通工程

    题目传送门 1 /* 2 并查集(Union-Find)裸题 3 并查集三个函数:初始化Init,寻找根节点Find,连通Union 4 考察:连通边数问题 5 */ 6 #include <c ...

  10. 1013 Battle Over Cities(并查集解法)

    关于背景的介绍见1013 Battle Over Cities(图的DFS解法) DFS就是不算特定结点后数连通子图的总数,再减一.我想着那么并查集就是数不算特定节点后,集合元素(根)的个数.但是我弄 ...

最新文章

  1. 2021-2027年中国涂装行业市场需求预测与投资战略规划分析报告
  2. abstract类和接口interface的联系和区别
  3. 特征值与特征向量(一)
  4. leetcode 刷题142 143
  5. 负载测试工具Ripplet
  6. BugkuCTF-MISC题一切有为法如梦幻泡影
  7. 为什么main方法是public static void?
  8. c++求n的几次方_2.七年级数学:怎么求mn+mn的值?完全平方公式,用配方法
  9. 预编译头文件(precompiled header)说明
  10. cookie Web Storage API
  11. json html双引号,当gethtml方法返回json时,json中的字符串如果存在双引号,会破坏json的格式, 如:quot;...
  12. go - 构造复杂json串
  13. 使用SecretScanner发现容器镜像和文件系统中的敏感数据
  14. 数商云制药医药供应链erp管理系统解决方案
  15. 扩展名为bat的文件的创建
  16. Windows返回桌面快捷键
  17. Cocos Creator之打包设置横竖屏
  18. Anchor Based和Anchor Free的相爱相杀与ATSS的诞生
  19. 程序员35岁危机是一个善意的谎言,保持危机感但不用惊恐
  20. 关于ARM指令的英文全称(方便记忆|巧记汇编指令)

热门文章

  1. 六、Oracle学习笔记:字符串函数
  2. Linux chapter 7
  3. 抄答案就是了,两套详细的设计方案,解决头疼的支付掉单问题
  4. 1.5.PHP7.1 狐教程-(PHP开发工具 PHPStorm 配置)
  5. Eclipse、STS 常用设置、操作 与 常用快捷键
  6. python源代码文件_Python代码编译与反编译
  7. 幂次方计算_收藏!机考计算器用法汇总,算题速度提高几倍
  8. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_6-2.申请微信支付介绍和不同场景的支付方式...
  9. 阶段3 2.Spring_01.Spring框架简介_05.spring的优势
  10. Python中通过Image的open之后,去show结果打不开bmp图片,无法正常显示图片