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

E - Souvenir(图论典型例题)

思路:对于有很多询问的题,一般都是先初始化。我们求出每个点到其他点的最短路径以及相同路径下最大的价值和即可。

代码:

#include <bits/stdc++.h>
#define pb push_back
#define a first
#define b second
using namespace std;
typedef long long int ll;
typedef pair <int,int> P;
typedef unsigned long long ull;char str[1005];
int main(){int n;scanf("%d",&n);vector <ll> A(n);for(int i=0;i<n;i++) scanf("%lld",&A[i]);vector < vector<int> > mp(n);for(int i=0;i<n;i++){scanf("%s",&str);mp[i].resize(n);for(int j=0;j<n;j++){mp[i][j]=str[j]=='Y';}mp[i][i]=1;}ll inf=1000000000000000;vector < vector<ll> > ans(n);vector < vector<int> > vd(n);for(int i=0;i<n;i++){ans[i].resize(n);for(int j=0;j<n;j++) ans[i][j]=-inf;vector <int> dist(n,n+1);queue <int> que;dist[i]=0;ans[i][i]=A[i];que.push(i);while(!que.empty()){int v=que.front();que.pop();for(int j=0;j<n;j++){if(mp[v][j]){if(dist[j]==n+1){dist[j]=dist[v]+1;que.push(j);}if(dist[j]==dist[v]+1){ans[i][j]=max(ans[i][j],ans[i][v]+A[j]);}}}}vd[i]=dist;}int Q;scanf("%d",&Q);for(int i=0;i<Q;i++){int u,v;scanf("%d%d",&u,&v);u--,v--;if(ans[u][v]==-inf) puts("Impossible");else printf("%d %lld\n",vd[u][v],ans[u][v]);}
}

http://www.lryc.cn/news/286376.html

相关文章:

  • 【SpringBoot篇】添加富文本编辑器操作
  • 前台vue配置
  • 牛客周赛 Round 18 解题报告 | 珂学家 | 分类讨论计数 + 状态DP
  • CentOS防火墙基本操作
  • Shell脚本的编程规范和变量类型
  • C++面试:跳表
  • 掌握C++20的革命性特性:Concepts
  • win11开机后频繁刷新桌面,任务栏不显示,文件资源管理器explorer报错ntdll.dll
  • 解决Git添加.gitignore文件后不生效的问题
  • Shell Linux学习笔记
  • kingbase常用SQL总结之锁等待信息
  • 「优选算法刷题」:长度最小的子数组
  • RuoYi-Cloud本地部署--详细教程
  • 如何优雅的发布一个 TypeScript 软件包?
  • 总结的太到位:python 多线程系列详解
  • 惬意上手Python —— 装饰器和内置函数
  • python 调用dll
  • docker里Java服务执行ping命令模拟流式输出
  • 代码随想录算法训练营第十三天| 239. 滑动窗口最大值 、347.前 K 个高频元素
  • 旋转花键的使用寿命与机械原理分析
  • 互联网摸鱼日报(2024-01-22)
  • CentOS 7 安装配置MySQL
  • Gold-YOLO(NeurIPS 2023)论文与代码解析
  • 多个coco数据标注文件合并
  • Kubernetes(K8S)拉取本地镜像部署Pod 实现类似函数/微服务功能(可设置参数并实时调用)
  • k8s使用ingress实现应用的灰度发布升级
  • 最新热门商用GPT4.0带MJ绘画去授权版本自定义三方接口(开心版)
  • Halcon基于形状的模板匹配inspect_shape_model
  • html中根元素以及根元素字体的含义
  • 51单片机1-6