nullnull图论最短路之bellman-ford

本文详细介绍了Bellman-Ford算法的实现原理及其C++代码示例,通过具体实例展示了如何寻找图中负权边的存在,并给出了从起点到各顶点的最短路径及路径回溯方法。

文章结束给大家来个程序员笑话:[M]

#include<stdio.h>
#include<iostream>
#include<string.h>

using namespace std ;
const int INF = 1000000 ;
const int maxn = 8 ; 
int n ;
int edge[ maxn ][ maxn ] ;
int dist[ maxn ] ;
int path[ maxn ] ;
void bellman( int v0 )
{
	int i , j , k , u ;
	for( i = 0 ; i < n ; i++ )
	{
		dist[ i ] = edge[ v0 ][ i ] ;
		if( i != v0 && dist[ i ] < INF )
			path[ i ] = v0 ;
		else
			path[ i ] = -1 ;
	}
	for( k = 2 ; k < n ; k++ )
	{
		for( u = 0 ; u < n ; u++ )
		{
			if( u != v0 )
			{
				for( j = 0 ;  j < n ; j++ )
				{
					if( edge[ j ][ u ] < INF && dist[ j ] + edge[ j ][ u ] < dist[ u ] )
					{
						dist[ u ] = dist[ j ] + edge[ j ][ u ] ;
						path[ u ] = j ;
					}
				}
			}
		}
	}
}


int main()
{
	int i , j ;
	int u , v , w ;
	scanf( "%d" , &n ) ;
	while( 1 )
	{
		scanf( "%d%d%d" , &u , &v , &w ) ;
		if( u == -1 && v == -1 && w == -1 )
			break ;
		edge[ u ][ v ] = w ;
	}
	for( i = 0 ; i < n ; i++ )
	{
		for( j = 0 ; j < n ; j++ )
		{
			if( i == j )
				edge[ i ][ j ] = 0 ;
			else
				if( edge[ i ][ j ] == 0 )
					edge[ i ][ j ] = INF ;
		}
	}
	bellman( 0 ) ;
	int shortest[ maxn ] ;
	for( i = 1 ; i < n ; i++ )
	{
		printf( "%d\t" , dist[ i ] );
		memset( shortest , 0 , sizeof( shortest ) ) ;
		int k = 0 ;
		shortest[ k ] = i ;
		while( path[ shortest[ k ] ] != 0 )
		{
			k++ ;
			shortest[ k ] = path[ shortest[ k - 1 ] ] ;
		}
		k++ ;
		shortest[ k ] = 0 ;
		for( j = k ; j > 0 ; j-- )
			printf( "%d---->" , shortest[ j ] ) ;
		printf( "%d\n" , shortest[ 0 ] ) ;
	}	
	return 0 ;
}
    每日一道理
如果说友谊是一颗常青树,那么,浇灌它的必定是出自心田的清泉;如果说友谊是一朵开不败的鲜花,那么,照耀它的必定是从心中升起的太阳。 多少笑声都是友谊唤起的,多少眼泪都是友谊揩干的。友谊的港湾温情脉脉,友谊的清风灌满征帆。友谊不是感情的投资,它不需要股息和分红。(友谊可以换其他词语)

    7

0 1 6
0 2 5
0 3 5
1 4 -1
2 1 -2
2 4 1
3 2 -2
3 5 -1
4 6 3
5 6 3
-1 -1 -1
1       0---->3---->2---->1
3       0---->3---->2
5       0---->3
0       0---->3---->2---->1---->4
4       0---->3---->5
3       0---->3---->2---->1---->4---->6
*/

文章结束给大家分享下程序员的一些笑话语录: 与女友分手两月有余,精神萎靡,面带菜色。家人介绍一女孩,昨日与其相亲。女孩果然漂亮,一向吝啬的我决定破例请她吃晚饭。
选了一个蛮贵的西餐厅,点了比较贵的菜。女孩眉开眼笑,与我谈得很投机。聊着聊着,她说:“我给你讲个笑话吧。”“ok”
  “一只螳螂要给一只雌蝴蝶介绍对象,见面时发现对方是只雄蜘蛛。见面后螳螂问蝴蝶‘如何?’,‘他长的太难看了’,‘别看人家长的丑,人家还有网站呢’。”
  “呵呵………”我笑。忽然她问:“你有网站吗?”  

转载于:https://www.cnblogs.com/xinyuyuanm/archive/2013/05/15/3080587.html

2025-03-31 16:20:33.220 [http-nio-8080-exec-2] ERROR com.gentlesoft.persistence.mybatis.MybatisGenericDao 105 insert admin - SQL:SQLID:com.gentlesoft.qmcyzd.domain.CyzdItem.insert; #### SQL:insert into QMCYZD_ITEM (ID,NO,ITEMTYPE,SUBJECTITEM,REGARDINGREQUIREMENTS,COMPLETEDEADLINE,REPORTLEADER,PERFORMANCESUBJECT,AUDITDEPT,NODES,FIRSTREMINDER,SECONDREMINDER,CONTENT,EXT1,EXT2,EXT3,EXT4,EXT5,EXT6,EXT7,EXT8,EXT9,EXT10) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); #### parameters:s5VLJ9Vk6DNNvjfDZX2,543,null,435345,3453,2025-03-19,null,{CsybD3WgO3nkH5uanml,RCmI8tQ6PM7iAV2A2ze,Y0veGgwX634To6PdOIp},{CsybD3WgO3nkH5uanml,RCmI8tQ6PM7iAV2A2ze,Y0veGgwX634To6PdOIp,dh7KM5XqqGEguk0iVkE,ka5ZJtP4Y4FmX4Xilwu,j4o79ikVGKJxCxcKfcz},2025-04-02,5,7,null,null,null,null,null,null,null,null,null,nullnull 三月 31, 2025 4:20:33 下午 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() for servlet [dispatcher] in context with path [/gentleoa] threw exception [Request processing failed; nested exception is com.gentlesoft.persistence.mybatis.SQLExecuteException: org.springframework.dao.DataIntegrityViolationException: ### Error updating database. Cause: com.highgo.jdbc.util.PSQLException: ERROR: 22001: value too long for type character varying(50) ### The error may involve com.gentlesoft.qmcyzd.domain.CyzdItem.insert-Inline ### The error occurred while setting parameters ### SQL: insert into QMCYZD_ITEM (ID,NO,ITEMTYPE,SUBJECTITEM,REGARDINGREQUIREMENTS,COMPLETEDEADLINE,REPORTLEADER,PERFORMANCESUBJECT,AUDITDEPT,NODES,FIRSTREMINDER,SECONDREMINDER,CONTENT,EXT1,EXT2,EXT3,EXT4,EXT5,EXT6,EXT7,EXT8,EXT9,EXT10) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ### Cause: com.highgo.jdbc.util.PSQLException: ERROR: 22001: value too long for type character varying(50)
04-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值