每个世界可以和别的世界连通,也可以直接联通虚拟的已经毁灭的世界,这样变成一个最小生成树问题。

但是好像哪里不对?

有人用dp过掉的?

不太清楚怎么搞的。

其实就是最小生成树……

#include<bits/stdc++.h>
using namespace std;
typedef long long ll; inline int read() {
int x=0;
char c;
do {
c=getchar();
} while(c<'0'||c>'9');
do {
x=(x<<3)+(x<<1)+c-'0';
c=getchar();
} while(c>='0'&&c<='9');
return x;
} inline void _write(int x) {
if(x>9)
_write(x/10);
putchar(x%10+'0');
} inline void write(int x) {
_write(x);
putchar('\n');
} /* Kruskal begin */ const int MAXN=505;
const int MAXM=126005; struct Edge {
int u,v,w;
} edge[MAXM]; int tol; inline void add_edge(int u,int v,int w) {
edge[tol].u=u;
edge[tol].v=v;
edge[tol++].w=w;
} bool cmp(Edge a,Edge b) {
return a.w<b.w;
} int F[MAXN];
inline int find(int x) {
int r=F[x];
while(F[r]!=r)
r=F[r];
while(F[x]!=r) {
int t=F[x];
F[x]=r;
x=t;
}
return r;
} inline int Kruskal(int n) {
for(int i=1; i<=n; i++)
F[i]=i;
sort(edge,edge+tol,cmp);
int cnt=0;
int ans=0;
for(int i=0; i<tol; i++) {
int u=edge[i].u;
int v=edge[i].v;
int w=edge[i].w; int t1=find(u);
int t2=find(v);
if(t1!=t2) {
ans+=w;
F[t1]=t2;
cnt++;
if(cnt==n-1)
return ans;
}
}
//不连通
return -1;
} /* Kruskal end */ int main() {
#ifdef Yinku
freopen("Yinku.in","r",stdin);
#endif // Yinku
int n=read();
for(int i=1; i<=n; ++i) {
int c=read();
add_edge(n+1,i,c);
}
for(int i=1; i<=n; ++i) {
for(int j=1; j<=n; ++j) {
int c=read();
if(j>=i)
continue;
add_edge(i,j,c);
}
} write(Kruskal(n+1));
}

SCUT - 336 - 酋雷姆 - 最小生成树的更多相关文章

  1. 数据结构之 图论---最小生成树(prim + kruskal)

    图结构练习——最小生成树 Time Limit: 1000MS Memory limit: 65536K 题目描述  有n个城市,其中有些城市之间可以修建公路,修建不同的公路费用是不同的.现在我们想知 ...

  2. 世界城市 XML

    下载地址:http://www.qlcoder.com/uploads/dd01140921/147988679320159.xml <Location> <CountryRegio ...

  3. JS城市data

    CityData = { "中国": { "北京": ["东城区", "西城区", "崇文区", & ...

  4. js设计模式系列之(一)请节约你的请求-代理模式

    What’s the proxy pattern? 代理模式其实就是将违反单一性原则的类给抽离出来,尽量满足开放和封闭的原则. 相当于一个类的行为只是一种,但是你可以给这个类添加额外的行为.比如: 一 ...

  5. [bilibili]弹幕屏蔽列表

    <filters> <item enabled="true">t=定单身</item> <item enabled="true& ...

  6. 翻译Java虚拟机的结构

    英文原版:  https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html 直接谷歌翻译: Java SE规范 > Java虚拟机 ...

  7. HDUOJ----2489 Minimal Ratio Tree

    Minimal Ratio Tree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  8. Android中的数据结构

    数据结构在Android中也有着大量的运用,这里采用数据结构与源代码分析相结合,来认识Android的数据结构 线性表 线性表可分为顺序存储结构和链式存储结构 顺序存储结构-ArrayList 通过对 ...

  9. VIDENT iSmart900自动多系统扫描工具OBDII支持ABS / SRS / EPB /传输诊断DPF再生/上油复位编码电池配置

    Vident系列中有许多多功能产品,其中最好的是Vident iSmart 900.购买视频系列后,以下是用户的一些评论 乔:因为我想它很好用.该工具很容易更新.我将公制重量单位的代码放到工具中.很容 ...

随机推荐

  1. 使用qt+ros调用摄像头遇到的问题

    当使用摄像头遇到如下问题:[usb_cam-1] process has died [pid 12288, exit code 127, cmd /opt/ros/indigo/lib/usb_cam ...

  2. ASCII 在线转换器

    http://www.ab126.com/goju/1711.html 比如下发内容 <S020,*> 对应的16进制字节为 3C 2C 2A 3E https://wenku.baidu ...

  3. linux中fflush函数和printf函数 【转】

    本文转载自:http://blog.chinaunix.net/uid-30058258-id-5029847.html printf是一个行缓冲函数printf函数是标准函数,最终会调用到系统调用函 ...

  4. Contiki-Timer 概述

    Contiki有一个clock模块和一系列timer模块:timer,stimer,ctimer,etimer,和rtimer. 一.clock模块 clock模块提供一些处理系统时间的函数,还有一些 ...

  5. 纯CSS3左右滑动开关按钮

    纯CSS3特效左右滑动开关按钮是一款非常酷的CSS3 3D开关按钮,点击按钮可以左右滑动,就像开关打开闭合一样的效果. http://www.huiyi8.com/sc/10626.html

  6. JS遍历ChexkBoxList

    var cboxs = $("#cblAuth input[type=checkbox]"); ; ; i < cboxs.length; i++) { if (cboxs[ ...

  7. 【HDU2050】折线分割平面

    Position Solution 2×n^2-n+1 证明见分割问题 Code // This file is made by YJinpeng,created by XuYike's black ...

  8. php设置文件编码

    <?php @header('Content-type: text/html;charset=UTF-8'); ?>

  9. SocketSessionConfig参数设制

    Mina 是一个韩国人写的基本java NIO的一个高性能的传输框架,我们的搜索就是基本它作为一个搜索服务开放接口了.对于系统的TIME_WAIT过多,造成服务器的负载过高,这个问题我也不用多说了,这 ...

  10. listen 62

    The Hangover I'm never drinking again. And this time I mean it! Anyone who's suffered through a bad ...