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\)个小时的代码,而且那个键盘太恶心了 ...
随机推荐
- 跟我学Python图像处理丨关于图像金字塔的图像向下取样和向上取样
摘要:本文讲述图像金字塔知识,了解专门用于图像向上采样和向下采样的pyrUp()和pyrDown()函数. 本文分享自华为云社区<[Python图像处理] 二十一.图像金字塔之图像向下取样和向上 ...
- Java SE 6、super关键字,包
1.super关键字 super代表父类的引用,用于访问父类的属性,方法,构造器 super可以访问父类的属性,但不能访问父类的 private 属性 super.属性名; 可以访问父类的方法,不能访 ...
- 《吐血整理》高级系列教程-吃透Fiddler抓包教程(23)-Fiddler如何优雅地在正式和测试环境之间来回切换-上篇
1.简介 在开发或者测试的过程中,由于项目环境比较多,往往需要来来回回地反复切换,那么如何优雅地切换呢?宏哥今天介绍几种方法供小伙伴或者童鞋们进行参考. 2.实际工作场景 2.1问题场景 (1)已发布 ...
- 关于AWS基于AMI还原实例后不能通过口令密码ssh登录的解决方法
最近笔者在工作中,通过备份的AMI,还原创建实例后,发现不能使用密码口令登录,登录时会报如下错误: [root@localhost ~]# ssh qq_5201351@13.250.125.37 W ...
- 为Azure-云准备一个基于Red Hat 8.x 的虚拟机镜像
由于公司最近要求部分项目上线到Azure云上,要求操作系统使用的Redhat 8.x,而且必须加固 而在Azure官网提供的镜像中,又没有Redhat,于是只有自己自定义Redhat镜像,最后加固,作 ...
- springboot H2 linux下搭建使用
这次研究是H2数据库了,关键还是再Linux下进行搭建部署的,被这个数据库快弄死了弄了4天时间,现在大致可以用了,还有些细节需要修正. 我这边使用的是springboot集成模式.直接使用代码启停方式 ...
- 5.ElasticSearch系列之文档的基本操作
1. 文档写入 # create document. 自动生成 _id POST users/_doc { "user" : "shenjian", " ...
- 驱动开发:Win10内核枚举SSDT表基址
三年前面朝黄土背朝天的我,写了一篇如何在Windows 7系统下枚举内核SSDT表的文章<驱动开发:内核读取SSDT表基址>三年过去了我还是个单身狗,开个玩笑,微软的Windows 10系 ...
- react.js+easyui 做一个简单的商品表
效果图: import React from 'react'; import { Form, FormField, Layout,DataList,LayoutPanel,Panel, Lab ...
- jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上
jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上 1.JavaBean的使用 package com.zheng; public class BookBean { ...