洛谷 P2126 Mzc家中的男家丁

题目背景

mzc与djn的…还没有众人皆知,所以我们要来宣传一下。

题目描述

mzc家很有钱(开玩笑),他家有n个男家丁,现在mzc要将她们全都聚集起来(干什么就不知道了)。现在知道mzc与男家丁们互相之间通信的时间,请算出把他们每个人叫到需要的总时间(要重复的哦)。保证能把他们每个人叫到。

输入输出格式

输入格式:

第一行有一个数n,表示有n个男家丁。第二行一个数m表示有m条通信路线。之后m行,每行三个数a[i],b[i],c[i],表示第a[i]个男家丁(或mzc)和第b[i]个男家丁(或mzc)通信需要时间(双向)。ai=0表示mzc。

输出格式:

一行,一个数sum,表示把他们每个人叫到需要的总时间。

输入输出样例

输入样例#1:

5
12
0 2 15
2 3 20
3 5 13
1 3 29
0 1 30
2 4 21
0 3 23
5 1 48
0 4 17
0 5 27
1 2 43
2 5 41

输出样例#1:

94

说明

n<=2300

m<=2300000

 1 /*
 2 明显的MST
 3 但是这个题用kruskal就是WA(百思不得其姐)
 4 所以就写了一遍prim 就过了
 5 */
 6 #include<cstdio>
 7 #include<cstring>
 8 #include<iostream>
 9 #define MAXN 10000
10 using namespace std;
11 int n,m,x,y,ans;
12 int f[2301][2301],l[MAXN];
13 bool used[MAXN];
14 inline void read(int&x) {
15     x=0;int f=1;char c=getchar();
16     while(c>‘9‘||c<‘0‘) {if(c==‘-‘) f=-1;c=getchar();}
17     while(c>=‘0‘&&c<=‘9‘) {x=(x<<1)+(x<<3)+c-48;c=getchar();}
18     x=x*f;
19 }
20 inline void prim() {
21     memset(l,127/3,sizeof l);
22     memset(used,false,sizeof used);
23     l[0]=0;
24     int min,k;
25     for(int i=0;i<=n;i++) {
26         min=1e9;
27         for(int j=0;j<=n;j++) {
28             if(l[j]<min&&!used[j]) {
29                 min=l[j];
30                 k=j;
31             }
32         }
33         used[k]=true;
34         ans+=l[k];
35         for(int j=1;j<=n;j++) {
36             if(!used[j]&&f[k][j]<l[j])
37               l[j]=f[k][j];
38         }
39     }
40     return;
41 }
42 int main() {
43     read(n);read(m);
44     for(int i=0;i<=n;i++)
45       for(int j=0;j<=n;j++)
46         f[i][j]=1e9;
47     for(int i=1;i<=m;i++) {
48         read(x);read(y);
49         read(f[x][y]);
50         f[y][x]=f[x][y];
51     }
52     prim();
53     printf("%d\n",ans);
54     return 0;
55 }

代码

时间: 2024-08-07 08:40:34

洛谷 P2126 Mzc家中的男家丁的相关文章

洛谷——P2126 Mzc家中的男家丁

