- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OI学习资料
第一章简单骗分 1
第二章简单搜索 4
第三章动态规划与贪心入门 6
第四章简单图论 10
第一章 作者——askl123
骗分入门:
相信各位学弟学妹已经对 OI 有所了解了,那么初级骗分这种概念肯定也在第
一次 NOIP (或在其他地方)有用到过吧!但是为了整个“书”的完整性,还是简单介
绍一下骗分这种东西,那么开始:[已经了解者可以翻页左转]
例 1:
(NOIP2011 统计单词数)其中题目省略,请看输出描述最后一句话:“则直接
输出一个整数-1”。这时我[们]心中默默地笑了,随手打出一段程序,深藏功与名!
BEGIN
Writeln( ‘-1);
End;
[BEGIN 大写是笔者的习惯,求轻喷]
相比这种最初级的骗分方法已经无法满 ♂足大家的需求了……那么就来第二发
吧!!
例 2:
(noip2012 国王游戏)恰逢 H 国国庆,国王邀请n 位大臣来玩一个有奖游戏。
首先,他让每个大臣在左、右手上面分别写下一个整数,国王自己也在左、右手上各
写一个整数。然后,让这 n 位大臣排成一排,国王站在队伍的最前面。排好队后,所
有的大臣都会获得国王奖赏的若干金币,每位大臣获得的金币数分别是:排在该大臣
前面的所有人的左手上的数的乘积除以他自己右手上的数,然后向下取整得到的结果。
国王不希望某一个大臣获得特别多的奖赏,所以他想请你帮他重新安排一下队伍的顺
序,使得获得奖赏最多的大臣,所获奖赏尽可能的少。注意,国王的位置始终在队伍
的最前面。
那么现在假设我们不知道到底该怎么做这题(显然当时我确实毫无头绪),那
我又不想交个空程序,只是想简单的初级骗分!那我们怎么骗呢(虽然我没骗
到……)?我当时的想法是 找特例 ,也就是假设题目给的顺序恰好为得出正确答
案时的顺序,这样再来计算最大值就可以进行初级骗分了!!(虽然这个题我没骗到
分,但用这个方法在以前还是骗到过的,所以简单介绍一下,大家喜闻乐见一下就好
了)
例 3:
打表!!
[例题什么的就不用找了吧]
打表这种事是大家的常用手段,精髓的打表往往可以弥补算法上的漏洞!而且
各种奇葩数学题的部分分往往也可以用打表一笑而过 233。
可能这部分初级骗分我讲的不大好,选的例题也不好,但是还请大家见谅……
即使大家已经熟知了这些题的算法,我感觉这种初级骗分的东西在学校考试中还是经
常能用到的 233
那么初级骗分就到此为止了。
进击的骗分我的复杂度果然有问题:
[又是我的部分了,我也这一不知道会被放在哪里]
首先介绍一个概念:时间复杂度。简单来说就是算法的执行时间,即是
[这里实在不知道怎么打出来了……请见谅],但是这样的求和是在太繁琐了,我们想
要知道的只是最终的大概时间复杂度而已,那么我们就可以
1. 将常数省略:通俗来讲就是 for 循环中的操作数量不计。
2. 对于 n^3+n^2 这个式子中 可以将 n^2 忽略不计,同理 n 相对于 n^2 克忽
略。
3. 对了 log 函数:底数是无所谓的,因为底数影响的只是常数时间。
4. 另注明:log 是个神奇的东西,是 二分 产生了它!! 也就是说二分是极
为重要的!
那么在大概了解了时间复杂度的估算方法之后,就再说一下 1s 内神机(钢哥机器
不算你懂的!)的运算水平
[上图引用于神队长 平神的 PPT
那么现在我们就可以通过数据范围来估算我们的正解算法的时间复杂度,从而
更接近于正解的思路!
另外对于空间复杂度这种东西就不必多讲了吧,相信钢哥一定在开课初期对这
方面做了很深 ♂度的讲解了(好吧我又无节操了是吧)。但是还有一个友情提示:
VAR
a:array[0..1000,0..1000] of longint;
BEGIN
文档评论(0)