zoukankan      html  css  js  c++  java
  • 【占位】HihoCoder 1160 : 攻城略地(并查集好题)

    攻城略地

    时间限制:2000ms
    单点时限:1000ms
    内存限制:256MB

    描述

    A、B两国间发生战争了,B国要在最短时间内对A国发动攻击。已知A国共有n个城市(城市编号1, 2, …, n),城市间有一些道路相连。每座城市的防御力为w,直接攻下该城的代价是w。若该城市的相邻城市(有道路连接)中有一个已被占领,则攻下该城市的代价为0。

    除了占领城市,B国还要摧毁A国的交通系统,因而他们需要破坏至少k条道路。由于道路损毁,攻下所有城市的代价相应会增加。假设B国可以任意选择要摧毁的道路,那么攻下所有城市的最小代价是多少?

    输入

    第一行一个整数T,表示数据组数,以下是T组数据。

    每组数据第一行包含3个整数n, m, k。

    第二行是n个整数,分别表示占领城市1, 2, …, n的代价w。

    接下来m行每行两个数i, j,表示城市i与城市j间有一条道路。

    输出

    对于每组数据输出一行,格式为"Case #X: Y"。X表示数据编号(从1开始),Y为答案。

    数据范围

    1 ≤ T ≤ 30

    k ≤ m

    0 ≤ w ≤ 108

    小数据

    1 ≤ n ≤ 1000

    0 ≤ m ≤ 5000

    大数据

    1 ≤ n ≤ 106

    0 ≤ m ≤ 106

    样例输入
    2
    4 4 2
    6 5 3 4
    1 2
    1 3
    2 3
    2 4
    4 4 4
    6 5 3 4
    1 2
    1 3
    2 3
    2 4
    
    样例输出
    Case #1: 7
    Case #2: 18

    题意:森林里面破坏k条线,形成的新的森林里面,每棵树的最小值顶点的和最小。

    开始以为的DP,发现数据太大。

  • 相关阅读:
    jsack
    生产BackPressure 的代码
    org.apache.flink.runtime.entrypoint.StandaloneSessionClusterEntrypoint
    https://www.callicoder.com/java-8-completablefuture-tutorial/
    microservices kubernetes
    flink metrics
    numRecordsIn 在哪里实现?
    flink Job提交过程
    https://jzh.12333sh.gov.cn/jzh/
    blocking
  • 原文地址:https://www.cnblogs.com/hua-dong/p/7795033.html
Copyright © 2011-2022 走看看