人活着系列之芳姐和芳姐的猪

Time Limit: 1000MS Memory limit: 65536K

题目描写叙述

芳姐特别喜欢猪,所以,她特意养了m个猪圈,顺便在k条无向边,每条边有都有起点v,距离.....芳姐和猪们约定好。每天去一个固定猪圈去吃饭。芳姐为了不累着她可爱的猪们,想知道全部的猪吃饭走的最短路程是多少?

输入

 第一行,猪的个数m(k(1<=k<=1200).(猪的编号为1..m)

N+1行N头猪所在的猪圈号第n+k+1行:u、1<=w<=255)

m个猪圈连通。

输出

 

演示样例输入

3 4 5
2
3
4
1 2 1
1 3 5
2 3 7
2 4 3
3 4 5

演示样例输出

8

提示


開始以为,崔老师坑我们,不是最短路,就打成了最小生成树。kurskal

感觉思路没错,没有的猪圈。就不加边。╮(╯▽╰)╭,挂了20遍。没过

错误代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
const int INF = 65535;
using namespace std;
struct node{
int u,v,w;
}edge[1300];
int n,m,father[610],l;
bool vis[610];
int cmp(const void *a ,const void *b)
{
struct node *X,*Y;
X = (struct node *)a;
Y = (struct node *)b;
return X->w - Y->w;
}
void init()
{
l = 0;
for(int i = 0;i<=m;i++)
father[i] = i;
}
int findx(int r)
{
int i ,j;
while(r!=father[r])
{
r= father[r];
}
i = r;
while(father[i]!=r)
{
j = father[i];
father[i] = r;
i = j;
}
return r;
}
void kruskal()
{
int ans = 0;
for(int i = 0;i<=l;i++)
{
int uu = findx(edge[i].u);
int vv = findx(edge[i].v);
// printf("%d->%d = %d\n",edge[i].u,edge[i].v,edge[i].w);
if(uu!=vv)
{
father[uu] = vv;
ans += edge[i].w;
}
}
printf("%d\n",ans);
}
int main()
{
int mm, a , b,c,k;
scanf("%d%d%d",&n,&m,&k);
init();
for(int i = 1;i<=m;i++)
vis[i] = 1; for(int i = 0;i<n;i++)
{
scanf("%d",&mm);
vis[mm] = 0;
}
for(int i = 0;i<k;i++)
{
scanf("%d%d%d",&a,&b,&c);
if(vis[a]==1 || vis[b]==1) continue; edge[l].u = a; edge[l].v = b; edge[l++].w = c;
}
qsort(edge,l,sizeof(edge[0]),cmp);
kruskal();
return 0;
}

AC


后台数据比較水

