NOIP 赛前模拟总结(第二周)

10.30

感觉最近状态都不是很好,每次打完简单题就想不到后面的题的方法了,只能打部分分……

要调整好状态,虽然考完 CSP 了,但是真正的考验在 NOIP,我要做好准备,不能再跟去年一样了……

第二题想到正解之后已经来不及打代码了,说明我现在无论从思考速度还是代码实现速度来说都还有很多的不足,希望我能尽快调整好状态。

10.31

今天的感觉大部分人衡中后三题都打的暴力。

当我发现我不能实现满分的时候,或者实在是没有思路的时候,一定要先保证自己的部分分要打的尽量的多,而不是死磕正解,最后只能打少量的部分分。

当我准备死磕一道题前,一定要确保拿完所有题当前情况能拿的最高分再开始死磕,这样子才能使得自己的分数最大化。

11.1

总结

今天后面两题很难,于是我没有多想,及时的放弃了后面的两题,而是把时间花在了第二题,我觉得这一场我对自己的策略还是执行的比较好的。

唯一的缺点就是想做法的时候总是容易忽略很多种及其特殊的情况,或者说根本没有考虑全面,就像今天的第一题,我的代码只能应付部分情况,但我还以为它是对的,这暴露了我在思考问题时还是不够全面,并且考试的时候也没有打对拍去检查。

我要加强对拍的习惯,以后做完每道题,只要能打暴力,就一定要打暴力对拍,这样就能增加自己代码的正确性,及时发现错误,及时更正。

T1

题目的大概意思就是让你求出序列 a a a 中有多少个子区间满足这个区间中的数的所有值域连续段的长度不超过 k k k

这道题我考场上很快想出来了一个做法,就是倍增,记录从每个点开始,最早出现从 a i a_i ai a i + 2 j a_i + 2^j ai+2j a i a_i ai a i − 2 j a_i - 2^j ai2j 的位置。

但是我在处理的时候忘记考虑有可能就是先出现 a i + 2 a_i + 2 ai+2,再出现 a i + 1 a_i + 1 ai+1 的情况了,所以考场的做法寄掉了。

但是我打完这道题后觉得这道题很简单,并没有花费时间去打这道题的暴力然后去对拍,而是想的留下多一点的时间去想后面的题,如果有时间再说。

T2

题目的大概意思就是让你维护一个数据结构,这个数据结构有两个操作,分别是插入一个数和随机弹出一个不是最大值的数,然后让你求对于每一个操作,如果当前操作是插入则求这个数被删除的位置的期望,如果当前操作是随机弹出一个不是最大值的数,则求出弹出的数的期望。

考场上大部分的时间都拿出来想这道题了,因为这道题的大概思路很好想,就是顺着求出弹出的期望和逆着求出插入的期望,但是弹出操作的细节很恶心,我也是调试了挺久才调出来的。

T3

题目的大概意思就是给你一个二维图,它从左到右可以分成 n n n 列,每列高为 a i a_i ai 。对于每一列,又可以从下到上分为 a i a_i ai 块,并且最上面一块权值为 1 1 1,从上到下权值依次加 1 1 1,其他地方的权值为 0 0 0,然后你要将这个二维图分为多个矩形,每一个矩形内部不能有权值为 0 0 0 的块,必须有权值为 1 1 1 的块,每个矩形的代价是当前矩形中最大的值,求如何划分使得总代价最小。

我看完这道题也是没有任何思路,于是我并没有过多的思考这道题,而是直接打了暴力,将更多的时间花费在第二题上。

这道题的大概思路就是 DP 去解决问题,DP 的时候写一个哈希记搜就可以了。

T4

题目的大概意思就是给你一个由 0 0 0 1 1 1 2 2 2 a a a b b b c c c ? ? ? 组成的字符串,其中 ? ? ? 可以变成 0 0 0 1 1 1 2 2 2 a a a 可以变成 0 0 0 1 1 1 b b b 可以变成 0 0 0 2 2 2 c c c 可以变成 1 1 1 2 2 2,对于每一对 l l l r r r,求有多少种方案使的对于 l l l r r r 的字符串满足恰好有奇数个满足其本质不同的子序列的个数为奇数个的子串。

