poj之旅——2139
2016-05-27 12:45
253 查看
题目描述:N头牛,拍了M部电影,同一部电影中的搭档们距离1,求最小度数之和
题解:floyd。
参考程序:#include<cstdio>
#include<algorithm>
#include<cstring>
#define maxn 500
using namespace std;
int d[maxn][maxn];
int x[maxn];
int main(){
int V,M;
scanf("%d %d",&V,&M);
memset(d,0x3f,sizeof(d));
for (int i=0;i<V;i++)d[i][i]=0;
while (M--){
int n;
scanf("%d",&n);
for (int i=0;i<n;i++){
scanf("%d",&x[i]);
x[i]--;
}
for (int i=0;i<n;i++){
for (int j=i+1;j<n;j++){
d[x[i]][x[j]]=d[x[j]][x[i]]=1;
}
}
}
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][k]+d[k][j],d[i][j]);
int ans=0x3f3f3f3f;
for (int i=0;i<V;i++){
int sum=0;
for (int j=0;j<V;sum+=d[i][j],j++);
ans=min(ans,sum);
}
printf("%d",100*ans/(V-1));
return 0;
}
题解:floyd。
参考程序:#include<cstdio>
#include<algorithm>
#include<cstring>
#define maxn 500
using namespace std;
int d[maxn][maxn];
int x[maxn];
int main(){
int V,M;
scanf("%d %d",&V,&M);
memset(d,0x3f,sizeof(d));
for (int i=0;i<V;i++)d[i][i]=0;
while (M--){
int n;
scanf("%d",&n);
for (int i=0;i<n;i++){
scanf("%d",&x[i]);
x[i]--;
}
for (int i=0;i<n;i++){
for (int j=i+1;j<n;j++){
d[x[i]][x[j]]=d[x[j]][x[i]]=1;
}
}
}
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][k]+d[k][j],d[i][j]);
int ans=0x3f3f3f3f;
for (int i=0;i<V;i++){
int sum=0;
for (int j=0;j<V;sum+=d[i][j],j++);
ans=min(ans,sum);
}
printf("%d",100*ans/(V-1));
return 0;
}
相关文章推荐
- 求解旋转图像的最大内接矩形
- 求解旋转图像的最大内接矩形
- Eclipse/IntelliJ IDEA添加JRebel 6.4.4以实现Tomcat热部署
- 学习笔记-synchronized
- arm-none-linux-gnueabi交叉工具链 no such file or directory
- 1052. 卖个萌 (20)
- hdu 3592(差分约束)
- 1588: [HNOI2002]营业额统计 splay 入门
- Hadoop2.7.2之集群搭建(三台)
- Leetcode no. 129
- HANA MODEL 创建schema、表,向表导入数据
- mac 下载安装tomcat 并给权限
- MySQL server has gone away 问题的解决方法
- python 正则表达式
- CentOS安装Confluence Wiki步骤
- 用Java写的简单五子棋游戏(原创五子连珠算法)
- Problems for Round
- 计算机视觉&图像处理领域重要期刊汇总
- redis之(十一)redis实现缓存的功能
- 建立一个能运行的spring-mvc程序,至少需要哪些配置以及jar包