zoj1092-Arbitrage
来源:互联网 发布:淘宝店铺被扣了四分 编辑:程序博客网 时间:2024/04/29 09:10
这道题目虽然是理解了书上的代码,然后自己敲出来的,但是仍然收获不少,例如其中处理字符串时保留它的数字,然后来进行判断,条理比较清晰,也初略了解了bellman-ford算法,虽然和Dijkstra的思想完全理解透,还需要努力
#include<stdio.h>#include<iostream>#include<string.h>#include<algorithm>using namespace std ;const int maxn = 50 ;const int maxm = 1005 ;struct exchange{int ci , cj ;double cij ;}ex[ maxm ] ;char name[ maxm ][ maxn ] ;char a[ maxn ] , b[ maxn ] ;double x ;int m , n ;int flag ;double maxdist[ maxm ] ;int readcase(){int i , j , k ;scanf( "%d" , &n ) ;if( n == 0 )return 0 ;for( i = 0 ; i < n ; i++ )scanf( "%s" , &name[ i ] ) ;scanf( "%d" , &m ) ;for( i = 0 ; i < m ; i++ ){scanf( "%s%lf%s" , a , &x ,b ) ;for( j = 0 ; strcmp( a , name[ j ] ) ; j++ ) ;for( k = 0 ; strcmp( b , name[ k ] ) ; k++ ) ;ex[ i ].ci = j ;ex[ i ].cj = k ;ex[ i ].cij = x ;}return 1 ;}void bellman( int v0 ){flag = 0 ;int i , k ;memset( maxdist , 0 , sizeof( maxdist ) ) ;maxdist[ v0 ] = 1 ;for( k = 1 ; k <= n; k++ ){for( i = 0 ; i < m ; i++ ){if( maxdist[ ex[ i ].ci ] * ex[ i ].cij > maxdist[ ex[ i ].cj ] )maxdist[ ex[ i ].cj ] = maxdist[ ex[ i ].ci ] * ex[ i ].cij ;}}if( maxdist[ v0 ] > 1.0 )flag = 1 ;}int main(){int Case = 0 ;while( readcase( ) ){for( int i = 0 ; i < n ; i++ ){bellman( i ) ;if( flag )break;}if( flag )printf( "Case %d: Yes\n" , ++Case ) ;elseprintf( "Case %d: No\n" , ++Case ) ;}return 0 ;}
- zoj1092 Arbitrage
- ZOJ1092 Arbitrage
- zoj1092-Arbitrage
- poj 2240 zoj1092 Arbitrage
- ZOJ1092 POJ2240 Arbitrage,Floyd算法
- poj2240&zoj1092 Arbitrage(Bellman-Ford)
- zoj1092
- Arbitrage
- Arbitrage
- Arbitrage
- Arbitrage
- Arbitrage
- Arbitrage
- Arbitrage
- Arbitrage
- Arbitrage
- zoj1092--直接foldy函数!!
- 104 - Arbitrage
- Windows编程中的各种文件操作方法及其头文件
- 花朵数
- 一个应届计算机毕业生的2012求职之路
- 走进搜索引擎
- poj-3280-记忆化搜索
- zoj1092-Arbitrage
- 画表格
- 刷机大师3.2.1一键刷机流程攻略
- 回型嵌套
- Quartz Core 图层编程
- 一个伟大计划终于完成了(粉丝联盟网正式上线了)
- 拉格朗日对偶(Lagrange duality)
- [tonylp]思考人生
- 立方和等式