当前位置: 首页 > news >正文

L2-044 大众情人()

本题传送门

谢谢你,多远最短路

解题思路

这题忒阴了,反正我是没看出来多源最短路,做得时候给我裹死了,最后看题解是多源最短路

FB70319368DD30C13F9483A285F0CD01

我们从题意中发现,显然是个有向图。题目要求最后分别算出男女中异性缘最好的两个人,如果同性中有异性缘一样高的,就按序号递增顺序输出。

又因为要取推导值中的最小值,确实对应着最短路中的松弛操作。

最后还要根据性别分别取最小值,有多个还要递增输出

直接上代码吧,确实要多看图论问题。

ac✅️代码

#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
const long long INF = 1e15;
long long dist[510][510];
char gender[510];
int main()
{int n;cin>>n;for(int i = 1 ; i <= n ; i++){for(int j = 1 ; j <= n ; j++){if(i == j) dist[i][j] = 0;else dist[i][j] = INF;}}for(int i = 1 ; i <= n ; i++){int k;cin>>gender[i]>>k;for(int j = 0 ; j < k ; j++){int friend_id ;long long d ;char colon ;cin>>friend_id>>colon>> d;dist[i][friend_id] = d;//建立关系图}}for(int k = 1; k <= n ; k++)//n次松弛{for(int i = 1 ; i <= n ; i++){if(dist[i][k] == INF) continue;for(int j =1 ; j <= n ; j++){dist[i][j] = min(dist[i][j] , dist[i][k] + dist[k][j]);}}}vector<long long> max_d(n + 1 , 0);for(int i = 1 ; i <= n ; i ++)//对i个人求他(她)的最大异性缘{long long cur_max = 0 ;for(int j = 1 ; j <= n ; j++){if(gender[i] != gender[j]){				cur_max = max(cur_max , dist[j][i]);}}max_d[i] = cur_max;//不一定要开一个二维数组,每个数组对应一个人//开一维也可以,只不过要提前开好空间。}auto find_lovers = [&](char g)//性别作为参数{long long min_of_max = INF;for(int i = 1 ; i <= n ; i++){if(gender[i] == g){min_of_max = min(min_of_max , max_d[i]);//这里采取的是先找最大值,不过还有一种方法是用clear函数,不过clear函数复杂度为N}}vector<int> res;for(int i = 1 ; i <= n ; i++){if(gender[i] == g && max_d[i] == min_of_max)res.push_back(i);}for(int i = 0 ; i < res.size() ; i ++){cout<<res[i];if(i != res.size() - 1) cout<<" ";}cout<<endl;};find_lovers('F');find_lovers('M');return 0;}
http://www.jsqmd.com/news/502560/

相关文章:

  • 【 每天学习一点算法 2026/03/19】子集
  • C++的左右值引用该怎么理解?注意点有什么?
  • ViT-B-16处理小尺寸图片的实战技巧(CIFAR-100案例解析)
  • 新手也能看懂的X站cms渗透实战:从广告设置到代码执行的完整漏洞链分析
  • xManager终极指南:解锁无广告音乐体验的免费应用管理器
  • 5个理由为什么Style-Bert-VITS2正在改变语音合成游戏规则
  • 中兴B860AV3.2-M_可刷移动高清6A_2+32G_灯绿色_带root_当贝桌面线刷固件包(内存显示正常)
  • 5大核心功能赋能Windows语音识别:FunASR社区版高效部署指南
  • 保姆级教程:基于Qwen3-Embedding-4B,快速部署可视化语义搜索系统
  • 90%的人降AI失败都栽在这一步:只降了标红段落没传全文
  • 斯坦福 CS336 从零构建大模型 (2025 春) - 第十一讲:缩放定律的工业界实践与底层机制 (Scaling Laws 2)
  • 当 JavaScript 试图做加法:一场混乱的“相亲”大会
  • 超级AI医院:以AI为核心大脑,重构全生命周期医疗生态
  • Linux虚拟显示器终极指南:3分钟将平板变免费扩展显示器
  • 斯坦福 CS336 从零构建大模型 (2025 春) - 第十六讲:强化学习与自对齐 (Alignment - RL 1)
  • MMWAVE SDK中的RF控制与数据路径详解:从理论到实践
  • 国内开发者福音:SwanLab替代Wandb实现具身智能训练参数可视化(附完整配置流程)
  • Abaqus与Isight联合仿真:从参数优化到自动化流程实战
  • Cogito-V1-Preview-Llama-3B实战:构建基于智能体(Agent)的自动化任务系统
  • FUTURE POLICE与AI Agent联动实战:构建自主语音任务处理智能体
  • SDL_ttf 3.0 迁移策略深度解析:构建系统适配与API兼容性挑战
  • Eclipse项目迁移到IntelliJ IDEA避坑指南:解决Web项目导入后无法运行的问题
  • 桌面级德州扑克GTO求解器:Desktop Postflop完全指南
  • VideoAgentTrek-ScreenFilter性能优化教程:C语言底层接口调用与内存管理
  • 光耦怎么区分1234脚
  • ZYNQ时钟设计避坑指南:MMCM/PLL选型与BUFG/BUFH布线技巧
  • 编程语言扩展的外部函数接口(FFI)概述
  • GASDocumentation项目实战指南:从核心模块到配置优化
  • 从零到一:基于STM32与W25Q64的OTA BootLoader实战解析
  • YOLO-v8.3新手入门:无需配置,一键开启目标检测开发