#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cstring>
#define INF 0x3f3f3f3f
using namespace std; int n,m,KKK;
int ma[651][651],a[400]; void init()
{
int i,j;
for(i=1; i<=m;i++)
{
for( j=1; j<=m; j++)
{
if(i==j) ma[i][j] = 0;
else ma[i][j]=INF;
}
}
}
int main()
{ int u,v,w,i,j,k;
scanf("%d%d%d",&n,&m,&KKK);
//puts("1");
init(); for(i=1; i<=n; i++)
{
scanf("%d",&a[i]);
} for(i = 0;i<KKK;i++)
{
scanf("%d%d%d",&u,&v,&w);
ma[u][v]=ma[v][u]=w;
} for( k=1; k<=m; k++)
{
for( i=1; i<=m; i++)
{
for( j=1; j<=m; j++)
{
if(ma[i][j] > ma[i][k] + ma[k][j])
{
ma[i][j] = ma[i][k] + ma[k][j];
}
}
}
} int sum , mi = INF;
for(i=1; i<=m; i++)
{
sum=0;
for(j=1; j<=n; j++)
{
sum += ma[i][a[j]];
}
if(sum < mi)
mi = sum;
} printf("%d\n",mi);
return 0;
} /*****************************

版权声明:本文博客原创文章。博客,未经同意,不得转载。

人活着系列Tanya和蔡健雅猪 (floyd)的更多相关文章

  1. 人活着系列之平方数 分类: sdutOJ 2015-06-22 17:10 7人阅读 评论(0) 收藏

    人活着系列之平方数 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 偶然和必然?命运与意志?生与死?理性与情感?价值与非价值?在&quo ...

  2. SDUT OJ 之 人活着系列之寻找最完美的人生

    人活着系列之寻找最完美的人生 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 也许,人活着就是要尝试人世间的酸甜苦辣,喜怒哀乐,经 ...

  3. 人活着系列之芳姐和芳姐的猪(Floyd)

    http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2929 这个题一方面数据水,另一方面就是思维水, ...

  4. sdut 2934 人活着系列之平方数 (完全背包变形)

    题目链接 分析:完全背包的变形,每一层的d[]数组代表这一层的这个数新加入以后所构成的val的种类. #include <iostream> #include <cstdio> ...

  5. 小P的故事——神奇的换零钱&&人活着系列之平方数

    http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2777&cid=1219 这题不会,看了别人的代码 #include <iostre ...

  6. 人活着系列之开会(Floy)

    http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2930 题意:所有点到Z点的最短距离.因为岛名由 ...

  7. 人活系列Streetlights (秩)

    人活着系列之Streetlights Time Limit: 1000MS Memory limit: 65536K 题目描写叙述 人活着假设是为了家庭,亲情----能够说是在这个世界上最温暖人心的, ...

  8. SDUT 2933-人活着系列Streetlights(最小生成树Kruskal+和理查德设置来实现)

    人活着系列之Streetlights Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描写叙述 人活着假设是为了家庭,亲情----能够说 ...

  9. HDU-4511 小明系列故事——女友的考验 floyd变种-标号递增最短路

    题意:给定N个点,现在要求出从1号点到N号点的最短路.题目给的限制条件就是对于某条路径是不能够走的,但是可以选择某段路径走,另外就是所走的路径的标号必须是递增的. 分析:由于给定的是一些列的坐标点,这 ...

随机推荐

  1. Spring Tool Suite(STS)加速

    Java开发首选技术是Spring,使用Spring技术首选的开发工具是STS,STS有许多加速spring开发的提示和快捷方式,并将spring的最新技术通过STS快速简单的传递给用户. 但是STS ...

  2. [AngularJS] Directive for top scroll bar

    angular.directive('dblScroll', dblScroll) dblSroll.$inject = [ '$timeout' ]; function dblScroll($tim ...

  3. Android String与十六进制数互转

    /** * 字符串转换成十六进制字符串 * @param String str 待转换的ASCII字符串 * @return String 每个Byte之间空格分隔,如: [61 6C 6B] */ ...

  4. Gcc 的使用

    Gcc 的使用前言  编译器在编译过程中,先将程序代码编译成 object 文件,然後再和程序库联结,成为可执行文件.因此一个编译器须提供的参数主要有几类:  1.指定编译器编出的object 文件或 ...

  5. css选择器指定元素中第几个子元素

    tr td:nth-child(2){ background-color:gray; } 就是tr当中的td的第二个td的属性 tr:nth-child(2n+0){ background-color ...

  6. 【33.33%】【codeforces 552B】Vanya and Books

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  7. 适合前端开发的 Chrome 扩展有哪些?(十款)

    适合前端开发的 Chrome 扩展有哪些?(十款) 一.总结 好的插件或者框架对程序员的意义重大. 二.适合前端开发的 Chrome 扩展有哪些?(十款) 掘金是一个高质量的技术社区,从 ECMASc ...

  8. html5中的dom中的各种节点的层次关系是怎样的

    html5中的dom中的各种节点的层次关系是怎样的 一.总结 一句话总结:Node节点是所有节点的基类,所以都继承它的方法 1.dom提供在js中动态修改html标签的作用 比如增加修改标签等,并且是 ...

  9. js进阶 9-9 html控件如何实现回车键切换焦点

    js进阶 9-9 html控件如何实现回车键切换焦点 一.总结 一句话总结:在onkeydown事件中判断event对象的键位码,然后focus事件. 二.js进阶 9-9 html控件如何实现回车键 ...

  10. 使用Delegate在两个ViewController之间传值

    以下就实现了使用Delegate在两个ViewController之间传值,这种场景一般应用在进入子界面输入信息,完后要把输入的信息回传给前一个界面的情况,比如修改用户个人信息,点击修改进入修改界面, ...