首页 > 其他分享 >P1119 灾后重建

P1119 灾后重建

时间:2023-12-07 21:56:00浏览次数:44  
标签:205 P1119 ll 村庄 灾后 1e9 重建

原题链接

思路请看题解,讲的非常详细,细节请看我

一道很多细节的题

1.初始化要赋1e9
2.只有在两个村庄都重建完之后,一条路才通
3.一条路都通了之后,两个村庄都要再走一遍
4.村庄编号从0开始,而不是从1开始
5.弹出重建完成的村庄时,迭代器it记得加上判断不超过n,因为t为零时永远小于when会陷入死循环,也可以设t[n]正无穷,代表村庄n重建时间无穷大(即永远不可能建成)

代码

#include<bits/stdc++.h>
#define ll long long
using namespace std;
struct tong
{
    ll pos;
    ll val;
};
vector<tong> G[205];
int main()
{
    ll n,m;
    scanf("%lld%lld",&n,&m);

    ll t[205]={0};
    for(ll i=0;i<n;i++)scanf("%d",&t[i]);

    ll dis[205][205]={0};
    for(ll i=0;i<n;i++)
        for(ll j=i;j<n;j++)dis[i][j]=dis[j][i]=1e9;

    for(ll i=1;i<=m;i++)
    {
        ll x,y,d;
        scanf("%lld%lld%ld",&x,&y,&d);
        if(x<y)swap(x,y);
        G[x].push_back(tong{y,d});
    }

    ll q;
    scanf("%lld",&q);
    ll it=1;
    while(q--)
    {
        ll x,y,when;
        scanf("%lld%lld%lld",&x,&y,&when);
        while(t[it]<=when&&it<n)
        {
            for(ll k=0;k<G[it].size();k++)
            {
                ll too=G[it][k].pos;
                dis[it][too]=dis[too][it]=min(G[it][k].val,dis[too][it]);
                for(ll i=0;i<n;i++)
                    for(ll j=i+1;j<n;j++) dis[i][j]=dis[j][i]=min(dis[i][too]+dis[too][j],dis[j][i]);
            }
            for(ll i=0;i<n;i++)
                    for(ll j=i+1;j<n;j++) dis[i][j]=dis[j][i]=min(dis[i][it]+dis[it][j],dis[j][i]);
            it++;
        }
        if(dis[x][y]>=1e9)puts("-1");
        else printf("%lld\n",dis[x][y]);
    }
    return 0;
}

标签:205,P1119,ll,村庄,灾后,1e9,重建
From: https://www.cnblogs.com/pure4knowledge/p/17884060.html

相关文章

  • NeurIPS 2023 | 清华ETH提出首个二值化光谱重建算法
    前言 本文首次探索了压缩量化在光谱压缩重建领域的应用,提出了该领域首个二值化卷积神经网络BiSRNet,在量化指标和视觉结果上都显著地超越了当前最先进的二值化模型。本文转载自我爱计算机视觉仅用于学术分享,若侵权请联系删除欢迎关注公众号CV技术指南,专注于计算机视觉的技术总......
  • openGauss学习笔记-141 openGauss 数据库运维-例行维护-例行重建索引
    openGauss学习笔记-141openGauss数据库运维-例行维护-例行重建索引141.1背景信息数据库经过多次删除操作后,索引页面上的索引键将被删除,造成索引膨胀。例行重建索引,可有效的提高查询效率。数据库支持的索引类型为B-tree索引,例行重建索引可有效的提高查询效率。如果数据发生......
  • MATLAB时间序列数据重建与平滑:HANTS滤波
      本文介绍在MATLAB中,实现基于HANTS算法(时间序列谐波分析法)的长时间序列数据去噪、重建、填补的详细方法。  HANTS(HarmonicAnalysisofTimeSeries)是一种用于时间序列分析和插值的算法。它基于谐波分析原理,可以从观测数据中提取出周期性变化的信号成分,并进行数据插值和去噪......
  • 记录一次生产环境因磁盘空间不足驱逐pod造成pod重建The node had condition: [DiskPre
       #记录一次生产报Thenodehadcondition:[DiskPressure]造成pod无限重启的监控不停的报警#进入k8s的管理机检查发现msg的pod重启重建pod多次[root@VM_248_6_centos~]#kubectlgetpod-ncms-v2-prodNAMEREADYSTA......
  • 【Python&图像超分】Real-ESRGAN图像超分模型(超分辨率重建)详细安装和使用教程
    ​1前言        图像超分是一种图像处理技术,旨在提高图像的分辨率,使其具有更高的清晰度和细节。这一技术通常用于图像重建、图像恢复、图像增强等领域,可以帮助我们更好地理解和利用图像信息。图像超分技术可以通过多种方法实现,包括插值算法、深度学习等。其中,深度学习......
  • 代码随想训练营第三十五天打卡(Python)| 860.柠檬水找零、406.根据身高重建队列、452. 用
    860.柠檬水找零classSolution:deflemonadeChange(self,bills:List[int])->bool:five,ten,twenty=0,0,0forbillinbills:ifbill==5:five+=1elifbill==10:iffive......
  • 医学影像系统源码(MRI、CT三维重建)
    一、MRI概述核磁共振成像(英语:NuclearMagneticResonanceImaging,简称NMRI),又称自旋成像(英语:spinimaging),也称磁共振成像(MagneticResonanceImaging,简称MRI),台湾又称磁振造影,香港又称磁力共振扫描,是利用核磁共振(nuclearmagneticresonance,简称NMR)原理,依据所释放的能量在物质内部不......
  • 浅析三维模型重建的地面控制点精度常见的几个问题及解决方法
    浅析三维模型重建的地面控制点精度常见的几个问题及解决方法 在倾斜摄影三维模型重建过程中,地面控制点的精度是影响模型几何精度的关键因素之一。以下是常见的问题及相应的解决方法:1、问题:地面控制点坐标测量误差较大。解决方法:确保使用高精度的测量仪器进行地面控制点的测......
  • 倾斜摄影三维模型数据几何坐标重建方法分析
    倾斜摄影三维模型数据几何坐标重建方法分析 利用几何坐标变换等技术实现倾斜摄影三维模型数据的坐标重建,可以采用以下方法:1、数据准备:首先,需要获取倾斜摄影影像数据。这些影像应包含多个视角下的拍摄图像,并覆盖同一场景。同时,还需要收集地面控制点的坐标信息,以提供参考和配准......
  • 三维重建 PyQt Python MPR 四视图(横断面,冠状面,矢状面,3D)
    本文实现了PythonMPR的四视图,横断面,冠状面,矢状面,3DMPR(multi-plannerreformation)也称多平面重建,多重面重建是将扫描范围内所有的轴位图像叠加起来再对某些标线标定的重组线所指定的组织进行冠状、矢状位、任意角度斜位图像重组。主要功能:1:实现了所有切面与其他视图光标应该......