P2126 Mzc家中的男家丁 题目背景 mzc与djn的…还没有众人皆知,所以我们要来宣传一下. 题目描述 mzc家很有钱(开玩笑),他家有n个男家丁,现在mzc要将她们全都聚集起来(干什么就不知道了).现在知道mzc与男家丁们互相之间通信的时间,请算出把他们每个人叫到需要的总时间(要重复的哦).保证能把他们每个人叫到. 输入输出格式 输入格式: 第一行有一个数n,表示有n个男家丁.第二行一个数m表示有m条通信路线.之后m行,每行三个数a[i],b[i],c[i],表示第a[i]个男家丁(或m

洛谷 P2299 Mzc和体委的争夺战

洛谷 P2299 Mzc和体委的争夺战 题目背景 mzc与djn第四弹. 题目描述 mzc家很有钱(开玩笑),他家有n个男家丁(做过前三弹的都知道).但如此之多的男家丁吸引来了我们的体委(矮胖小伙),他要来与mzc争夺男家丁. mzc很生气,决定与其决斗,但cat的体力确实有些不稳定,所以他需要你来帮他计算一下最短需要的时间. 输入输出格式 输入格式: 第一行有两个数n,m.n表示有n个停留站,m表示共有m条路. 之后m行,每行三个数a_i \; b_i \; c_iai?bi?ci? ,表示第

洛谷——P2299 Mzc和体委的争夺战

P2299 Mzc和体委的争夺战 题目背景 mzc与djn第四弹. 题目描述 mzc家很有钱(开玩笑),他家有n个男家丁(做过前三弹的都知道).但如此之多的男家丁吸引来了我们的体委(矮胖小伙),他要来与mzc争夺男家丁. mzc很生气,决定与其决斗,但cat的体力确实有些不稳定,所以他需要你来帮他计算一下最短需要的时间. 输入输出格式 输入格式: 第一行有两个数n,m,n表示有n个停留站,m表示共有m条路. 之后m行,每行三个数a[i],b[i],c[i],表示第a[i]个停留站到第b[i]个停

Luogu P2298 Mzc和男家丁的游戏

Mzc和男家丁的游戏 题目背景 mzc与djn的第二弹. 题目描述 mzc家很有钱(开玩笑),他家有n个男家丁(做过上一弹的都知道).他把她们召集在了一起,他们决定玩捉迷藏.现在mzc要来寻找他的男家丁,大家一起来帮忙啊! 由于男家丁数目不多,再加上mzc大大的找人[laopo]水平很好,所以一次只需要找一个男家丁. 输入输出格式 输入格式: 第一行有两个数n,m,表示有n行m列供男家丁躲藏, 之后n行m列的矩阵,‘m‘表示mzc,‘d’表示男家丁,‘#’表示不能走,‘.‘表示空地. 输出格式:

洛谷 P2764 LibreOJ 6002 最小路径覆盖问题

题目描述 «问题描述: 给定有向图G=(V,E).设P 是G 的一个简单路(顶点不相交)的集合.如果V 中每个顶点恰好在P 的一条路上,则称P是G 的一个路径覆盖.P 中路径可以从V 的任何一个顶点开始,长度也是任意的,特别地,可以为0.G 的最小路径覆盖是G 的所含路径条数最少的路径覆盖.设计一个有效算法求一个有向无环图G 的最小路径覆盖.提示:设V={1,2,.... ,n},构造网络G1=(V1,E1)如下: 每条边的容量均为1.求网络G1的( 0 x , 0 y )最大流. «编程任务:

洛谷 P1736 创意吃鱼法

题目描述 题目链接:https://www.luogu.org/problemnew/show/P1736 回到家中的猫猫把三桶鱼全部转移到了她那长方形大池子中,然后开始思考:到底要以何种方法吃鱼呢(猫猫就是这么可爱,吃鱼也要想好吃法 ^_*).她发现,把大池子视为01矩阵(0表示对应位置无鱼,1表示对应位置有鱼)有助于决定吃鱼策略. 在代表池子的01矩阵中,有很多的正方形子矩阵,如果某个正方形子矩阵的某条对角线上都有鱼,且此正方形子矩阵的其他地方无鱼,猫猫就可以从这个正方形子矩阵"对角线的一端

[洛谷P2113] 看球泡妹子

洛谷题目链接:看球泡妹子 题目背景 2014年巴西世界杯开幕了,现在满城皆是世界杯,商家们利用它大赚一笔,小明和小红也借此机会增进感情. 题目描述 本届世界杯共有N支球队,M场比赛.男球迷小明喜欢看比赛,女球迷小红喜欢看帅哥.每支球队在小明眼里的实力值为Ai,在小红眼里的帅哥数量为Bi. 每场比赛有两个球队对抗,它们的编号分别是Pi和Qi.小明认为一场比赛的精彩度等于两队实力的乘积,小红则认为是两队帅哥数量之和. 由于体力的限制,他们最多只能看K场比赛.当然,只要看比赛,两个人一定会一起看.小明

洛谷 P2709 BZOJ 3781 小B的询问

题目描述 小B有一个序列,包含N个1~K之间的整数.他一共有M个询问,每个询问给定一个区间[L..R],求Sigma(c(i)^2)的值,其中i的值从1到K,其中c(i)表示数字i在[L..R]中的重复次数.小B请你帮助他回答询问. 输入输出格式 输入格式: 第一行,三个整数N.M.K. 第二行,N个整数,表示小B的序列. 接下来的M行,每行两个整数L.R. 输出格式: M行,每行一个整数,其中第i行的整数表示第i个询问的答案. 输入输出样例 输入样例#1: 6 4 3 1 3 2 1 1 3

洛谷1231 教辅的组成

洛谷1231 教辅的组成 https://www.luogu.org/problem/show?pid=1231 题目背景 滚粗了的HansBug在收拾旧语文书,然而他发现了什么奇妙的东西. 题目描述 蒟蒻HansBug在一本语文书里面发现了一本答案,然而他却明明记得这书应该还包含一份练习题.然而出现在他眼前的书多得数不胜数,其中有书,有答案,有练习册.已知一个完整的书册均应该包含且仅包含一本书.一本练习册和一份答案,然而现在全都乱做了一团.许多书上面的字迹都已经模糊了,然而HansBug还是可