⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1695_magazine delivery.cpp

📁 总共80多道题的POJ详细解题报告
💻 CPP
字号:
#include<iostream.h>
#include<memory.h>
int m,n,graph[30][30],dis[30][30][30] ;
int D(int a,int b,int c )
{
	int tmp,d1,d2,d3 ;
	if ( c == m ) return 0;
    if ( dis[b][c][c+1] == 0 ) dis[b][c][c+1] = D(b,c,c+1) ;
	if ( dis[a][b][c+1] == 0 ) dis[a][b][c+1] = D(a,b,c+1) ;
	if ( dis[a][c][c+1] == 0 ) dis[a][c][c+1] = D(a,c,c+1) ;
	d1 = dis[b][c][c+1] + graph[a][c+1] ;
	d2 = dis[a][b][c+1] + graph[c][c+1] ;
	d3 = dis[a][c][c+1] + graph[b][c+1] ;
    if ( d2 > d1 ) tmp = d1;
	else tmp = d2;
	if ( tmp > d3 ) tmp = d3 ;
	return tmp;
}
void main()
{
	int i,j,v;
	cin >> n ;
	while(n--)
	{
		cin >> m;
		memset( graph,0,sizeof(graph));
		for( i = 0 ; i < m-1; i++ )
		{
			for( j = i+1; j < m ; j++ )
			{
				cin >> graph[i][j] ;
				graph[j][i] = graph[i][j];
			}
		}
		memset( dis,0,sizeof(dis)) ;
		cout << D(0,0,0) << endl;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -