More actions
imported>박인서 No edit summary |
imported>박인서 No edit summary |
||
| Line 90: | Line 90: | ||
scanf("%d %d",&x,&y); | scanf("%d %d",&x,&y); | ||
printf("%d ",y); | printf("%d ",y); | ||
if(x==y) return 0; | |||
res=path[x][y]; | res=path[x][y]; | ||
while(res!=x) | while(res!=x) | ||
Revision as of 07:53, 1 December 2015
앗! 종강이야!
참여자 명단
| 함장 | 장용운 | 11학번 | 출석 |
| 선원 | 천준현 | 15학번 | 팀플 |
| 박인서 | 출석 | ||
| 이원준 | 출석 | ||
| 남헌 | 취침 |
수업
진행
- 장소 : 6층 학회실
- 시간 : 15시 ~ 17시
내용
수심 11034m. 그래프 정ㅋ벅ㅋ
- Shortist Path(Floyd-Warshall algorithm)
코드
예제1
숙제
- 복습하기
- 복습하기
- 복습하기
숙제 제출
천준현
박인서
~~어쩌다 보니 C++...~~
#include <stdio.h>
#include <limits>
#define LEN 10
int a[LEN][LEN],path[LEN][LEN];
int main()
{
int i,j,k,n,m;
n=5,m=6;
for(i=1;i<=5;i++)
{
for(j=1;j<=5;j++)
if(i!=j) a[i][j]=std::numeric_limits<int>::max(),path[i][j]=i;
}
a[1][2]=2,a[2][1]=2;
a[1][4]=1,a[4][1]=1;
a[1][5]=2,a[5][1]=2;
a[2][3]=4,a[3][2]=4;
a[2][5]=1,a[5][2]=1;
a[3][4]=3,a[4][3]=3;
for(i=1;i<=5;i++)
{
for(j=1;j<=5;j++)
{
for(k=1;k<=5;k++)
{
if(a[j][i]!=std::numeric_limits<int>::max() && a[i][k]!=std::numeric_limits<int>::max() && a[j][k]>a[j][i]+a[i][k]) a[j][k]=a[j][i]+a[i][k],path[j][k ]=i;
}
}
}
for(i=1;i<=5;i++)
{
for(j=1;j<=5;j++) printf("%2d ",a[i][j]);
printf("\n");
}
int x,y,res;
scanf("%d %d",&x,&y);
printf("%d ",y);
if(x==y) return 0;
res=path[x][y];
while(res!=x)
{
printf("%d ",res);
res=path[x][res];
}
printf("%d ",x);
return 0;
}