#Test NOIP模拟# 目录

MZ test17# NOIP模拟题 # T1 第1题 时间计算(heaven.pas/cpp)[key.模拟]

 

MZ test17# NOIP模拟题 # T2 第2题 最优时间表(sche.pas/cpp) [key.DP] 



MZ test17# NOIP模拟题 #T3 第3 题 登山机器人(robot.pas/cpp)


MZ test17# NOIP模拟题 # T4 第4题 路线统计(route.cpp/pas)


难度一般话。 建议先A t1和t3.

不过此套题题面有毒。所以千万千万要认真读题。


想学好信奥先学会读题!!!



solution:

1、到天宫做客(简单)

   模拟。

2、最优时间表(动态规划)

设mt(i)表示从第i个时间单位开始到第n个时间单位结束的最短维修时间,则mt(i)具有最优子结构性质,且满足如下递归式:

当时间单位i有多个维修程序时,mt(i)=min{mt(i+tj)};

                                    sj=i

 

当时间单位i没有维修程序时,mt(i)=mt(i+1)-1 。

初始值为mt(n+1)=n 。

 

3、登山机器人(贪心)

   1、贪心思路: 可以这样思考,假设每个机器人每次只能走一米。 

   假设第i个机器人走第j米需要时间 b[i][j], ke,可用w[i]作为标记矩阵, 记录第i个机器人已经走到第几米。

采用贪心算法,每一米都使用时间最少的机器人,然后更新机器人的步数信息。(仅当此题目表明机器人越走越慢时,此贪心策略有效)

 

2、动规思路:用f[i][j]表示前i个机器人攀登到j这个高度所用的最少时间

f[i][j]=min{f[i][j],f[i-1][j-h]+robot[i][h]} (h=1~k)即每个机器人能走的高度

 

4、路线统计

矩阵乘法的标志:点很少(矩阵的n次幂耗时少),时间很多(走法复杂)

将每个点之间的关系用矩阵存储,i能1步到j标记为1,不能到标记为0,注意题中边权为1-5,则可拆点,将每个点拆成边权个点,如图:


则这个矩中的map[i][j]就保存了1步能从i到j的方案数,要求t步,则直接将矩阵自乘t次即得答案。




你可能感兴趣的:(#Test NOIP模拟# 目录)