2015年

阅读程序写结果

1.白痴计算题:模拟

2.指针题:模拟

3.求最大字符串长度题:看算法

4.递归题:画树

完善程序

1.双子序列最大和

①审题析题:初步观测算法,是对经典算法的延伸拓展,只要类比到最大子段和,基本上本题的算法核心与总方针就八九不离十,本道题是及其特殊的一道——对经典算法的延伸

②看注释,猜算法:重点是对于数组作用的注释的观察,这道题看到注释基本明白,是要使用二次的最大子段和来进行求解,故对于理解算法有很大帮助

③看程序,找突破:从上一步可知,两端程序的结构应当是相似的,所以可以使用类比的方法把上一段程序与下一段程序进行对比,从而得出结论

④填空与模拟检验:注意,填完空之后要进行检验

2.最短路径问题

对于这种题型,是一种比较特殊的题型,其特点就是直接将算法披露给你,为我们省去了前两步的步骤,而注释也非常给力,基本算法核心写出。但是对于此题最怕的就是不知道,不了解题目中所给的算法。所以①对于算法要更广泛地接触②掌握算法实现能力,实质上这道初赛题已经面向复赛了,是十分有意义的。

2014年

阅读程序写结果

1.找三的倍数题:模拟

2.递归:画树

3.字符串名次数组冒泡排序:模拟,特殊算法

4.约瑟夫问题:模拟,特殊算法

完善程序

1.双栈模拟数组:

①审题析题:算法直接出:纯模拟

②看程序,找突破:其实本道题再稍微从程序中看看就明白,是在考察对于栈的操作,这也是一类题型:对于栈、队列等STL中的特殊数据结构操作的考察,基本上这一条基线定了,本题就解了

2.最大子矩阵和

①审题析题:①暴力搜索②动态规划——经典算法:最大字段和。

②看注释:关于rowsum的注释直接可以看出本题①有大概率采用动态规划②采用前缀数组,这是对于算法猜测与前两空的填空的基础

③看程序,找突破:程序要一分为二来看:①是预处理,②是解决问题

预处理基本上是前缀数组的处理,只要看懂注释都没问题。而解决问题实质上突破口就在循环上。循环实质上实在暴力枚举所有的列,而行的和则通过最大子段和的方法以及前缀数组搞定。所以本道题真正的算法是:半暴力半动态规划。搞明白这一点问题也迎刃而解。

2013年

阅读程序写结果

1.回文串:看输入

2.数学问题:公倍数公因数问题:画维恩图

3.特殊算法:最长不降子序列

4.广度有限搜索

完善程序:

1.新题型:多种算法选择题目。

内涵:对于算法优化的执着追求。

解题思路:

①解析算法:朴素,移动交换,指针(易从程序中看出)

②填空:多看注释,掌握指针的使用方法即可

2.两元序列

①审题析题:类比最大字段和算法。

②看注释,猜算法:采用模拟的算法,其中有动态规划的思想

③看程序,填空:分析因果逻辑:如果能继续,就继续增加,不能,看看是两元序列中的哪一个,继续发散。

思考:是否可能实现多元的序列呢?待求解。

总结方法:

一般来说阅读程序写结果就几类:

1.模拟 解决方案:模拟

2.递推 解决方案:模拟

3.递归 解决方案:画树

4.各种STL应用,以及对于指针等特殊数据结构的掌握

5.经典算法:约瑟夫,最长不降子序列,最大子段和。解决方案:直接出解

6.字符串处理 解决方案:模拟

7.简单动态规划 解决方案:推导问题是什么

8.简单数学模拟 解决方案:同上

注意可以观察程序的结构与输入数据来判断程序要干嘛

完善程序:

1.简单图论

2.简单动态规划

3.比较繁杂的模拟

解决方案:

步骤一:①审题析题:很重要,一定要在大脑中打底稿,搞清楚这道题的大概方向与算法可能性

②看注释,猜算法:实际上猜算法从题目和注释之中一定要得出结论,否则在接下来的做题填空中将一头雾水

③看程序,找突破:找到一个好的突破口是非常必要的,所以下笔的第一笔一定要慎重啊,一步错很可能导致步步错。

④造数据,回带验:重新模拟程序运行以得到正确结论也是十分重要的。

