2013-9-15 考试总结

三道题 :求素数/取硬币/飞天

引用老师一句话总结:三道题的难度并列(非梯度),都可以有思路,但都不容易A



 

一题一题分析:

1):

我用的是先将100000内的素数跑出来,制表然后枚举、果断TLE

 正确方法是筛法50000后再筛法,然后就能A了。。。

暂时不会筛法,不过今天就应该会了。待会实现;

2):

刚看题时以为时DP就将其放到最后(写不写还不一定)

结果老师说因为数据范围的缘故贪心都可以A。。。。。

3):

很奇葩的题。中位数的题我用平均数也过了相同效果。。。。。

 

 

 

先不写了。粘老师的Sol:

 

质数

 

题目初窥:

乍看数据范围似乎很恐怖。R,L<=maxlongint.

深入思考:

仔细观察后发现 R-L 只有 1000000。又 R 最大到 maxlongint,也就

是说 L..R上的合数的最小质因子不会大于 50000, 否则这个数的乘方

就会比 maxlongint还要大了。

 

算法:

先把 50000 以内的素数求出来,然后用这些素数将 L 到 R 的合数筛

掉即可。复杂度是 O(50000log(50000)+prime*log(r-l))。可以在时

限内出解。

 

 

7.31 的福星 pathhead那道题。

也是类似于筛法求素数。

再复习一下。

筛法求素数的效率是很高的。能到N*log(n)。
宝藏

 

各种乱搞,因为数据量不大。所以都可以做。

【贪心】

枚举到哪个井结束,然后把到这口井路上花费的时间去掉,再用剩下的时间所有金币的最大值。

观察样例,我们有14分钟,如果在第一口井结束,路上不花费时间,我们可以获得10+8+6+4+2=30 金币

如果在第二口井结束,我们只有11分钟可以获得金币

第一口井方案如上,第二口的方案是14 10 6 2 ,时间还有多余,一共获得62

 

如果第三口井结束,我们只剩下6分钟。 第三口井的方案是20 14 8 2

那么这三口井中金币我们可以挑出最大的6个数 20 14 14 10 10 8  所以答案是76

 

其实,这里如果数据量很大,我们可以维护一个小根堆。

 

【动归】

f[i][j]表示 第i分钟,人在第j个井口,最多能拿到多少金币。

 

f[i][j]= max{f[i-k][j-1]+s}

 

s为i-k+1 到i 之间,减去从第i-1到第i个井口的时间,在第i个井口拿到的金币的个数。

 


 

 

 

飞天

【题意简述】

给出N个非负整数。对于区间[l,r],求

其中x为某一整数。

【解决方法】

将所有h[i]对应于数轴上,问题转化为找一个点,使所有的点到这个点的距离和最小。至此,很多人已经发现中位数所对应的点可以取到最小值(具体的证明在这里不再详述,很多书籍上都可以找到),因此所有展台的高度应为区间[l,r]中的中位数。因为要求最小的代价,所以还需要知道区间[l,r]所有数的和,以及小于中位数的所有数的和。

求中位数的方法有很多,下面介绍几种方法。

◆方法一:

对区间[l,r]排序,然后线性扫描得到答案。

复杂度:O(MNlogN)

期望得分:50

◆方法二:

将所有的高度排序,记录展台的编号。线性扫描后同样可以得到答案

复杂度:O(NlogN+MN)

期望得分:70~80

◆方法三:

先预处理出每个区间的答案,读入后直接输出。这时,需要维护一个大根堆和一个小根堆,其中小根堆中每个数都不小于大根堆中的最大值。枚举区间的起点,依次向后加入数,只需控制大根堆中数的个数小于等于小根堆的个数。那么大根堆中最大的数就是中位数,大根堆中所有数的和就是小于中位数的所有数的和。具体实现请看标程。

复杂度:O(N2logN+M)

期望得分:100

 

 

 

中位数的题目

   1626  1627

       

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值