最短路径
并查集
TopCoder
修改 隐藏话题
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

努力 奋斗 补题 补题

弗洛伊德细节处理下,直接秒a

并查集做法还没想到

弗洛伊德最短路还是蛮简单的

#include <bits/stdc++.h>
#define maxn 100005
using namespace std;
char a[55][55];
int dp[55][55];
int f[55];
int n,d;
int t,maxs;int main()
{cin>>t;while(t--){maxs=-1;cin>>n>>d;for(int i=0;i<n;i++){for(int j=0;j<n;j++){cin>>a[i][j];if(a[i][j]=='Y') dp[i][j]=d;else dp[i][j]=1000000000;if(i==j) dp[i][j]=0;}}for(int k=0;k<n;k++){for(int i=0;i<n;i++){for(int j=0;j<n;j++){if(i!=j&&a[i][k]=='Y'&&a[k][j]=='Y'){dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]);a[i][j]='Y';a[j][i]='Y';//maxs=max(maxs,dp[i][j]);// cout<<i<<' '<<k<<' '<<j<<' '<<dp[i][j]<<' '<<dp[i][k]<<' '<<dp[k][j]<<endl;}}}}for(int i=0;i<n;i++){for(int j=0;j<n;j++){maxs=max(maxs,dp[i][j]);}}if(maxs<1000000000) cout<<maxs<<endl;else cout<<"-1"<<endl;}
}

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 贫富差距 (并查集+最短路)

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

  4. 1366 贫富差距(floyed)

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

  5. 51 Nod 1366 贫富差距

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

  6. 51nod-1366:贫富差距

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

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

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

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

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

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

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

最新文章

  1. is_uploaded_file函数引发的问题
  2. Mpmovieplayercontroller 黑屏
  3. 1.11 对象的销毁
  4. java源码编译为字节码的流程
  5. iOS-开发记录-UIView属性
  6. Google Guava新手教程
  7. 如何用c语言倒序输出字母,菜鸟求助-如何用指针法将一串字符按单词的倒序输出?如:i love yo...
  8. mysql innodb monitor_MySQL innodb_table_monitor 解析
  9. mybatis中使用小于号
  10. ❤️开发项目必备技能《Git用法集合》建议收藏❤️
  11. java靜態常量_Java靜態變量、靜態常量、靜態方法
  12. 微信扫码登录注册实现
  13. 项目记事【SpringMVC-1】:后台接收前端传来的JSON,并转成对象
  14. ttl低电平接大电阻_3.4 TTL门电路
  15. IP编址与子网掩码与划分
  16. MySQL调优(二)——索引最佳实践
  17. 套接字Socket编程
  18. 超级科技赋能短视频、在线阅读行业,定制安全解决方案
  19. 天猫精灵接入ESP8266+DHT11(blink)
  20. SimpleDateFormate日期字符串转换(墨雪亲测)

热门文章

  1. 无人超市信息管理系统——问题定义
  2. lyrebird(MOCK平台)美团琴鸟,windows系统环境搭建以及使用手册
  3. IPv4/IPv6协议分析 实验报告
  4. linux 查看端口波特率,linux串口波特率和传输方式设置
  5. freemarker中的substring取子串
  6. Section Header Table
  7. Linux命令:tar压缩/解压包, zip/unzip
  8. ORACLE 之 标识符无效 问题总结及解决方案
  9. 使用oracle发生标识符无效解决办法
  10. 用Python寻找知乎最美小姐姐