NOIP提高组完善程序题目分析相关推荐

  1. 2018年NOIP普及组完善程序题2—右侧第一个更大值

    问题:右侧第一个更大值 对于一个1到n的排列P(即1到n中每一个数在P中出现了恰好一次),令qi为第i个位置之后第一个比Pi值更大的位置,如果不存在这样的位置,则qi = n+ 1.举例来说,如果n ...

  2. 津津的储蓄计划 NOIp提高组2004

    这个题目当年困扰了我许久,现在来反思一下 本文为博客园ShyButHandsome的原创作品,转载请注明出处 右边有目录,方便快速浏览 题目描述 津津的零花钱一直都是自己管理.每个月的月初妈妈给津津\ ...

  3. 第一届『Citric杯』NOIP提高组模拟赛 题解

    [官方题解]第一届『Citric杯』NOIP提高组模拟赛 题解 第一题 柠檬超市 这题是本次模拟赛的送分题.做法显然. 但是注意此题有一个陷阱: 注意W和C的规模都是10^9,所以如果直接用doubl ...

  4. 信息学奥赛一本通(C++版)NOIP提高组(1820-1829)

    信息学奥赛一本通(C++版)NOIP提高组目录 //1820 [题目描述] 我们可以用这样的方式来表示一个十进制数:将每个阿拉伯数字乘以一个以该数字所 处位置的(值减1)为指数,以10为底数的幂之和的 ...

  5. NOIP 提高组 复赛 历年 试题

    NOIP 提高组  复赛  历年 试题 NOIP 2017 提高组 复赛  试题 https://wenku.baidu.com/view/70de9e29854769eae009581b6bd97f ...

  6. {小结}2016.6.11【初中部 NOIP提高组 】模拟赛C

    2016.6.11[初中部 NOIP提高组 ]模拟赛C No.1!!! 100+33.3+10+90=233.3 23333 1298. 牛棚(graze2.pas/c/cpp) 题解 1299. 洗 ...

  7. 6271. 2019.8.4【NOIP提高组A】锻造 (forging)

    6271. 2019.8.4[NOIP提高组A]锻造 (forging)  (File IO): input:forging.in output:forging.out Time Limits: 15 ...

  8. 2018.12.08【NOIP提高组】模拟B组总结(未完成)

    2018.12.08[NOIP提高组]模拟B组总结 diyiti 保留道路 进化序列 B diyiti Description 给定n 根直的木棍,要从中选出6 根木棍,满足:能用这6 根木棍拼出一个 ...

  9. 2020.08.08【NOIP提高组】模拟:奶牛的图片 总结

    2020.08.08[NOIP提高组]模拟:奶牛的图片 总结 Description Farmer John希望给他的 N ( 1 ≤ N ≤ 100 , 000 ) N(1\leq N\leq100 ...

最新文章

  1. hibernate的实现原理
  2. UVALive - 3902 Network
  3. MyBatis 解决了什么问题?
  4. Go 超时引发大量 fin-wait2
  5. 计算机作文叙事,电脑争夺战叙事作文
  6. C++交换两个数组的前n个字节
  7. ENVI5.3.1使用Landsat 8影像进行典型地物光谱简单分析实例操作
  8. ImportError: cannot import name ‘XGBClassifier‘
  9. 打印机设置手动双面打印方法
  10. nat64 dns64 linux 内核支持,搭建NAT64/DNS6实现IPv4/v6转换
  11. [高级]pdf生成(可水印)、pdf预览(可分页)、pdf打印:全栈一条龙方案
  12. nginx学习-负载均衡-keepalived高可用-反向代理
  13. [精简]托福核心词汇62
  14. mysql 分数段_编写sql实现分数排名 mysql
  15. 九章算术 八:《方程》
  16. 阿里巴巴逆向js,request模块获取数据
  17. 迷宫之深搜回溯算法(B站)
  18. CorelDRAW 批量导出jpg文件的方法
  19. Flutter学习笔记(一)
  20. Apollo:参考线信息类ReferenceLineInfo

热门文章

  1. 安装oracle11g数据库问题,linux 6.3安装Oracle11.2 R2数据库问题汇总
  2. 是什么的简称_什么是“KDJ”?通俗易懂,让你了解股市上的那些英文简称
  3. 【相机标定与三维重建原理及实现】学习笔记1——相机模型数学推导详解
  4. IOS 和安卓系统比较
  5. 智能家居和建筑行业调研报告 - 市场现状分析与发展前景预测
  6. uniq命令注意事项,检查重复行的时候,只会检查相邻的行。
  7. RustDesk 自建服务器,局域网可以连接服务器,外网就不可以了。 求高手指点迷津。
  8. WiFi - 为啥WiFi信号的总是这么差?【附:解决方案】
  9. facewarehouse
  10. 旷视face++,图像识别