uva-1025、uva-437、uva-1347、uva-116、uva-12563

来源:互联网 发布:数据透视图怎么做 编辑:程序博客网 时间:2024/05/23 00:01



比赛链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=62369#overview



uva-1025.

间谍坐火车。紫书例题9-1.

题意:有个间谍从火车站1出发。给出每两段车站之间要用的时间和发车时间。要求在时间T时到达第n个车站。在这段时间,她要尽可能地呆在行驶着的火车上,使她在各个车站停留的时间最小,问停留时间最小是多少。

解法:

1、用动态规划。设dp[i][j]表示当前状态为在时间i到达第j个车站。那么接下来有三种决策。

在车站等一分钟:

dp[i+1][j] = min (dp[i+1][j],dp[i][j] + 1);  
坐上往右开的火车:

dp[i+t[j]][j+1] = min(dp[i][j],dp[i + t[j]][j+1]);

坐上往左开的火车:

dp[i+ t[j-1]][j-1] = min(dp[i][j], dp[i + t[j-1]][j-1]);

2、判断能否坐上火车时,要先预处理好在i时刻有没有火车刚好到达j车站。

教训:

1、是在“T时刻”到达n!不是在“T时刻之前”到达n!就这英语水平还能过六级我也是醉了。

2、把hastrain[path][N][1]= 1;打错成hastrain[path][N][0]= 1;了。主要是我两个相同的代码复制下来,不同之处没改全。

3、j改成j-1之后,有个地方漏改了!还是j.

4、以后还是想!!清!!楚!!再上手写吧。免得改来改去会漏改一些地方。





uva-437

选砖块垒高高的柱子。

吐槽一下:立方体是六个面都是正方形的啊喂!维基百科在此:http://zh.wikipedia.org/zh-cn/%E7%AB%8B%E6%96%B9%E9%AB%94   刘汝佳居然写的是长宽高不一样的“立方体”。对了。维基百科是纯公益的,非常令人佩服的,不靠任何广告收入来维持的,如果大家有闲钱,可以去捐赠一下。

题意:给你n种砖块,每种都有无穷多个。要求垒一个尽可能高的柱子。使得每个面的长宽都严格大于它上面的那个砖块的长宽。

解法:

1、把所有的面都用一个数字表示。共有3n个数字

2、把严格小于的两个面之间连一条边。(这个方法好棒呀!我怎么没想到!)

3、






0 0
原创粉丝点击