首页 > 其他分享 >P1550 [USACO08OCT] Watering Hole G

P1550 [USACO08OCT] Watering Hole G

时间:2024-03-07 14:22:41浏览次数:17  
标签:Node int Watering long P1550 build Hole

原题链接

题解

最小生成树的应用。这道题多转了一个弯,这道题其实多了一个结点(代表一个虚拟水井),每块田打井的费用可以过渡到从虚拟水井运水的费用,然后再套用最小生成树的模板即可。

code

 

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
struct Node{
    int from,to,value;
};
int father[305],n;
Node a[90005];
void build(){
    for (int i=0;i<=n;i++) father[i]=i;
}
bool cmp(Node a,Node b){
    return a.value<b.value;
}
int find(int i){
    if (father[i]!=i)
        father[i]=find(father[i]);
    return father[i];
}
int main(){
    int r=0;
    ll sum=0;
    cin>>n;
    build();
    for (int i=1;i<=n;i++){
        int x;
        cin>>x;
        a[r].from=0;
        a[r].to=i;
        a[r++].value=x;
    }
    for (int i=1;i<=n;i++)
        for (int j=1;j<=n;j++){
            int x;
            cin>>x;
            if (j<i){
                a[r].from=i;
                a[r].to=j;
                a[r++].value=x;
            }
        }
    sort(a,a+r,cmp);
    for (int i=0;i<r;i++){
        int fx=find(a[i].from),fy=find(a[i].to);
        if (fx!=fy){
            father[fx]=fy;
            sum+=(ll)a[i].value;
        }
    }
    cout<<sum<<endl;
    return 0;
}

 

标签:Node,int,Watering,long,P1550,build,Hole
From: https://www.cnblogs.com/purple123/p/18058809

相关文章

  • P1550 [USACO08OCT] Watering Hole G
    原题链接题解思维转换,想象井里的水都来自山上,并把山看成一个点,那么这道题就变成了最小生成树简证最小生成树原理:按边权排序,然后遍历,如果这条边的两个点之前每连过,那么就连上,因为这就是这两个点所在集合之间的最短路径了,不然这条边没必要加,因为已经联通了算是一种贪心?code#i......
  • Watering an Array
    我们发现每次操作二之后序列都会变成全\(0\),所以全\(0\)序列是一个非常特殊的序列,我们考虑从他开始的最大收益是多少由于我们接下来只能实施操作一,所以我们可以发现,任意一个时刻我们都不可能有两个位置满足\(a_i=i\),可以反证,假设\(a_i=i,a_j=j,j>i\),那么对于\(j\)来说,肯定被加了\(......
  • Watering an Array
    原题链接题解由于执行收获操作后所有数组清零,清零后的数组最快捷的加分方法是加一收获一,所以就是第一次加多少次然后第一次加完最多收获\(n\)分,相当于清零后执行总共\(2n\)次所以只需要判断第一次加&[0,2n-1]&次加后收获时能收获多少就行了code,注意细节#include<bits/......
  • CreateHolesInImage说明文档-对于遥感影像的空洞创建多边形矢量数据
    提取遥感影像的空洞地理处理工具箱特点:通用地理处理工具,支持任何遥感影像,包括无人机,卫星遥感,普通图片和gdb,mdb数据库等。速度快,极致效率,效率高,支持对多个文件夹下的任意多数据进行批处理使用简单,全自动话,无人工干预功能:提取空洞提取空洞和非空洞默认临时文件夹,结果文件夹默认临时......
  • Solution - Holes
    Link。暴力做是\(O(nm)\)的。怎么优化呢?I'venoslightestidea......
  • CF1917 C Watering an Array
    Link首先我们研究全是0的情况,显然的,每次操作2最多可以得到1分。那么显然的,不如直接一次操作一一次操作二,这样是最优的。然后再研究初始数组,很难用很快的方式得到应该从什么时候开始第一次操作二。不过可以注意到,第一次操作2最多可以得到n分,那么我们再\(2n+1\)天以后进行第一次......
  • magic-wormhole 公网文件传输工具
    magic-wormhole可以安全地将东西从一台计算机转移到另一台计算机。该软件包提供了一个库和一个名为wormhole的命令行工具,它使得可以从一台计算机到另一台计算机获取任意大小的文件和目录(或短文本片段)。两个端点通过使用相同的“虫洞代码”来识别:通常,发送机器生成并显示代码,然......
  • xray+bp+echole+rad
    安装证书burp安装证书开启burpsuite,如下图所示下载证书后输入cacert.der即可浏览器中上传证书,设置-->隐私和安全-->管理证书,一直下一步。xray安装证书输入.\xray.exegenca,生成证书和安装bp的证书步骤一样burpsuite+xrayproxysetting--->network--->conn......
  • [V8] Holey Arrays
    Whatisholeyarray:anarraywithhole(s)constarray=[1,2,,3]Whythisisaproblem?Shouldarray[2]tobeundefined?Yesandno..normallyitis undefined,butbeforethat,VMhasbeencheck Array.prototypetosee Array.prototype["2"]whethe......
  • 线性代数 · 矩阵 · Matlab | Cholesky 分解代码实现
    (搬运外网的代码,非原创;原网址)(其实是专业课作业,但感觉国内博客没有合适的代码实现,所以就搬运到自己博客了)背景-Cholesky分解:若A为n阶实对称正定矩阵,则存在非奇异下三角矩阵L,使得A=LL^T。是特殊的LU分解(下三角上三角分解)。若限定L的对角元素为正,则这种分解......