考场上看完题后一点思路没有……

正解似乎是维护等价类的大小,然后套一个猫树。

没学过猫树……

11.2

总结

今天的题相对于之前比较简单,主要是被第三题的大样例坑了一把,以后要注意当大样例没过的时候不一定是自己的代码问题,有可能是大样例的问题。

但是对于自己的策略执行还不是很到位,有时候一调起代码就忘记了所有的策略,这个还需要努力去改变,每次不管是打模拟赛还是打正式的比赛,一定要严格按照自己指定的策略去打,而不是乱打一气,这样才能使自己的每一次考试都不会太差。

现在的我对于一些比较常见的技巧还是不能很快反应过来,总是要思考一会才能想到,说明我还需要做更多的题,积累和运用更多的技巧,加快自己思考的速度。

T1

题目的大概意思就是给定一个正整数 k k k,判断是否存在 n n n 满足 n 2 n^2 n2 k k k 的倍数, n n n 不是 k k k 的倍数,如果存在求出最小的 n n n

这道题非常的简单,考场一下就想到了,也迅速的打了出。

正解就是如果 k k k 有平方因子,则存在 n n n,然后枚举 k k k 的质因子,答案只取质因子个数的一半。

T2

给定一个只包含 1 1 1 9 9 9 的数列 a a a,当满足 g c d ( a i , a i + 1 ) = 1 gcd(a_i, a_{i + 1}) = 1 gcd(ai,ai+1)=1 时,可以交换 a i a_i ai a i + 1 a_{i + 1} ai+1,求你能得到多少种数列。

考场上刚开始想成图论了,想了挺久没想出来,就按照策略暂时放弃先看后面的题,回来再想的时候发现不用图论,想了一下转换,但还是最后推式子退错了,没有调出来……

正解就是分类讨论即可。

T3

题目的大概意思就是给你一个数列 x x x,再给你两个数 a a a, b b b,分别是将 x i x_i xi 变成 x i + 1 x_i + 1 xi+1 的代价和 x i x_i xi 变成 x i − 1 x_i - 1 xi1 的代价,让你求对于每一个 i i i,使得前 i i i x i x_i xi 相等的最小代价。

考场上想到做法后打了出来,发现没过大样例,调了很久,调到忘记了时间,也忘记了策略,这一点是非常不好的,如果调不出来最好先放一下,打完暴力,思考一下别的题目再回来调。

调了很久大样例觉得自己代码没问题,于是就检查了一下大样例,发现大样例不满足他给出的数据范围,改了一下就过了大样例……

但是最后被卡常数了……

正解就是用权值线段树维护,并且每一次最小代价变成的值一定在原数列上出现过,并且对于 i i i i + 1 i + 1 i+1 的变成的值 X i X_i Xi X i + 1 X_{i + 1} Xi+1 ∀ 1 ≤ j ≤ i + 1 \forall 1 \leq j \leq i + 1 ∀1ji+1,都不存在 m i n ( X i , X i + 1 ) < x j < m a x ( X i , X i + 1 ) min(X_i, X_{i + 1}) < x_j < max(X_i, X_{i + 1}) min(Xi,Xi+1)<xj<max(Xi,Xi+1),于是可以 O ( n l o g n ) O(n\ log\ n) O(n log n) 做。

T4

题目的大概意思就是给出一棵树,树上的每条边的边权为 1 1 1,长度为 d d d 的简单路径的代价为 2 d 2^d 2d,给你 q q q 个询问,每个询问给出 x x x y y y,求同时经过 x x x y y y 的所有简单路径的代价和。

其实这道题不算很难,但是由于第三题消耗太久时间,第二题也没调出来,最后也没有仔细的思考这一题。

正解就是用 Tarjan 求出 LCA 后求出树形 DP 和换根 DP 即可。

11.3

总结

今天感觉做了一场专题……

除了第一题简单,后面三题巨恶心的期望题,没有一道会做……

终于再一次体会到了罚坐的感觉……

发现自己期望实在是太差了,高斯消元都忘光了,看来要多花些时间在期望和数论的复习上了。

T1

