NOIP2014模拟 8.12

T1.过河【river】

【题目大意】

有(N+1)个平行于y轴的河岸排成一排,共有N条河。第i条河的宽度为wi,过第i条河的速度为vi。河岸的宽度忽略不计。令X=sigma(wi)。
规定:
1、从(0,0)出发,终点是(X,Y)。Y是一个给定的整数。
2、在渡河时,必须从一个整点驶向另一个整点,花费的时间为这两个点的欧几里得距离除以速度。
3、可以在河岸上行走,但也是必须从一个整点走向另一个整点,速度为给定的u。
求花费时间的最小值。

【数据范围】

对于30%的数据,N<=50,Y<=500

对于60%的数据,N<=50;

对于100%的数据,N<=50000;

对于100%的数据,u<=10^5,wi<=10^5,vi<=10^5,Y<=10^5。

【解题思路】

对于30%的数据,可以写DP,状态为F[I][J]表示到第I个河岸到第J个纵坐标,显然,随着河岸编号的递增,最优的路线必定是Y坐标不降的。所以DP时间复杂度小于O(N*Y*Y)。

对于60%以及100%的数据,使用贪心算法。一开始我们假设每次过河,河对岸的Y坐标与所在岸的Y坐标差值为0(后文中设该值为Y)(既平行于X轴)的方式过河,并通过河岸竖直走Y个单位。然后当存在某一条河其Y+1的路线代价比起Y的路线以及一个单位的河岸路线的代价和小,所以我们找到这个代价最优的,对答案进行修改。60%的数据为每次暴力找最优,100%的数据为用堆结构维护最优值。


T2.逃离迷宫【escape】

【题目大意】

迷宫为N*M的四联通网格图,从一个格子到另一个格子消耗体力为两个格子之差的平方,某些格子上有体力药水,求从起点到终点消耗体力最小值。

【数据范围】

对于60%的数据,n<=20,m<=20,k<=10
对于100%的数据,n*m<=1000,k<=15,s<=10^5,0<=h<10

【解题思路】

暴力60分。对于100%的数据,维护K个点再加起点、终点相互间最短路,然后F[I][S]表示到第I个点,走过的点状态为S,100分。


T3.幸运数【lucky】

【题目大意】

如果一个正整数的所有质因子都小于等于M且每种质因子个数都为奇数,则称这个数为幸运数。求小于N的幸运数。

【数据范围】

对于40%的数据,n<=10^7,m<=10^6;

对于100%的数据,n<=10^9,m<=10^6。

【解题思路】

对于部分分,暴力碾过还是比较好想的,这里不详细讲。对于100%的数据,实际是暴力加优化,得到小于等于M的所有质数,暴力枚举每个质数取多少次幂或者不取。优化:假设当前累积的值为X,取到第I个质数,当X*P[I]*P[I]>N那就证明从P[I]到P[K](P[K]为最大的一个质数满足P[K]*X<=N)一系列的质数能且只能取其中之一或者不取,直接累加答案,然后推出DG,过了,而且跑得飞快。


【总结】第一题想到是贪心,但是没有想到分层,一个一个的贪心,要记住这种方法。第二题这种迷宫型然后特殊点比较少的题目做了不少,但是预处理加DP的思考方向不牢固。第三题则是对于数论的知识有所欠缺。

【需要改进的地方】 记住每一道题目的解法以及思考方向,学会一种方法而不是学一道题目。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值