soj 1700 ping_단순
1328 단어 ping
제목: n변의 최단로를 구하는 무방향도를 드리겠습니다.
사고방식: 최단으로 한참을 생각했지만 생각해 내지 못했다. 경기가 끝나고 돌아가서 원래 dp로 하는 것을 보니 나의 dp는 향상되어야 한다.
sp[i][k]=min(sp[j][k-1]+dp[j][i])//k는 몇 변, j는 i
#include <iostream>
#include<cstdio>
#include<cstdio>
using namespace std;
#define INF 0xfffffff
#define MAXN 1100
#define MAXH 10
int d[MAXN][MAXN];
int sp[MAXN][MAXH+10];
int n,m,t;
void init(){
int i,j,a,b,c;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
d[i][j]=INF;
for(i=0;i<n;i++)
for(j=0;j<=MAXH;j++)
sp[i][j]=INF;
sp[0][0]=0;
while(m--){
scanf("%d%d%d",&a,&b,&c);
if(d[a][b]>c){//
d[a][b]=d[b][a]=c;
}
}
}
int main(int argc, char** argv) {
int i,j,k;
while(scanf("%d%d%d",&n,&m,&t)!=EOF,n){
init();
for(k=1;k<=MAXH;k++)
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(d[j][i]<INF&&sp[j][k-1]+d[j][i]<sp[i][k]){
sp[i][k]=sp[j][k-1]+d[j][i];// j i
}
int ans=INF;
for(i=0;i<=MAXH;i++)// 10
if(sp[t][i]<ans)
ans=sp[t][i];
if(ans==INF)
printf("no
");
else
printf("%d
",ans);
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
이 밸런타인데이에 엔지니어는 아리운으로 다른 사랑을 표현해 보았다c 네트워크 프로그래밍을 배운 사람들은 반드시 socket 플러그인이라는 개념을 이해할 것이다.핑의 경우 요청을 보내고 응답을 받는 것도 플러그인을 통해 이루어진다.단, ICMP 프로토콜은 커널에서 TCP, UDP와...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.