题目的大概意思就是给你 n n n m m m,集合 S = { x ∣ 1 ≤ x ≤ n , ϕ ( x ) ≤ m } S = \{ x | 1 \leq x \leq n,\phi(x) \leq m \} S={x∣1xn,ϕ(x)m},两个人轮流从集合 S S S 中取数,每次选一个数 x x x,取出 x x x x x x 的因数,当一个人不能再取时输,求是否先手必胜。

一个博弈论,考场思考一下就想出来。

你可以发现如果 m = 0 m = 0 m=0 则先手必败,否则先手一定必胜,因为如果你先手选 1 1 1 必胜则选 1 1 1,否则假设先手选 1 1 1 后后手选 x x x 时后手必胜,则你先手开局时可以直接选 x x x,于是先手必胜。

T2

题目的大概意思就是给你一个 n ∗ m n * m nm 的黑白矩阵,每次你随机取一对数 x x x y y y,将以 ( 1 , 1 ) (1,1) (1,1) 为左下角, ( x , y ) (x,y) (x,y) 为右上角的矩形随机涂成黑色或白色,让你求从初始矩形到目标矩形的期望步数。

看到期望就寄……

考场上思考了一下想到了高斯消元的暴力,没想到正解,但是最后暴力没打出来……

正解就是先对于矩阵处理一下,变成如果当前位置为 1 1 1,则表示当前位置的右上角已变为目标矩阵的右上角,如果为 0 0 0 就是没变成目标矩阵的右上角,然后再高斯消元。

T3

题目的大概意思就是有一个 n ∗ m n * m nm 的网格,上面有 k k k 个格子有数,对于每个询问给出 r r r,随机的从网格中选 r r r 个点作为起始点,让你求出区分出每一个起始点的期望代价。其中你按照回形的方式探索地图,每走一步的代价是 1 1 1

考场上根本不会,并且觉得第二题简单点,于是并没有想很久。

正解是 DP,然后用多项式维护 DP,不是很会。

T4

题目的大概意思就是有 n n n 个盒子,对于每个盒子中有 k i k_i ki 个物品,从这个盒子中取出物品需要 c i c_i ci 的代价对于第 i i i 个盒子中每个物品的价值是 a i , j a_{i,j} ai,j,其中打开一个盒子概率取出物品,每一个物品被取出的概率为 p i , j p_{i,j} pi,j,你每次可以打开一个盒子,拿出物品后在确定下一步的策略,如果你采取最优策略,让你求取物品代价的期望值。

考场上觉得很难,直接放弃思考。

正解可以用 DP,只不过要维护一个支持单点修改和查询前缀乘积的数据结构来 DP,不是很会。

11.4

总结

今天是图论专场……

感觉今天发挥还不错,就是第三题想到的乱搞做法没分,这是比较遗憾的一点。

第二题他样例把所有的特殊情况都给了出来,如果没给我也没考虑到那些特殊情况,以后所有的题目打完后一定要测试一下特殊情况下有没有问题,需不需要特判。

今天也没什么要调题的地方,所以在执行策略上也没有太大的问题。

今天跟昨天的比赛一比较,感觉对于图论的掌握比昨天的数论和期望要好很多,复习图论的时间可以少一点,多复习一些其他自己掌握不牢固的知识点。

T1

题目的大概意思就是判断是否存在一棵树,满足它有 a a a 个度数为 1 1 1 的点和 b b b 个度数为 3 3 3 的点,如果存在请给出一个节点数不超过 2000 2000 2000 的构造,否则输出 0 0 0

这道题还是比较简单的,考场上也很快想到了,他样例也造的很强,把所有特殊数据都造出来了。

正解就是当 a < b + 2 a < b + 2 a<b+2 a = = b + 3 a == b + 3 a==b+3 时是不存在这样的树的,否则你每次将一个叶子结点增加两个儿子节点,使得度数为 3 3 3 的点的个数为 b b b,然后在根节点上连 a − b − 2 a - b - 2 ab2 个点就可以了。

注意特判一下 a = 0 a = 0 a=0 b = 0 b = 0 b=0 a = 2 a = 2 a=2 b = 0 b = 0 b=0

T2

