题目描述 Description

经历了千辛万苦,小J找到了N块矿石。这些矿石都有毒性,但只要将两块矿石放在一起,再分开即可解毒。但任一两块矿石都可以互相吸引。为了降低吸引力,小J将他们放入一个直径仅能容下一块矿石,且足够高的木桶中并借此完成消毒。

小J一次可以:

  1. 将任意一块未消毒矿石放入桶中。

2.  取出桶顶的一块矿石消毒,花费的体力值为桶顶和桶中第二个矿石之间的吸引力。若不是所有矿石都消过毒或都未消过毒,则桶不能为空。

小J想知道最少花费多少体力才可以获得所有矿石。

输入描述 Input Description

第一行,n

第二行,每行n个数,第i块矿石与第j块矿石的吸引力Cij

输出描述 Output Description

一行,最小体力花费

样例输入 Sample Input

3

0 4 2

4 0 3

2 3 0

样例输出 Sample Output

5

数据范围及提示 Data Size & Hint

对于30%的数据,N<=15

对于100%的数据,N<=500


emm...
其实要求每个点都有两边,价值和最小,

不就是最小生成树嘛...


#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int n;
struct edge{
int x, y, val;
friend bool operator < (edge a, edge b)
{
return a.val < b.val;
}
}ed[];
int cnt;
inline void add(int x, int y, int z)
{
ed[++cnt] = (edge){x, y, z};
}
int fa[];
int Find(int x){return x==fa[x]?x:fa[x]=Find(fa[x]);}
long long ans;
int main()
{
scanf("%d", &n);
for (int i = ; i <= n ; i ++)
{
for (int j = ; j <= n ; j ++)
{
int x;
scanf("%d", &x);
if (i == j) continue;
add(i, j, x);
}
}
sort (ed + , ed + + cnt);
for (int i = ; i <= n ; i ++) fa[i] = i;
int k = ;
for (int i = ; i <= cnt ; i ++)
{
int x = ed[i].x, y = ed[i].y;
int fx = Find(x), fy = Find(y);
if (fx == fy) continue;
fa[fx] = fy;
ans += ed[i].val;
k ++;
if (k == n - ) break;
}
cout << ans << endl;
return ;
}

[CODEVS3366] 矿石的更多相关文章

  1. [Luogu P4143] 采集矿石 [2018HN省队集训D5T3] 望乡台platform

    [Luogu P4143] 采集矿石 [2018HN省队集训D5T3] 望乡台platform 题意 给定一个小写字母构成的字符串, 每个字符有一个非负权值. 输出所有满足权值和等于这个子串在所有本质 ...

  2. 【刷题】洛谷 P4143 采集矿石

    题目背景 ZRQ成功从坍塌的洞穴中逃了出来.终于,他看到了要研究的矿石.他想挑一些带回去完成任务. 题目来源:Zhang_RQ哦对了ZRQ就他,嗯 题目描述 ZRQ发现这里有 \(N\) 块排成一排的 ...

  3. [计蒜客] 矿石采集【记搜、Tarjan缩点+期望Dp】

    Online Judge:计蒜客信息学3月提高组模拟赛 Label:记搜,TarJan缩点,树状数组,期望Dp 题解 整个题目由毫无关联的两个问题组合成: part1 问题:对于每个询问的起点终点,求 ...

  4. 洛谷 P4143 采集矿石 后缀数组

    题目背景 ZRQ 成功从坍塌的洞穴中逃了出来.终于,他看到了要研究的矿石.他想挑一些带回去完成任务. 题目来源:Zhang_RQ哦对了 \(ZRQ\) 就他,嗯 题目描述 ZRQ 发现这里有 \(N\ ...

  5. ZR#330. 【18 提高 3】矿石(容斥)

    题意 题目链接 Sol 挺显然的,首先对每个矿排序 那么答案就是$2^x - 2^y$ $x$表示能覆盖到它的区间,$y$表示的是能覆盖到它且覆盖到上一个的区间 第一个可以差分维护 第二个直接vect ...

  6. [Luogu] U18590 采集矿石

    https://www.luogu.org/problemnew/show/U18590 后缀数组??? 不会 #include <iostream> #include <cstdi ...

  7. 题解 洛谷 P4143 【采集矿石】

    对于一个固定的左端点,右端点向右移动时,其子串权值和不断增大,字典序降序排名不断减小,因此对于一个左端点,最多存在一个右端点使其满足条件. 所以可以枚举左端点,然后二分右端点的位置,权值和通过前缀和来 ...

  8. 4年,如何从草根成长成为CTO-(第一篇)

    茫然的求索 那一年,刚好经济危机,毕业了.经过了很长时间的“网上海投”而杳无音讯之后,终于发现“经济危机真的和自己有点关系了” ,曾经以为经济危机和自己巴刚子打不着. 拿着简历,开始到处去跑招聘市场, ...

  9. Instantaneous Transference--POJ3592Tarjan缩点+搜索

    Instantaneous Transference Time Limit: 5000MS Memory Limit: 65536K Description It was long ago when ...

随机推荐

  1. jar包部署到window系统服务器的办法

    1:把jar包和lib(如果打包出现有lib目录)放在同级目录 2:windows服务器安装jdk等 3:通过bat批处理命令或者 cmd命令启动jar包,其中之一就可以 3.1:bat命令如下: @ ...

  2. Escape (BFS + 模拟)

    Problem Description The students of the HEU are maneuvering for their military training. The red arm ...

  3. Admiral(双向BFS + Hash)

    Problem Description Suppose that you are an admiral of a famous naval troop. Our naval forces have g ...

  4. ACM团队周赛题解(1)

    这次周赛题目拉了CF315和CF349两套题. 因为我代码模板较长,便只放出关键代码部分 #define ll long long #define MMT(s,a) memset(s, a, size ...

  5. 小白专场-是否同一颗二叉搜索树-python语言实现

    目录 一.二叉搜索树的相同判断 二.问题引入 三.举例分析 四.方法探讨 4.1 中序遍历 4.2 层序遍历 4.3 先序遍历 4.4 后序遍历 五.总结 六.代码实现 一.二叉搜索树的相同判断 二叉 ...

  6. jmeter 查看结果树数据分析 优化

    1.点击查看结果树,配置 2.筛选功能项

  7. Scala 系列(十三)—— 隐式转换和隐式参数

    一.隐式转换 1.1 使用隐式转换 隐式转换指的是以implicit关键字声明带有单个参数的转换函数,它将值从一种类型转换为另一种类型,以便使用之前类型所没有的功能.示例如下: // 普通人 clas ...

  8. ReactNative之Redux详解

    用redux有一段时间了,感觉还是有必要把其相关的知识点系统的总结一下的,毕竟好记性不如烂笔头.上篇博客更新了关于<ES6中的迭代器.Generator函数以及Generator函数的异步操作& ...

  9. .net core 发布单个exe 文件, 并优化缩小大小

    最新版的.net core 3.0 可以通过命令行发布为exe文件, 操作步骤如下: 在项目目录下打开控制台: 输入命令: dotnet publish -r win-x64 -c Release - ...

  10. App的功能测试要点

    一 UI测试 (1)界面(菜单.窗口.按钮)布局.风格是否满足客户要求,文字和图片组合是否美观,操作是否友好. (2)清晰.简洁.美观.响应.一致 (3)图形测试.内容测试.导航测试    (图形包括 ...