L2-044 大众情人

分数 25

作者 陈越

单位 浙江大学

人与人之间总有一点距离感。我们假定两个人之间的亲密程度跟他们之间的距离感成反比,并且距离感是单向的。例如小蓝对小红患了单相思,从小蓝的眼中看去,他和小红之间的距离为 1,只差一层窗户纸;但在小红的眼里,她和小蓝之间的距离为 108000,差了十万八千里…… 另外,我们进一步假定,距离感在认识的人之间是可传递的。例如小绿觉得自己跟小蓝之间的距离为 2,则即使小绿并不直接认识小红,我们也默认小绿早晚会认识小红,并且因为跟小蓝很亲近的关系,小绿会觉得自己跟小红之间的距离为 1+2=3。当然这带来一个问题,如果小绿本来也认识小红,或者他通过其他人也能认识小红,但通过不同渠道推导出来的距离感不一样,该怎么算呢?我们在这里做个简单定义,就将小绿对小红的距离感定义为所有推导出来的距离感的最小值。

一个人的异性缘不是由最喜欢他/她的那个异性决定的,而是由对他/她最无感的那个异性决定的。我们记一个人 i 在一个异性 j 眼中的距离感为 Dij​;将 i 的“异性缘”定义为 1/maxj∈S(i)​{Dij​},其中 S(i) 是相对于 i 的所有异性的集合。那么“大众情人”就是异性缘最好(值最大)的那个人。

本题就请你从给定的一批人与人之间的距离感中分别找出两个性别中的“大众情人”。

输入格式:

输入在第一行中给出一个正整数 N(≤500),为总人数。于是我们默认所有人从 1 到 N 编号。

随后 N 行,第 i 行描述了编号为 i 的人与其他人的关系,格式为:

性别 K 朋友1:距离1 朋友2:距离2 …… 朋友K:距离K

其中 性别 是这个人的性别,F 表示女性,M 表示男性;K(<N 的非负整数)为这个人直接认识的朋友数;随后给出的是这 K 个朋友的编号、以及这个人对该朋友的距离感。距离感是不超过 106 的正整数。

题目保证给出的关系中一定两种性别的人都有,不会出现重复给出的关系,并且每个人的朋友中都不包含自己。

输出格式:

第一行给出自身为女性的“大众情人”的编号,第二行给出自身为男性的“大众情人”的编号。如果存在并列,则按编号递增的顺序输出所有。数字间以一个空格分隔,行首尾不得有多余空格。

输入样例:

6
F 1 4:1
F 2 1:3 4:10
F 2 4:2 2:2
M 2 5:1 3:2
M 2 2:2 6:2
M 2 3:1 2:5

输出样例:

2 3
4

人与人之间的关系就是有向图,根据题意能用弗洛伊德求出所有的关系。最后让我们找离异性 最远距离 最小的那些人