题目的大概意思就是给一个连通有向图,每条边有一个正边权,然你找到从 1 1 1 n n n 的最小路径,其中一条路径的代价为 m a x i = 1 t i ⋅ w i max_{i = 1}^t i \cdot w_i maxi=1tiwi

考场刚开始想错方向了,先看后面的题后再回来看,就想到了正确的做法。

正解就是二分答案,然后判断能不能从 1 1 1 走到 n n n 即可。

T3

题目的大概意思就是给你一个简单无向连通图,你现在删掉若干条边,要最大化度数为奇数的点的个数,给出构造,如果有多种方案,输出保留的边尽量小的方案。

考场上没有想到很好的做法,想到的乱搞做法也没分。

正解就是先找出最大生成树,然后将其它的边保留,最后从编号小的边开始枚举最大生成树上的每一个点,判断保留它后能不能满足最大化度数为奇数的点的个数,能就保留,否则就删掉即可。

T4

题目的大概意思就是给你 n n n 个矩形,有 q q q 个询问,对于每个询问,给出一个矩形,求出 n n n 个矩形的并与询问的矩形的交的面积,询问强制在线。

看到题后一脸茫然,于是乎直接打了一个暴力跑路。

正解就是扫描线然后可持久化,不是很会。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/131441.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Magma构建灵活、低成本无线接入网

传统蜂窝网络一般基于特定接入技术并针对大规模公共网络设计&#xff0c;无法灵活适配小规模网络以及异构无线技术。本文介绍了Magma在构建低成本异构无线接入方面的探索。原文: Building Flexible, Low-Cost Wireless Access Networks With Magma 摘要 当今仍然有数十亿人受限…

深度好文|听懂这些逻辑,你会越变越好。

哈喽&#xff0c;大家好&#xff0c;我是雷工。 最近看了一篇文章&#xff0c;噱头很大&#xff0c;说是手把手的教你&#xff0c;如何从一个普通人&#xff0c;成长为身价千万的中产。 这种话我肯定是不信的&#xff0c;要么标题党&#xff0c;要么割韭菜&#xff0c;千万的中…

Verilog HDL语言基础知识

