NOIP 口胡
因为没准备啥东西 这两天口胡一下近年 NOIP 的题
大概会一道不落?没什么很寄的考点主要是
2021
T1 报数
打一个 \(O(\log n)\) 查询 \(n\) 中是否有 \(7\),打一个类埃式筛筛掉所有倍数。然后可以 lower_bound
也可以直接记录下一个数是多少。
总时间复杂度小常数 \(O(n \log n)\)。
T2 数列
发现数据范围小,考虑直接 dp。由于一堆 \(2^a\) 时需要进位,我们设计状态 \(f(i,j,k,p)\) 为 当前到了 \(S\) 中的第 \(i\) 位,到了 \(a\) 中的第 \(j\) 位,\(S\) 的二进制表示下有 \(k\) 个 \(1\),同时该位需要向下一位进位 \(p\) 的情况下,所有乘积之和。
考虑枚举一个值 \(v\),一个出现次数 \(t\)。然后 \(f(i,j,k,p)\) 可以向 \(f(i+1,j+t,k+(t + p) \& 1, (t + p) / 2)\) 转移,系数是 \(v^t \times \binom{n-j}{t}\)。
最后统计答案时 \(k + \text{popcount}(p)\) 小于给定的 \(k\) 时能计入。
总时间复杂度 \(O(n^4m)\) 的。最好写成刷表的形式。或者记搜?
T3 方差 术劣
简单化柿子得到需要最小化 \(n\sum_{i=1}^na_i^2 - \left(\sum_{i=1}^na_i\right)^2\)。
你像这种有奇怪操作的题,他的套路就是通过一些变换(缀和/差分/邻位异或/特征异或)把操作转成正常操作。一般顺着试一遍大概就出来了。这题是差分。
发现操作就是交换差分的两项。
不是很会推式子,但总而言之最终需要让差分呈现单谷的情况。似乎打完爆搜能搜出来?
首先 sort 一下差分序列。从小到大考虑每个值该放在左边还是右边最优。
设 \(f(i,x)\) 为当前需要放第 \(i\) 个差分 \(d_i\),\(\sum_{i=1}^na_i = x\) 时的 \(\sum_{i=1}^na_i^2\) 最小值。考虑放在左右两侧的情况。放在左侧就是 \(f(i,x) + i\times d_i^2 + 2d_i\times x \to f(i+1,x+i\times d_i)\),右侧就是 \(f(i,x) +\left(\sum_{j=1}^id_i\right)^2\to f(i+1,x+ \sum_{j=1}^id_i)\)。哦我还能记录一下差分的和是吧
最后取 \(\min_{i=0}^{sum}(n \times f(n, i) - i^2)\) 就是答案。
发现一个事,这样是 \(O(n^2\times \max a_i)\) 的,会炸。但是由于 \(a_i\) 升序,差分中不为 \(0\) 的项是 \(\min\{\max a_i, n\}\) 的。删除无用状态后做到 \(O(n\times\max a_i\times \min\{\max a_i, n\} )\)。
T4 棋局
……
会 但是不想说也不想写
一类边暴力 二类边用并查集维护连续段和段端点 三类边用线段树合并 每个连通块维护连通块边上的棋子的黑白性和等级
跳了
2020
T1 排水系统
希望场上会写高精
不考虑高精的话直接拓扑排序维护 dp 即可。
我记得 noip 可以用 __int128
来着
T2 字符串匹配
反正我上来思考的方式是 \(O(26n + n\log n)\)。
首先记录前缀和后缀的每个位置中出现奇数次的字符的数量以及这个的前缀和。然后可以直接枚举 \(|AB|\) 的长度,每次往前蹦一格,看 \(C\) 里出现奇数次的字符的数量,查询有几个 \(A\) 满足条件,加入即可。
总时间复杂度似乎是 \(O(26n + n\log n)\) 的。
T3 移球游戏
不会。
会个 \(n=2\) 暴力。首先有一种操作是把一个栈 \(X\) 里给定的颜色提到最顶上。我们需要一个空栈和一个满栈。设给定的颜色个数为 \(x\),我们先把满栈里的 \(x\) 个元素扔到空栈里面,再依次将 \(X\) 弹空。如果当前弹出的是给定颜色则扔进原来满的栈里,反之扔进原来空的栈里。最后先把原来空的栈里的元素弹进 \(X\) 里,再把原来满的栈里的元素弹进 \(X\) 里,满栈复位,完成。
这样也能把颜色提到最底下。总操作数是 \(2n + 2x\) 的。
然后对颜色分治。首先将 \(\le mid\) 的颜色置成 \(1\),其他颜色置成 \(0\)。把一个颜色提出来后分治即可。
总操作次数约为 60w 次。可以通过此题。
T4 微信步数
第一个观察是直接枚举点来移动的复杂度绝对炸掉。考虑每次操作后能接着移动的点都是一个 \(k\) 位超立方体,维护这玩意就行。
第二个观察是第一轮过后每一轮只要能结束那么对超立方体边界的减少量是相似的。可以列出式子求和。
我们设能走满 \(k\) 轮,求和得到的结果是 \(\sum_{i=1}^n \sum_{x=0}^k f(x)\)。\(f(x)\) 是个 \(i + 1\) 次多项式,系数可以直接插出来。
拉插:\(f(x) = \sum_{i=1}^n f(x_i) \prod_{j\neq i}\frac{x - x_j}{x_i - x_j}\)。
然后我们就只需要做一下 \(i\) 次方前缀和了。暴力即可。或者也可以伯努利数做,但这就不是 NOIp
而是 noip
了。
2019
?您在期待什么
2019 年没有 NOIp
2018
D1T1 铺设道路
好吧没想到最简单的做法
首先你这个肯定贪心地在填右边的时候填左边,因此假设 \(a_0 = 0\),我们有答案即为 \(\forall \ 1\le i\le n\ \land \ a_i > a_{i-1}, a_i - a_{i-1}\)。
D1T2 货币系统
背包。
贪心地 sort 一下,从小到大跑值域上的背包。如果已经被拼出来了就扔掉,反之不扔。
D1T3 赛道修建
听说很厉害的贪心,为什么我看着像 sb 题?
首先二分。然后把孩子里的链拼合。由于一条边只能被经过一次,所以选孩子里没被选的最长链传给父亲接着决策就行了。
每次看当前决策的链里有没有大于 \(\text {mid}\) 的和拼起来大于 \(\text{mid}\) 的。第一类直接删,第二类对最小值二分即可。
D2T1 旅行
不会 log 解法。
树上简单。把你的 vector sort 一遍就完了。
基环树上简单。枚举不走哪条边再 sort 你的 vector 就完了。
D2T2 填数游戏
是个打表找规律题。
首先打表可以发现 \(f(n,m) = f(m,n)\)。这点的构造是翻转每一位,矩形旋转 90°,左右翻转。
然后打表可以发现 \(f(1,m) = 2^m\)。这点……显然。
最后打表可以发现当 \(m > n + 1\) 时 \(f(n,m) = 3\times f(n,m-1)\)。证明不会(
之后去学学(
D2T3 保卫王国
听说是个 ddp?
NOIP 口胡的更多相关文章
- NOIP2016考前做题(口胡)记录
NOIP以前可能会持续更新 写在前面 NOIP好像马上就要到了,感觉在校内训练里面经常被虐有一种要滚粗的感觉(雾.不管是普及组还是提高组,我都参加了好几年了,结果一个省一都没有,今年如果还没有的话感觉 ...
- Topcoder口胡记 SRM 562 Div 1 ~ SRM 599 Div 1
据说做TC题有助于提高知识水平? :) 传送门:https://284914869.github.io/AEoj/index.html 转载请注明链接:http://www.cnblogs.com/B ...
- 口胡FFT现场(没准就听懂了)&&FFT学习笔记
前言(不想听的可以跳到下面) OK.蒟蒻又来口胡了. 自从ZJOI2019上Day的数论课上的多项式听到懵逼了,所以我就下定决心要学好多项式.感觉自己以前学的多项式都是假的. 但是一直在咕咕,现在是中 ...
- BZOJ 口胡记录
最近实在是懒的不想打代码...好像口胡也算一种训练,那就口胡把. BZOJ 2243 染色(树链剖分) 首先树链剖分,然后记录下每个区间的左右端点颜色和当前区间的颜色段.再对每个节点维护一个tag标记 ...
- Atcoder/Topcoder 口胡记录
Atcoder/Topcoder 理论 AC Atcoder的❌游戏示范 兴致勃勃地打开一场 AGC 看 A 题,先 WA 一发,然后花了一年时间 Fix. 看 B 题,啥玩意?这能求? 睡觉觉. e ...
- 关于有向图走“无限次”后求概率/期望的口胡/【题解】HNCPC2019H 有向图
关于有向图走"无限次"后求概率/期望的口胡/[题解]HNCPC2019H 有向图 全是口胡 假了不管 讨论的都是图\(G=(V,E),|V|=n,|E|=m\)上的情况 " ...
- 「口胡题解」「CF965D」Single-use Stones
目录 题目 口胡题解 题目 有许多的青蛙要过河,可惜的是,青蛙根本跳不过河,他们最远只能跳 \(L\) 单位长度,而河宽 \(W\) 单位长度. 在河面上有一些石头,距离 \(i\) 远的地方有 \( ...
- PKUSC 2022 口胡题解
\(PKUSC\ 2022\)口胡题解 为了更好的在考试中拿分,我准备学习基础日麻知识(为什么每年都考麻将 啊啊啊) 首先\(STO\)吉老师\(ORZ,\)真的学到了好多 观察标签发现,这套题覆盖知 ...
- 「线性基」学习笔记and乱口胡总结
还以为是什么非常高大上的东西花了1h不到就学好了 线性基 线性基可以在\(O(nlogx)\)的时间内计算出\(n\)个数的最大异或和(不需要相邻). 上述中\(x\)表示的最大的数. 如何实现 定义 ...
- 「浙大ACM」图森未来杯游记一篇以及简易口胡题解
前言 蒟蒻有参加了ACM比赛,这一次有适合HY和慕容宝宝大佬一起比的,他们好巨啊,把我带飞了. 又是窝掌机,QAQ,他们仗着自己巨,就欺负窝... 我又打了\(4\)个小时的代码,而且那个键盘太恶心了 ...
随机推荐
- 【WPF】实现动态切换语言(国际化)以及动态换肤功能
前言:以下内容,手把手从搭建到最终实现,完成多语言切换以及换装功能. 本地系统环境:win 10 编译器环境:VS2022 社区版 .NET 环境: .NET 6 1.新建一个WPF项目 2.新建完毕 ...
- Kubernetes(K8S)特性有哪些?
Kubernetes简介 Kubernetes是一个开源的,用于管理云平台中做个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单且高效,Kubernetes提供了应用部署,规划 ...
- 入门Python,看完这篇就行了!
转载请注明出处️ 作者:测试蔡坨坨 原文链接:caituotuo.top/3bbc3146.html 你好,我是测试蔡坨坨. 众所周知,Python语法简洁.功能强大,通过简单的代码就能实现很多实用. ...
- 使用filebeat过滤掉部分字段
host,agent,ecs三个字段也是不让drop的 processors: - drop_fields: fields: ["log","input",&q ...
- CentOS无法识别NTFS格式U盘完美解决方案
问题描述:CentOS上无法识别NTFS格式的U盘 解决方案: # 进入yum目录 cd /etc/yum.repos.d # 下载阿里的epel wget http://mirrors.aliyun ...
- mac通过docker一键部署Jenkins
目录 mac通过docker一键部署Jenkins 一.前言 二.系统配置 三.安装步骤 Dockerhub查看镜像地址 1.一键安装 1.1.下载脚本 1.2.安装程序 1.2.1.安装程序详情 1 ...
- C#-6 运算符和语句
一 运算符重载 可以重定义或重载 C# 中内置的运算符. 重载运算符是具有特殊名称的函数,是通过关键字 operator 后跟运算符的符号来定义的. public static Box operato ...
- RAID5 IO处理之replace代码详解
1 作用 从字面意思理解,replacement即是替换.我们知道硬盘都有一定的使用寿命,可以在硬盘失效之前通过该功能将就盘的数据迁移至新盘.因为replacement的流程是从旧盘中读出数据直接写入 ...
- 18.MongDB系列之批量更新写入Python版
在实际的工作中,难免批量更新的数量极大,pymongo提供了便捷的客户端供使用 假设读者对pandas比较熟悉,下图为事先准备好的dataframe import pandas as pd from ...
- go-zero docker-compose 搭建课件服务(五):完善user服务
0.转载 go-zero docker-compose 搭建课件服务(五):完善user服务 0.1源码地址 https://github.com/liuyuede123/go-zero-course ...