#include<bits/stdc++.h>
using namespace std;
#define inf 0x3f3f3f3f
int edg[600][600];
int main()
{int n,i,k,j,t1[600]={0},t2[600]={0},a,b,ans1[600],ans2[600],p1=0,p2=0,minn1=inf,minn2=inf;char c,sex[600];cin>>n;memset(edg,inf,sizeof(edg));for(i=1;i<=n;i++){cin>>c;sex[i]=c;//记录性别 cin>>k;for(j=0;j<k;j++){scanf("%d:%d",&a,&b);edg[i][a]=b;}}for(k=1;k<=n;k++)for(i=1;i<=n;i++)for(j=1;j<=n;j++){if(k!=i&&k!=j&&i!=j)edg[i][j]=min(edg[i][j],edg[i][k]+edg[k][j]);}//以上为用弗洛伊德来建图 for(i=1;i<=n;i++){if(sex[i]=='F'){int maxx1=-1;for(j=1;j<=n;j++){if(sex[j]=='M'){maxx1=max(maxx1,edg[j][i]);//寻找最远的异性,细节是j->i,因为题上说"我们记一个人i在一个异性 j 眼中的距离感为 Dij"t1[i]=maxx1;}}if(maxx1<=minn1){ans1[p1++]=i;minn1=maxx1;}}//cout<<1<<'\n';if(sex[i]=='M'){int maxx2=-1;for(j=1;j<=n;j++){if(sex[j]=='F'){maxx2=max(maxx2,edg[j][i]);t2[i]=maxx2;}}if(maxx2<=minn2){ans2[p2++]=i;minn2=maxx2;}}}int f=0;for(i=0;i<p1;i++){if(f==0&&t1[ans1[i]]==minn1){cout<<ans1[i];f=1;}else if(f==1&&t1[ans1[i]]==minn1)cout<<' '<<ans1[i];}f=0;cout<<'\n';for(i=0;i<p2;i++){if(f==0&&t2[ans2[i]]==minn2){cout<<ans2[i];f=1;}else if(f==1&&t2[ans2[i]]==minn2)cout<<' '<<ans2[i];}
}

2022天梯赛lv2 大众情人相关推荐

  1. 记2022天梯赛正式赛

    补题链接:PTA | 程序设计类实验辅助教学平台 目录 L1-1 今天我要赢 (5 分) L1-2 种钻石 (5 分) L1-3 谁能进图书馆 (10 分) L1-4 拯救外星人 (10 分) L1- ...

  2. 2022天梯赛个人代码留存

    L1-1 今天我要赢 (5 分) 2018 年我们曾经出过一题,是输出"2018 我们要赢".今年是 2022 年,你要输出的句子变成了"我要赢!就在今天!"然 ...

  3. 2022天梯赛正式赛(附天梯赛题目链接)

    文章目录 L1-1 今天我要赢 (5 分) L1-2 种钻石 (5 分) L1-3 谁能进图书馆 (10 分) L1-4 拯救外星人 (10 分) L1-5 试试手气 (15 分) L1-6 斯德哥尔 ...

  4. 【GPLT】【2022天梯赛真题题解】

    L1-1 今天我要赢(5分) 题目描述 2018 年我们曾经出过一题,是输出"2018 我们要赢".今年是 2022 年,你要输出的句子变成了"我要赢!就在今天!&quo ...

  5. 2018年天梯赛LV2题目汇总小结

    Ⅰ.L2-1 分而治之---邻接表 分而治之,各个击破是兵家常用的策略之一.在战争中,我们希望首先攻下敌方的部分城市,使其剩余的城市变成孤立无援,然后再分头各个击破.为此参谋部提供了若干打击方案.本题 ...

  6. 2022天梯赛 L1-081 今天我要赢

    2018 年我们曾经出过一题,是输出"2018 我们要赢".今年是 2022 年,你要输出的句子变成了"我要赢!就在今天!"然后以比赛当天的日期落款. 输入格式 ...

  7. 2022天梯赛 L1-086 斯德哥尔摩火车上的题

    上图是新浪微博上的一则趣闻,是瑞典斯德哥尔摩火车上的一道题,看上去是段伪代码: s = '' a = '1112031584' for (i = 1; i < length(a); i++) { ...

  8. 【2022天梯赛】L1-8 静静的推荐 L2-1 插松枝 L2-2 老板的作息表

    L1-8 静静的推荐(AC版) 起初,通过k次筛选,来依次访问n个学生,只能得14分,最后两个样例超时. 参考大佬思路,代码如下. #include <bits/stdc++.h> #de ...

  9. 2022/4/18 天梯赛刷题记录2022天梯赛热身赛

    L1 1~8 语法到模拟 L2-1 栈.map L2-2 set.排序 L2-4 模拟 L3-2 背包 L2-3 写不出来,二叉树这方面是真的薄弱 周日热身赛的时候因为一直内部错误直接润了,今天重新做 ...

最新文章

  1. SLAM综述(1)-Lidar SLAM
  2. Action 相关组件
  3. boost::describe模块实现枚举转字符串的测试程序
  4. JAXWS和JAXRS(REST)开发WebService区别
  5. 面试官:你连HTTP请求Post和Get都不了解?
  6. java模拟登陆_java-模拟登陆练习(示例代码)
  7. 前端学习(3284):立即执行函数三
  8. 收藏 | 佐治亚理工出品交互式线代教科书!
  9. Linux 命令(115)—— rev 命令
  10. pytorch---之随机种子初始化
  11. 7-1 字符串的冒泡排序 (20 分)
  12. Noip2010提高组总结
  13. Java生成CSV文件的方法
  14. Linux搭建Zabbix监控服务
  15. Java中除法运算符简介说明
  16. 一天一个西红柿,健康多多
  17. oracle通过正则验证香港、澳门、台湾的身份证和护照
  18. 自习室图书馆座位预约小程序 开题报告(基于微信小程序毕业设计题目选题课题)
  19. 软件四种维护详解(更正性维护、适应性维护、完善性维护、预防性维护)
  20. Linux Oracle install studing

热门文章

  1. [系统资源攻略]memory
  2. 从只用Excel做报表,到可视化报表工具真香,他经历了什么
  3. 奇偶模分析(Odd Even Mode Analysis)
  4. java hessian2_hessian2序列化bug
  5. 软件测试之魂:核心测试设计精解(第2版)
  6. 应用“灰色地带”如何谈安全——看NGFW可视化
  7. 无需插数据线,adb通过wifi无线调试
  8. 数学中的元、元数学和元认知
  9. 中国制造的成就,高新技术出口连续17年位居全球第一,占比持续上升
  10. 中国将在2014年成为十万亿级的超级大国