POJ 2139
2015-10-28 09:35
155 查看
POJ 2139
题目大意:
奶牛拍电影,一个电影里参演的奶牛距离为1,若A,B一起,B,C一起,认为A,C距离为2,奶牛们都会联系起来,求所有奶牛里最短的平均路程,*100.
题目大意:
奶牛拍电影,一个电影里参演的奶牛距离为1,若A,B一起,B,C一起,认为A,C距离为2,奶牛们都会联系起来,求所有奶牛里最短的平均路程,*100.
#include<iostream> #include <iomanip> #include<algorithm> #include<cstdio> using namespace std; const int MAX_V=300+16; int d[MAX_V][MAX_V]; int V; int x[MAX_V]; // 求任意两点间距离的最小值 void warshall_floyd() { for(int k=0;k<V;k++) { for(int i=0;i<V;i++) { for(int j=0;j<V;j++) { d[i][j]=min(d[i][j],d[i][k]+d[k][j]); } } } } int main() { int M; cin>>V>>M; memset(d, 0x3f3f3f, sizeof(d)); //warshall_floyd()要注意d[i][i]为0 for(int i=0;i<V;i++) { d[i][i]=0; } while(M--) { int n; cin>>n; for(int i=0;i<n;i++) { cin>>x[i]; --x[i]; } //一部电影里的奶牛距离为1 for(int i=0;i<n;i++) { for(int j=i+1;j<n;j++) { d[x[i]][x[j]]=1; d[x[j]][x[i]]=1; } } } warshall_floyd(); int ans=99999999; for(int i=0;i<V;i++) { int sum=0; //求每个奶牛的最短路径 for(int j=0;j<V;j++) { sum+=d[i][j]; } ans=min(ans,sum); } printf("%d\n",ans*100/(V-1)); return 0; }
相关文章推荐
- intellij Idea快捷键
- Ogre动画加载之节点动画、mesh动画及骨骼动画加载方法
- Spring -- 如何在spring中读取properties配置文件里面的信息
- 用enum类型数据解决switch case选择字符串的问题
- JavaScript如何调试有哪些建议和技巧附五款有用的调试工具
- js进行页面传值
- 伸展树(splay)
- InstallShield错误解决方案
- mysql 连接url中useUnicode=true&characterEncoding=UTF-8 的作用
- Android的TextView/EditText使用CharacterStyle&SpannableString来处理图片显示、字体样式、超链接等
- LeetCode H-Index II
- 体验为王 2015年10月在线视频网站性能评测
- Fragment的checkStateLoss IllegalStateException: Can not perform this action after onSaveInstanceStat
- 记录个小问题:解决SSH中的Host key verification failed
- window.open() 父子页面的传参&传值问题
- 摇一摇 怎么实现
- Android的TextView使用Html来处理图片显示、字体样式、超链接等
- 线段树练习之——分块解法
- Material Design - Touch feedback , Reveal effect
- 认识Jquery easyui 使用Easyui-layout 布局