目录 Verilog HDL语言基础知识 6.1.2 Verilog HDL模块的结构 6.1.3 逻辑功能定义 6.2.1 常量 6.3 运算符及表达式 6.4.2 条件语句 Verilog HDL语言基础知识 先来看两个Verilog HDL程序。 例6.1 一个8位全加器的 Verilog HDL源代码 module adder8(cout,sum,ina,…

企业服务总线ESB有什么作用?和微服务有什么区别?会如何发展?

企业服务总线ESB是什么 下面这张图&#xff0c;稍微了解些IT集成的朋友应该不陌生。 随着信息化发展不断深入&#xff0c;企业在不同的阶段引入了不同的应用、系统和软件。这些原始的应用系统互不连通&#xff0c;如同一根根独立的烟囱。 但是企业业务是流程化的&#xff0c;…

VulnHub jarbas

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收藏…

11月5日,每日信息差

今天是2023年11月05日&#xff0c;以下是为您准备的18条信息差 第一、第六届进博会上海市交易团“首单”成交&#xff0c;达成3亿美元采购订单。据悉订单内容涉及有机硅产品&#xff0c;其中有一款改性二甲基硅液体&#xff0c;为亚太首发产品 第二、双十一第一波 快递公司转…

动态规划算法实现0-1背包问题Java语言实现

问题介绍&#xff1a; 动态规划算法&#xff1a; 动态规划&#xff08;Dynamic Programming&#xff09;是一种解决多阶段决策问题的优化算法。它通过将问题分解为一系列子问题&#xff0c;并利用子问题的解来构建更大规模问题的解&#xff0c;从而实现对整个问题的求解。 动态…

懒汉模式和饿汉模式

目录 单例模式 饿汉模式 懒汉模式 单例模式 所谓单例模式,就是在有些场景中,有些特定的类,只能创建一个实例(对象),当程序员不小心创建多个实例,就会出现编译报错. ★ 这种模式涉及到一个单一的类&#xff0c;该类负责创建自己的对象&#xff0c;同时确保只有单个对象被创…

基于java+springboot+vue城市轨道交通线路查询系统-公交车线路查询

项目介绍 本系统是针对目前交通管理的实际需求&#xff0c;从实际工作出发&#xff0c;对过去的市轨道交通线路查询系统存在的问题进行分析&#xff0c;完善用户的使用体会。采用计算机系统来管理信息&#xff0c;取代人工管理模式&#xff0c;查询便利&#xff0c;信息准确率…

希腊字母读音表

序号大写小写英文注音国际音标注音中文读音意义1Ααalphaa:lf阿尔法角度&#xff1b;系数2Ββbetabet贝塔磁通系数&#xff1b;角度&#xff1b;系数3Γγgammaˈɡmə伽马电导系数&#xff08;小写&#xff09;4Δδdeltadelt德尔塔变动&#xff1b;密度&#xff1b;屈光度5…

go语言 | grpc原理介绍(二)

gRPC gRPC 是一个高性能、通用的开源 RPC 框架&#xff0c;其由 Google 2015 年主要面向移动应用开发并基于 HTTP/2 协议标准而设计&#xff0c;基于 ProtoBuf 序列化协议开发&#xff0c;且支持众多开发语言。 由于是开源框架&#xff0c;通信的双方可以进行二次开发&#x…

关于编程不得不说的事

这些年&#xff0c;互联网爆炸式的发展&#xff0c;促生了无数程序员&#xff0c;也促生了大量 IT培训机构。短短数年间&#xff0c;科班出生的程序员和培训机构出生的程序员呈指数增长。程序员的职业也不再是金饭碗。写了这么多代码&#xff0c;有些感触&#xff0c;所以写下来…

Python--快速入门二

Python--快速入门二 1.Python数据类型 1.可以通过索引获取字符串中特定位置的字符&#xff1a; a "Hello" print(a[3]) 2.len函数获取字符串的长度&#xff1a; a "Hello" print(a) print(len(a)) 3.空值类型表示完全没有值&#xff1a; 若不确定当…

用户自定义消息及层次划分

有些人对术语 WM_USER 表示消息范围基的名称有不同的意见&#xff0c;因为 WM_USER 是由窗口类的实现者来定义的。他们抱怨的是&#xff0c;用户不能使用它们&#xff0c;因为它们属于窗口类定义的一部分。 但是&#xff0c;问题是&#xff0c;”这里的用户是谁&#xff1f;”…

IOS渲染流程之提交图层数据至RenderThread进程

大致链路 UIView/CALayer---->CoreAnimation./Core Graphics/Core Image---->GPU Drive-->GPU 图层树/视图树 一个UIView&#xff08;视图&#xff09;对应一个CALayer&#xff08;图层&#xff09;&#xff0c;CALayer对应显示的数据其有个content代表Bitamp&#…

循环队列练习

循环队列练习 相关内容&#xff1a; 1.队列顺序存储的不足 2.循环队列&#xff08;队列头尾相接的顺序存储结构&#xff09; //队列的初始化、入队、出队、取对头、计算队长度 #include<stdio.h> #define MAXSIZE 10 typedef int Status; #define OK 1 #define ERROR 0…

Java用log4j写日志

日志可以方便追踪和调试问题&#xff0c;以前用log4net写日志&#xff0c;换Java了改用log4j写日志&#xff0c;用法和log4net差不多。 到apache包下载下载log4j的包&#xff0c;解压后把下图两个jar包引入工程 先到网站根下加一个log4j2.xml的配置文件来配置日志的格式和参…

幂等性(防重复提交)

文章目录 1. 实现原理2.使用示例3. Idempotent注解4. debug过程 主要用途&#xff1a;防止用户快速双击某个按钮&#xff0c;而前端没有禁用&#xff0c;导致发送两次重复请求。 1. 实现原理 幂等性要求参数相同的方法在一定时间内&#xff0c;只能执行一次。本质上是基于red…

微信小程序获取剪切板的内容到输入框中

xml代码 <navigation-bar title"Weixin" back"{{false}}" color"black" background"#FFF"></navigation-bar> <view><input placeholder"请输入内容" name"content" type"text" …