NOIP模拟 22
剧情回放:xuefeng:考场上你们只打暴力不打正解,我不满意!
skyh:考场怒切T2以表明自己拥护xuefeng的决心
BoboTeacher:这场考试就没想让你们上100
神犇skyh:(笑而不语)
众蒟蒻:跪。
T1 数论
忘删调试信息跪了20。
正解运用了迭代收敛的思想..
首先$ d(x)=\pi (c_i +1) $表明$ d(x) $中各个质数的贡献是独立的
即:考虑了一部分质数之后,如果此时数x不优,那么将来加(乘)上其他质数相同的贡献之后仍然不优。
举例,$ d(x)=4,d(y)=5 $,那$ d(x)*2 $一定小于$ d(y)*2 $吧
所以分别考虑每个质数,具体做法:
0.开个数组$a$,初始只有一个数1.
1.进入迭代,枚举下一个质数$p$,用数组中每个数乘上它的次幂$p^c$塞到数组$b$,当然结果要在$M$以内
2.将b数组按原数大小排序,从头开始枚举,用堆维护 已经枚举到的数中前$K+1$大的约数个数,如果大于堆内所有元素就抛弃,否则塞进$a$并更新堆
3.检测到$a$数组多次迭代没有变化,结束循环,否则返回1
Ps:1.这是分别考虑每个质数的贡献,拓展可能为优秀解的数来找到更多的可能优秀解
2.堆的使用是根据题目定义,直接去掉目前不优的数的策略具有正确性
3.由于加入大质数是非常不优的,所以可能枚举到很小的p就结束了
神题。积累思想。
T2 位运算
天皇用脚切掉的题
首先注意到他只需要 构!造!出!一!组!可!行!解! 解没有限制,有就行
其次是否有解只与数中1的个数有关,和1的位置也无关。
所以可以dp判断有没有达到$cnt[c]$个1的可行解,然后疯狂构造就行
讨论,特判,考虑各种特殊情况,善用$min,max$。
T3 旅行
NC哥一眼艹掉的题
与其说是$DFS$,不如说是在$B$序列上$DP$,只不过是在树上转移罢了。
所以注定了$DFS$不再是板子..一切打板子的习惯都将被粉碎..
发现如果现在停一个点$B[id]$,且当前$DFS$序列与$B$的前$1~id$位全部匹配
若下一步走向点$t$且$t<B[id+1]$,那么可以确定此次$DFS$序列的字典序一定小于$B$序列
如果$t>B[id+1]$,则一定大于,不合法。
所以当$t!=B[id+1]$时,接下来的贡献都在这个地方解决了,不需要递归。
只有$t==B[id+1]$时,需要递归解决。
注意到当走完一个子树之后,可能目前的$DFS$序仍然与$B$匹配,还要重复执行这个过程。
所以$DFS$的主体是循环。
递归的过程,与其说是递归,不如说是状态的转移。
回溯的过程,与其说是回溯,不如说是回父亲找下一个状态。
根本不是搜索,不是换根树P,而是在树上转移的序列$DP$(胡绉)
每一次回到(或第一次到达)一个节点,都可以选择走序列的下一位(如果找的到的话)
或者走小于下一位的儿子。如果是后者,那么剩余的路径可以自由排列了。
注意,“剩余的路径”也是需要维护的。因为可能此时位置的其他儿子是之前走过的路径,是唯一确定的,不能参与排列。
注意,“剩余的路径”的总方案数很难确定。除了当前位置的儿子可以自由排列,排完之后父亲的儿子,爷爷的儿子,太爷的儿子...都解放了可以自由排列。
为了解决前者,对每个节点使用数据结构。观察到每个点对此贡献相同,只需维护个数。
为了解决后者,维护一个全局变量。观察到每从$a$走到$b$,只是让$a$处的阶乘降了一阶。又考虑到“剩余路径”的总方案是各个节点方案的乘积,不妨直接让全局变量除去$a$剩余儿子数,即可正确维护“剩余路径”的总方案。
考场上要大胆。
NOIP模拟 22的更多相关文章
- noip模拟22[d·e·f]
noip模拟22 solutions 哈哈哈,这次暴力打满直接190,其实不到哈哈哈,187.. 这次的题暴力极其好打,但是正解确实不简单... 打了好久才改完这个题,改完的时候爽暴了 这些一个字母的 ...
- [考试总结]noip模拟22
又发现模拟 \(22\) 的总结也咕掉了,现在补上它... 似乎又是gg的一场. 以为自己的部分分数打的很全,然而到后面发现自己的树剖打假了 \(\color{green}{\huge{\text{树 ...
- Noip模拟22 2021.7.21
T1 d 简化题意就是找到相对平均长宽的偏移量较大的矩形给他删掉 可以说是个贪心,按照a,b分别为第一关键字排序 然后假装删去要求的那么多个按a排序的较小的,然后再去b中, 找到 删去的a中的那几个矩 ...
- 2021.7.21考试总结[NOIP模拟22]
终于碾压小熠了乐死了 T1 d 小贪心一波直接出正解,没啥好说的(bushi 好像可以主席树暴力找,但我怎么可能会呢?好像可以堆优化简单找,但我怎么可能想得到呢? 那怎么办?昨天两道单调指针加桶,我直 ...
- NOIP模拟22
T1d 一道垃圾贪心,写个堆优化或者桶就行 1 #include<bits/stdc++.h> 2 #define int long long 3 using namespace std; ...
- NOIP 模拟22
这次考试真的是像教练说的真的挺难的,但是人家rank1还是100+, 但是咕咕蛊!
- NOIP 模拟 $22\; \rm f$
题解 \(by\;zj\varphi\) 对于一个数,如果它二进制下第 \(i\) 位为 \(1\),那么 \(\rm x\) 在这一位选 \(1\) 的贡献就是和它不同的最高为为 \(i\) 的数的 ...
- NOIP 模拟 $22\; \rm e$
题解 对于这个 \(abs\) 就是求大于 \(r\) 的最小值,小于 \(r\) 的最大值,建权值线段树或平衡树. 因为是 \(k\) 个点的联通块,就是求它们的 \(lca\) 到它们的链,可持久 ...
- NOIP 模拟 $22\; \rm d$
题解 很好的贪心题 考虑去掉的矩形一定是几个 \(a\) 最小的,几个 \(b\) 最小的,枚举去掉几个 \(a\),剩下的去掉 \(b\) 先对 \(a\) 排序,用小根堆维护 \(b\) ,记录哪 ...
随机推荐
- PHP 微信机器人 Vbot 结合 Laravel 基础入门及实例
新来了项目,需要能监听指定微信群的消息并进行转发.基于 PHP 7 的 web 微信机器人 Vbot 可以满足需求.Vbot 本质上就是实现了登录网页版微信来进行自动回复.群管理等等操作. githu ...
- yii2 对字段 自动加一 或 减一
用于数字类型,将值进行 累加 或者 累减 $count = 1, 就是加一 . $count = -1, 就是减一 . $effect = Model::updateAllCounters( [ ...
- java并发之内存模型
java内存模型知识导图 一 并发问题及含义 并发编程存在原子性.可见性.有序性问题. 原子性即一系列操作要么都执行,要么都不执行. 可见性,一个线程对共享变量的修改,另一个线程可能不会马上看到. ...
- SpringBootSecurity学习(23)前后端分离版之OAuth2.0 其它模式
密码模式 前面介绍了授权码模式和刷新令牌两种获取最新令牌的方法,下面来看一下其它模式.首先看密码模式,我们默认配置的三种模式中其实就包含密码模式的支持: 因此我们启动项目,直接使用密码模式即可,访问地 ...
- Faker——生成测试数据的PHP类库
工作上用的是TP框架,每次测试功能的时候都要手动添加测试数据,词穷起名总是起一些test1.test2这种low到爆炸的用户名,这让我很难受.稍微翻阅了一些资料,发现laravel有一个生成测试数据的 ...
- indexeddb:浏览器中的数据库
随着浏览器功能的不断加强,越来越多的网站开始考虑将大量的数据存储在客户端.这样的考虑是为了直接从本地获取数据,减少从服务器获取数据耗费的网络资源. 原有的浏览器数据存储方案都不适合存储大量数据.Coo ...
- Bran的内核开发教程(bkerndev)-01 介绍
介绍 内核开发不是件容易的事,这是对一个程序员编程能力的考验.开发内核其实就是开发一个能够与硬件交互和管理硬件的软件.内核也是一个操作系统的核心,是管理硬件资源的逻辑. 处理器或是CPU是内核 ...
- phpstorm 新加入项目的文件--全局搜索不到 ctrl + shift + R
通过文件名查找文件 ,能搜到其他的现有文件,只是新加入的文件,无法出现在搜索到的结果中 . 总不可能在搜索的关键词一直拼写错误吧 , 那能想到的只有缓存出问题了. 新加入的文件,新加入的文件.... ...
- Android Studio 1.5运行问题
Error:Unable to start the daemon process: could not reserve enough space for object heap.Please assi ...
- Mobius 反演与杜教筛
积性函数 积性函数 指对于所有互质的整数 aaa 和 bbb 有性质 f(ab)=f(a)f(b)f(ab)=f(a)f(b)f(ab)=f(a)f(b) 的数论函数. 特别地,若所有的整数 aaa ...