HDU 2851(Lode Runner )

#include<stdio.h>#include<string.h> struct node { int a ,b ,value ;}p [ 2005 ];int min (int a ,int b ){ return a <b ?a :b ;}int main(){ int c ,i ,j ,k ,n ,m ,d ; int dp [ 2005 ]; scanf ( "%d" ,&c ); for(i = 1 ;i <=c ;i ++) { scanf ( "%d%d" ,&n ,&m ); for(j = 1 ;j <=n ;j ++) { scanf ( "%d%d%d" ,&p [j ].a ,&p [j ].b ,&p [j ].value ); } for(j = 1 ;j <=n ;j ++) dp [j ]=- 1 ; dp [ 1 ]=p [ 1 ].value ; for(j = 2 ;j <=n ;j ++) { for(k = 1 ;k <j ;k ++) { if(dp [k ]!=- 1 ) { if(p [j ].a <=p [k ].b ) { if(dp [j ]==- 1 ) dp [j ]=dp [k ]+p [j ].value ; else dp [j ]=min (dp [j ],dp [k ]+p [j ].value ); } } } } for(j = 1 ;j <=m ;j ++) { scanf ( "%d" ,&d ); printf ( "%d\n" ,dp [d ]); } } return 0 ;}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值