题目来源: TopCoder
基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题
一个国家有N个公民,标记为0,1,2,...,N-1,每个公民有一个存款额。已知每个公民有一些朋友,同时国家有一条规定朋友间的存款额之差不能大于d。也就是说,a和b是朋友的话,a有x元的存款,b有y元,那么|x-y|<=d。给定d值与N个人的朋友关系,求这个国家最富有的人和最贫穷的人的存款相差最大的可能值是多少?即求贫富差距的最大值的下界。若这个值为无穷大,输出-1.
Input
多组测试数据,第一行一个整数T,表示测试数据数量,1<=T<=5
每组测试数据有相同的结构构成。
每组数据的第一行两个整数N,d,表示人数与朋友间存款差的最大值,其中2<=N<=50,0<=d<=1000.
接下来有一个N*N的数组A,若A[i][j]='Y'表示i与j两个人是朋友,否则A[i][j]='N'表示不是朋友。其中A[i][i]='N',且保证
A[i][j]=A[j][i].
Output
每组数据一行输出,即这个国家的贫富差距最大值的下界,如果这个值为无穷大输出-1.
Input示例
3
3 10
NYN
YNY
NYN
2 1
NN
NN
6 1000
NNYNNN
NNYNNN
YYNYNN
NNYNYY
NNNYNN
NNNYNN
Output示例
20
-1
3000

默认他自己没有钱(好残忍)。。他的朋友有d,他朋友的朋友有d+d....

然后 Floyd 求差距最大的两个人就可以了

屠龙宝刀点击就送

#include <iostream>
#include <cstring>
#include <cstdio>
#define N 55 using namespace std;
int T,n,d,ans=,f[N][N];
char ch;
inline int max(int a,int b) {return a>b?a:b;}
int main(int argc,char *argv[])
{
scanf("%d",&T);
for(int n,d;T--;)
{
ans=;
scanf("%d%d",&n,&d);
for(int i=;i<=n;++i)
for(int j=;j<=n;++j)
f[i][j]=(i!=j)*0x3f3f3f3f;
for(int i=;i<=n;++i)
for(int j=;j<=n;++j)
{
cin>>ch;
if(ch=='Y') f[i][j]=d;
}
for(int k=;k<=n;++k)
for(int i=;i<=n;++i)
for(int j=;j<=n;++j)
f[i][j]=min(f[i][j],f[i][k]+f[k][j]);
bool flag=true;
for(int i=;i<=n;++i)
for(int j=i+;j<=n;++j)
{
if(f[i][j]==0x3f3f3f3f) flag=false;
else ans=max(ans,f[i][j]);
}
!flag?puts("-1"):printf("%d\n",ans);
}
return ;
}

最新文章

  1. spring &quot; expected single matching bean but found 2&quot; 问题一例。
  2. Round() 四舍五入 js银行家算法(转)
  3. Android性能优化文章转载
  4. 【转】我应该直接学Swift还是Objective-C?
  5. 【Android开发坑系列】如何让Service尽可能存活
  6. .Net实现微信公众平台开发接口(三) 之 “信息回复”
  7. [转载]JS中如何定义全局变量
  8. oc_转_类的数组的实现和操作
  9. fedora下python3 安装tkinter和pygame
  10. How to: Hide the Ribbon in SharePoint 2010
  11. redux学习笔记
  12. [LeetCode]题解(python):028-Implement strStr()
  13. 如何通过fpmmm和zabbix来监控客户机上MariaDB数据库运行情况
  14. 201621123057 《Java程序设计》第3周学习总结
  15. 框架学习笔记之Mybatis(二)
  16. Amazon新一代云端关系数据库Aurora(上)
  17. [转]在node.js中,使用基于ORM架构的Sequelize,操作mysql数据库之增删改查
  18. spark集群的简单测试和基础命令的使用
  19. linux配置无秘钥登陆
  20. gpg签名用法

热门文章

  1. Winscp使用密钥登录
  2. MySQL 0 学习
  3. android通过Jni加载so库遇到UnsatisfiedLinkError问题!!!
  4. inventor安装失败怎样卸载安装inventor 2014?
  5. 3d Max 2010安装失败怎样卸载3dsmax?错误提示某些产品无法安装
  6. (转)AIX 用户和组管理
  7. 斗鱼连接弹幕Demo_pythonC#
  8. 二维码项目实例为二维码添加logo
  9. C# 图像快速转化成byte[]和计算像素值
  10. php数组转json对象并保留数字索引