[최 단 잡다 한 문제] Codeforces 806 D VK Cup 2017 Round 3 D. Perishable Roads
#include
#include
#include
using namespace std;
typedef long long ll;
const int N=2005;
#define read(x) scanf("%d",&(x))
int n,w[N][N];
ll dis[N];
int vst[N];
int minv;
int main(){
freopen("t.in","r",stdin);
freopen("t.out","w",stdout);
read(n); minv=1<<30;
for (int i=1;i<=n;i++)
for (int j=i+1;j<=n;j++){
read(w[i][j]); w[j][i]=w[i][j];
minv=min(minv,w[i][j]);
}
for (int i=1;i<=n;i++){
dis[i]=1LL<<60;
for (int j=1;j<=n;j++)
if (i^j){
w[i][j]-=minv;
dis[i]=min(dis[i],(ll)w[i][j]<<1);
}
}
for (int i=1;i<=n;i++){
int k=0;
for (int j=1;j<=n;j++)
if (!vst[j] && (!k || dis[j]1;
for (int j=1;j<=n;j++)
dis[j]=min(dis[j],dis[k]+w[k][j]);
}
for (int i=1;i<=n;i++)
printf("%I64d
",dis[i]+(ll)(n-1)*minv);
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
HDU 2544 최 단 로 (dijkstra 또는 Floyd 또는 bellman 또는 spfa)여러 그룹의 데 이 터 를 입력 하 십시오.각 조 의 데이터 첫 줄 은 두 개의 정수 N, M (N & lt; 100, M & gt; = 10000) 이 고 N 은 청 두 의 거리 에 몇 개의 길목 이 있 고 1 로...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.