1366 贫富差距
题目来源: 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

求出任意两点最短路中最长的那一条就行了,若存在两点间的最短路为∞,答案就为-1

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
char str[55][55];
int road[55][55], ans;
int main(void)
{int T, n, m, i, j, k;scanf("%d", &T);while(T--){scanf("%d%d", &n, &m);memset(road, 1, sizeof(road));for(i=1;i<=n;i++){for(j=1;j<=n;j++){scanf(" %c", &str[i][j]);if(str[i][j]=='Y')road[i][j] = 1;}}for(k=1;k<=n;k++){for(i=1;i<=n;i++){for(j=1;j<=n;j++)road[i][j] = min(road[i][j], road[i][k]+road[k][j]);}}ans = 1;for(i=1;i<=n;i++){for(j=1;j<=n;j++){if(i!=j)ans = max(ans, road[i][j]);}}if(ans<=10000)printf("%d\n", ans*m);elseprintf("-1\n");}return 0;
}

51nod-1366:贫富差距相关推荐

  1. 51Nod 1366 贫富差距

    1366 贫富差距  题目来源: TopCoder 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 一个国家有N个公民,标记为0,1,2,...,N-1,每个公民有 ...

  2. 51Nod 1366 贫富差距 ( 并查集+Floyed

    1366 贫富差距 题目描述 一个国家有N个公民,标记为0,1,2,-,N-1,每个公民有一个存款额.已知每个公民有一些朋友,同时国家有一条规定朋友间的存款额之差不能大于d.也就是说,a和b是朋友的话 ...

  3. 51nod 1366 贫富差距 弗洛伊德

    最短路径 并查集 TopCoder 修改 隐藏话题 1366 贫富差距 题目来源: TopCoder 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 ...

  4. 51nod 1366 贫富差距 (并查集+最短路)

    一个国家有N个公民,标记为0,1,2,...,N-1,每个公民有一个存款额.已知每个公民有一些朋友,同时国家有一条规定朋友间的存款额之差不能大于d.也就是说,a和b是朋友的话,a有x元的存款,b有y元 ...

  5. 1366 贫富差距(floyed)

    1366 贫富差距 题目来源: TopCoder 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 一个国家有N个公民,标记为0,1,2,...,N-1,每个公民有一 ...

  6. 51 Nod 1366 贫富差距

                               1366 贫富差距 一个国家有N个公民,标记为0,1,2,...,N-1,每个公民有一个存款额.已知每个公民有一些朋友,同时国家有一条规定朋友间的 ...

  7. 库克工资是普通员工201倍,纳德拉年薪三个亿,大公司贫富差距榜出炉

    郭一璞 发自 凹非寺 量子位 报道 | 公众号 QbitAI 一年一度的美国大公司"贫富差距"排行榜又来了. 根据美国证券交易委员会(SEC)2015年的规定,上市公司必须披露CE ...

  8. 你会因为贫富差距远离曾经的好友吗?

    因为贫富差距,朋友之间渐行渐远,这个绝对不是个别现象,而是普遍现象. 先说一个真实的例子 我们高中的时候有几个同学玩得很好,即使上了大学也保持良好的联系,放假也会经常聚会.那时候只要春节回老家,不管有 ...

  9. 贫富差距,不是收入分化,而是资产分化

    贫富差距,不是收入分化,而是资产分化,有钱人根本就不靠工资,而是靠系统和资产赚钱的. 系统,指的是公司股权,商业模式,比如做个公司赚几百上千万,解决某个问题做做生意,收入完全可以吊打大部分白领,当然这 ...

最新文章

  1. 深度学习两大基础Tricks:Dropout和BN详解
  2. 「工科神器」MATLAB风波未平,「化学神器」ChemOffice再爆清查国内盗版行为
  3. 整数的无符号编码和有符号编码
  4. 花之吻自己查错误订单的一个小脚本
  5. 算法(69)----最长和谐子序列
  6. SDK 和 API
  7. 程序员python工作_程序员如何在工作中进步
  8. linux内核镜像sd卡,【原创】Linux QT镜像的制作--制作SD卡启动盘
  9. java 枚举类型知识点记录
  10. php笔记之-laravel-Redis hash
  11. 机器学习中遇到的问题
  12. c++实现Matlab矩阵Matrix类(实矩阵Matrix、复矩阵CMatrix)
  13. Python获取网络中的存活主机以及哪些主机是Linux
  14. vue中的watch监听
  15. qss之QRadioButton
  16. TabLyout结合ViewPage
  17. python判断素数程序_python判断素数程序_Python程序检查素数
  18. nat64 dns64 linux 内核支持,搭建NAT64/DNS6实现IPv4/v6转换
  19. 使用 java.lang.Math 类完成编程
  20. 爬去东方财富网龙虎榜(wechat:15353378609)

热门文章

  1. python代码写好了怎么运行-python的代码写在哪里,怎么样运行python代码
  2. python导入模块中的对象_详解Python项目开发时自定义模块中对象的导入和使用
  3. JavaScript错误与异常
  4. 【动态规划笔记】区间dp:合并果子
  5. DirectShow Filter 开发典型例子分析 ——字幕叠加 (FilterTitleOverlay)1
  6. mybatis开启log_mybatis使用spring-druid数据源连接池配置log4j打印sql语句以及开启监控平台...
  7. 表面粗糙度的基本评定参数是_表面粗糙度100个常见问题
  8. jQuery 学习-DOM篇(一):jQuery 创建元素并添加属性
  9. java多线程按行读取文件_“java”中多线程按行读取txt且每个线程读的内容不能重复,这么求“demo”?...
  10. Navicat 连接MySQL 8.0.11 出现2059错误