2016XTU算法专题个人赛3 题解
A. HDU 1176 免费馅饼
题意: 有0~10共11个坐标位置,现在有n个馅饼掉在这11个位置,告诉每个馅饼落下的时刻t和坐标x,上一秒位于x出的人只能移动到x-1,x,x+1这三个位置去接馅饼,问最多能接住多少馅饼。
解法:
dp[i][j]表示 i 时刻在 x 处能接住的最多馅饼数。dp初始化为0,先计算出i时刻j位置有多少馅饼,这样感觉就转化成数塔问题了,可以倒着时间DP,最后答案就是dp[0][5];也可以正着,最后答案是dp[T][0~10]中的最大值(T是最大时间),正着时要注意控制起点要从5开始。
B. HDU 1428 漫步校园
题意:
n∗n
个小方格,经过每个格子需要一定时间,从左上角走到右下角使得经过的格子上的总时间最小,问有多少种方案。
解法:
用BFS搜一下,每个点到右下角的最短路,然后记忆化搜索次数
C. HDU 5410 CRB and His Birthday
题意:
解法:
D. CodeForces 543A Writing Code
题意:
解法:
E. HDU 5418 Victor and World
题意:所有的城市都得走一次,最后回道点1,求最小耗油量。。
解法: floyd+状压dp (floyd本身也是DP的嘛……)
参考代码链接(l(ai)x(in)dd的博客链接)