求助P1119
  • 板块灌水区
  • 楼主Alg_orithm
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/8/18 13:07
  • 上次更新2024/8/18 15:50:08
查看原帖
求助P1119
1029575
Alg_orithm楼主2024/8/18 13:07

rt

#include<iostream>
using namespace std;
int t[210],a[1010][1010];
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    memset(a,0x3f,sizeof(a));
    int n,m,q,i,j,ti,k,maxt=0,w,x,y,sti=0;
    cin>>n>>m;
    for(i=0;i<n;i++)
    {
        cin>>t[i];
        maxt=max(maxt,t[i]);
    }
    for(i=0;i<m;i++)
    {
        cin>>x>>y>>w;
        a[x][y]=a[y][x]=w;
    }
    cin>>q;
    while(q--)
    {
        cin>>x>>y>>ti;
        if(ti<=sti)
        {
            if(a[x][y]==0x3f3f3f3f)
                cout<<-1<<'\n';
            else cout<<a[x][y]<<'\n';
        }
        else
        {
            for(k=0;k<n;k++)
                for(i=0;i<n;i++)
                    for(j=0;j<n;j++)
                        if(i!=j&&j!=k&&i!=k)
                            if(t[k]>=ti&&t[i]>=ti&&t[j]>=ti)
                                if(a[i][j]<a[i][k]+a[k][j])
                                    a[i][j]=a[j][i]=a[i][k]+a[k][j];
            sti=ti;
            if(a[x][y]==0x3f3f3f3f)
                    cout<<-1<<'\n';
            else cout<<a[x][y]<<'\n';
        }
    }
    return 0;
}
2024/8/18 13:07
加载中...