首页 > 其他分享 >济南 CSP-S NOIP 储备营笔记

济南 CSP-S NOIP 储备营笔记

时间:2023-09-29 10:23:03浏览次数:38  
标签:二分 简要 NOIP 笔记 作业题 枚举 火柴 例题 CSP

Day 1 上午 —— 基础算法

模拟 + 枚举

小前言

碰到题目不会做 -> 先写个模拟压压惊()

枚举法

枚举的思想是不断地猜测,从所有可能的集合中一一尝试,然后再判断是否符合题目的条件。

单独提到枚举时我们往往认为这是一个暴力做法,但事实上并非如此,恰当的枚举往往会是解题的关键步骤。

例题 1 : 枚举优化 —— 质数判断

  • 简要题面

    给定一个数 \(x\),判断 \(x\) 是不是质数。

  • 朴素枚举算法

  • 优化

  • 其余优化

P1149 [NOIP2008 提高组] 火柴棒等式

  • 题目链接

    P1149 [NOIP2008 提高组] 火柴棒等式

  • 简要思路

    for 循环 + check 判断。

    首先枚举计算所有的数所需要的火柴数量(设立数组 \(g\),\(g_i\) 代表 \(i\) 这个数所需要的火柴数)。

    注意到火柴数最多为 \(24\) 根,去掉加号和等号的 \(4\) 根火柴,所以我们最大的等式就是 \(1111 + 1111 = 2222\),所以只需要枚举每个答案,然后验证答案即可。

  • 完整代码

P1115 最大子段和

P1638 逛画展

  • 方法

    区间伸缩/尺取法

    桶。

作业题 1:P3143 [USACO16OPEN] Diamond Collector S

模拟法

模拟就是用计算机来模拟题目中要求的操作。

模拟题目通常具有码量大、操作多、思路繁复的特点。由于它码量大,经常会出现难以查错的情况,如果在考试中写错是相当浪费时间的。

P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布

P1563 [NOIP2016 提高组] 玩具谜题

模拟题小技巧

做模拟题的步骤:

  1. 先看懂题意,过一下样例;

  2. 在动手写代码之前,在草纸上尽可能地写好要实现的流程;

  3. 在代码中,尽量把每个部分模块化,写成函数等;

  4. 对于一些可能重复用到的概念,可以统一转化,方便处理;

  5. 调试时分块调试。模块化的好处就是可以方便的单独调某一部分;

  6. 写代码的时候一定要思路清晰,不要想到什么写什么,要按照落在纸上的步骤写。

作业题 2:P1042 [NOIP2003 普及组] 乒乓球

作业题 3:P2670 [NOIP2015 普及组] 扫雷游戏

作业题 4:P3952 [NOIP2017 提高组] 时间复杂度

二分

定义

在一个单调的有限数列上快速查找某一特定值的方法。

例题 2:二分基础题(1)

  • 简要题面

    给你一个单调递增的数组,给你一个数 \(x\),问第一个 \(>x\) 和第一个 \(\geq x\) 的数分别是多少。

  • 代码找茬

  • 保守写法

例题 3:二分基础题(2)

  • 简要题面

    求一个正整数 \(X\) 开三次根后的结果,保留六位小数。

    假设大家不知道 pow,只知道 sqrt()。

  • 简要思路

    二分答案(二分答案限制:假设一个数 \(x\) 满足性质,那么所有 \(\geq x\)/\(\leq x\) 的数都满足条件)。

    左边界 \(l=0\),右边界 \(r=x+1\)。

例题 4:二分基础题(3)

  • 简要题面

    有两个长度为 \(n\) 的数组 \(a\) 和 \(b\),生成一个 \(n \times n\) 的数值表,表中第 \(i\) 行第 \(j\) 列的数为 \(a_i \times b_j\),求表中第 \(k\) 小的数值是多少?

标签:二分,简要,NOIP,笔记,作业题,枚举,火柴,例题,CSP
From: https://www.cnblogs.com/CheZiHe929/p/17736820.html

相关文章

  • 读高性能MySQL(第4版)笔记17_复制(下)
    1. 复制切换1.1. 复制是高可用性的基础1.1.1. 总是保留一份持续更新的副本数据,会让灾难恢复更简单1.2. “切换副本”(promotingareplica)和“故障切换”(failingover)是同义词1.2.1. 意味着源服务器不再接收写入,并将副本提升为新的源服务器1.3. 计划内切换1.3.1. 常......
  • 学习笔记4
    第7章文件操作——教材知识点归纳7.1文件操作级别在Linux中,文件操作可以分为五个级别,从最底层到最高层分别如下:硬件级别:这一级别包括诸如fdisk(用于分区)、mkfs(用于格式化磁盘分区)、fsck(用于检查系统)以及碎片整理(用于压缩文件系统中的文件)等操作。内核级别的文件系统函......
  • Linux第7、8章学习笔记
    第七、八章学习笔记第七章文件操作文件操作级别文件操作分为五个级别,按照从高到低的顺序如下:(1)硬件级别:硬件级别的文件操作包括:fdisk:将硬盘、U盘或SDC盘分区。mkfs:格式化磁盘分区、为系统做好准备。fsck:检查和维修系统。碎片整理:压缩文件系统中的文件。大多数是......
  • 洛谷 P7075 [CSP-S2020] 儒略日
    P7075[CSP-S2020]儒略日1.题目描述为了简便计算,天文学家们使用儒略日(Julianday)来表达时间。所谓儒略日,其定义为从公元前4713年1月1日正午12点到此后某一时刻间所经过的天数,不满一天者用小数表达。若利用这一天文学历法,则每一个时刻都将被均匀的映射到数轴上,从而得以......
  • 《软件工程:一种实践方法》读书笔记二
    读完本书后,我深刻认识到了软件工程的重要性。软件工程不仅仅是一套流程和工具,更是一种系统的思维方式和态度。通过本书所提供的实践方法,我们可以更好地进行软件开发和维护,提高软件质量,降低维护成本。同时,本书也让我明白了软件工程师的责任感和使命感。作为软件工程师,我们需要时刻......
  • Linux第七、八章学习笔记
    第七、八章学习笔记第七章文件操作文件操作级别文件操作分为五个级别,按照从高到低的顺序如下:(1)硬件级别:硬件级别的文件操作包括:fdisk:将硬盘、U盘或SDC盘分区。mkfs:格式化磁盘分区、为系统做好准备。fsck:检查和维修系统。碎片整理:压缩文件系统中的文件。大多数是......
  • 学习笔记4 第七八章的自学归纳
    第7章文件操作文件操作五个级别1.硬件级别:普通用户不会接触,但它是创建和维护系统不可缺少的工具fdisk、mkfs、fsck2.操作系统内核中的文件系统函数每个操作系统内核均可为基本文件操作提供支持。在类unix函数中前缀k表示内核函数3.系统调用用户模式程序使用系统调用来访问......
  • 信息安全系统设计与实现——学习笔记4
    任务详情:自学教材第7,8章,提交学习笔记(10分)Part1知识点归纳&GPT提问知识点归纳chap7文件操作级别硬件级别fdiskmkfsfsck碎片整理操作系统内核中的文件系统函数系统调用I/O库函数用户命令sh脚本文件I/O操作低级别文件操作分区Command(mforhelp):m---......
  • 信息安全系统设计与实现 学习笔记4
    文件操作文件操作级别硬件级别:fdisk将硬盘、U盘或SDC盘分区。mkfs:格式化磁盘分区,为系统做好准备。fsck:检查和维修系统。碎片整理:压缩文件系统中的文件。操作系统内核中的文件系统函数kmount(),kumount()kmkdir(),krmdir()系统调用用户模式使用系统调用来访问内核函数......
  • CSP-J/S 2023 游记
    \(9.16\)初赛。\(9:00\)就到了振万教学楼,休息了一下,准备去\(5\)楼考场。\(9:05\)到了考场门口,发现教室里面已经开了空调,但xxs们都不进去,6。于是我第一个进了考场。\(9:30\)总算看到试题卷了,好像除了第\(4,10\)题都很简单。\(10:20\)做完了卷子,开始检查。\(11:30\)......