首页 > 其他分享 >「Final Review」返回天空的雨滴

「Final Review」返回天空的雨滴

时间:2023-07-11 23:01:03浏览次数:46  
标签:Review 雨滴 Final 计数 可能 可以 贪心 LL MOD

  标题鉴定为二游玩多了. 这是施工现场, 感觉工程量比较大就同步更新了.

  省略编号 \(\overline{xy}_{(9+7)}\) 即第 \(x\) 篇 (国赛训练的) sol set 的第 \(y\) 道题, 链接只指到 sol set, 麻烦自己翻一下.

  应该会有一个前言.

Motivations

  动机, 大概就是 "为什么想到这样思考" 的原因. 感性所能及的范围其实远于理性, 做一些元思考工作是重要的.

  • 注意树上路径信息能否转化成到根的路径的差分信息, 自由度直接砍掉一个 \(n\) 岂不美哉? [00]
  • 构造题, 尝试构造 "强化操作", 处理 "原操作组合出强化操作" 和 "强化操作完成构造" 两部分. [01]
  • 算合法需要去重, 算非法也需要去重, 但两个问题的去重难度可能是不一样的, 都值得考虑. [08]
  • 对形如 "能迭代到边界" 的对象计数, "能迭代" 是一个动态的限制, 但 "不能迭代" 是一个静态的限制, 可能更好算. [08] [17]
  • \(\sum a_ib_i\overset{?}{=}0\), 有没有可能是在判断向量共线? [09]
  • 随机序列上的询问可能有很简单的支配对, 而且数量级不大, 注意观察. [0A]
  • 最短路询问 "到底要不要建图跑最短路算法" 其实是很关键的问题, 尝试一些归约. [0B]
  • 长剖/重剖本质上是找到 "若有一个儿子满足某个性质, 则必然是这个特殊儿子", 这个 "特殊性质" 可以拿来保证复杂度, 也可能单纯就是题目需要. [0E]
  • 两种对象互相匹配的问题, "\(A\) 去找 \(B\)" 和 "\(B\) 去找 \(A\)" 同样值得尝试, 尽管可能反直觉. [16]
  • 贪心结论可能让元素的动态贡献变为静态, 如果动态贡献没办法维护也可以反过来想想贪心结论. [18]
  • 数轴上双向不碰撞运动, 可以写成序列 DP (是个线性变换), 引入碰撞时间之类的就可以上 DDP. [1A]
  • 近似解, 兄弟! [1B]
  • \(01\) 矩阵, 要求一个 "\(0\) 的一个角方向上不能有 \(1\)" 之类的东西, 最后的合法矩阵可能存在值的轮廓线. [1C]
  • 操作序列和计数对象建立双射, 然后就能数操作序列了. [1D]
  • 再相信一次出题人的特殊性质吧! [29]
  • 匹配判定记得 Hall, Hall 的时候注意观察能否只做区间判断. [2C]
  • "在一个集合中允许任意换走几个, 最小化代价", 如果换入的东西很容易贪心 (例如一定用未入选的代价最少的物品), 是否可以直接钦定贪心结果 (一段最优前缀必选)? [31]
  • 多限制计数, 能否在最外层手动构造容斥关系, 内层只对容斥后限制较少的对象计数? [34]
  • 多变量关系建议在图上讨论. 没有为什么, 有股劲儿. [3F]

Tricks

  技巧, 让 motivation \(\to\) solution 这段路不完全需要自己走.

  • \(k\) 维偏序, 去他妈的 \(\text{polylog}\), 不如用 std::bitset 做 \(\mathcal O(n^2k/\omega)\). 还可以配合四毛子分块做高维偏序上的信息查询. [07]
  • 经典永流传: 树形拓扑限制, 贪心向爹合并. (用的时候不太自信是怎么回事?) [13]
  • 若提供 "集合合法性" 类的交互接口, 可以通过前缀询问求出第一个合法位置. [16]
  • 有根树点分治, 分治中心到根的高代价信息可以跳上层分治中心合并. [1F]
  • 计算几何, 一些相交判定问题可以通过网格划分减小检查次数, 网格宽度阈值可以倍增. [21]
  • \(a_i=\min\{a_{i-1}+A(i),B(i)\}\) 这种形式的递推可以枚举前面最后一个取常量 \(B(i)\) 的位置转移. [2D]

Conclusions

  普适结论, 你还记得 NOI 2021 做不起 D1T2 的伤痛吗?

  • 置换自复合, 奇环内部元素不变, 偶环裂成两个等大小环. (可能在倍增中有用.) [02]
  • [Monster Hunting Problem] 先按消耗值升序挑战消耗 \(\le\) 回复的怪兽, 再按回复值降序挑战其余怪兽 [07]
  • 二分图中, 最大独立集 \(=\) 最小点覆盖 \(=\) \(n-{}\)最大匹配 \(=\) \(n-{}\)最大流 (最小割). [1C]

Algorithms

  背诵任务建议在早读时完成. (?

  • long double 模乘

  还不会写? 非常量模数时这玩意儿比 __int128 硬算快.

inline LL mul(const LL u, const LL v) {
    return LL(((ULL)u * v - ULL((LD)u / MOD * v) * MOD + MOD) % MOD);
}

  • 杨表

  .

标签:Review,雨滴,Final,计数,可能,可以,贪心,LL,MOD
From: https://www.cnblogs.com/rainybunny/p/17546168.html

相关文章

  • XCTF-Final Flappy-Bird-Cheat题目复现
    引言这是一道有关Magisk模块的题目,虽然一直在用Magisk,但是对其模块作弊机制还不是很了解,之前比赛的时候没做出来(之前没恢复OpenSSL的符号,看起来很难看放弃了),有时间翻出来再看看。难点在于这道题目是采取静态分析的手段看的,暂时没找到什么办法对模块内的so文件进行动调和Hook,之后......
  • CODE FESTIVAL 2017 Final J 题解
    problem&blog。萌萌点分治,积累个trick/qq。对于完全图\((V,E)\),将\(E\)分成\(E_1,E_2,\cdots,E_k\)(\(E_1\cupE_2\cup\cdots\cupE_k=E\))。对每个边集求MST,得到新边集\(E_1^{'},E_2^{'},\cdots,E_k^{'}\),再求MST。最终剩下的边集,等同于原边集的MST。......
  • REVIEW: 本地仓库推送到远程仓库-> 本地仓库获取远程仓库的修改|远程仓库获取本地的
    我们假设有一个本地仓库A,一个远程仓库B1.使用git-bash进入本地仓库(就是一个文件夹),使用以下命令将本地仓库的当前分支与远程仓库B建立连接gitremoteaddoriginhttps://github.com/TOMcat125/B.git2.将本地分支main提交到远程仓库中,并且建立本地分支和远程分支的追踪关......
  • 【应届生面试题】说说你对 final 的理解?
    ......
  • Check&Review的区别
    在我们日常的GMP记录中,经常看见复核人或者审核人这样的字眼,那么二者到底有什么区别呢?日常我们又该如何做复核?如何做审核呢?“复核”,强调的是现场的第二人确认;而“审核”,强调的是非现场(或者事后)的再次审查。我们再来看下二个英文单词Check&Review的区别,Check meanslookingforac......
  • [HFCTF 2021 Final]easyflask
    根据指引拿到源码,之前访问网页拿到的源码是无缩进的,我还以为是出题人故意这样,后来才知道view-source一下能看到有缩进的源代码。#!/usr/bin/python3.6importosimportpicklefrombase64importb64decodefromflaskimportFlask,request,render_template,sessionapp......
  • Final Cut Pro for Mac(fcpx视频剪辑)完美激活版
    FinalCutPro是苹果公司开发的一款专业非线性视频编辑软件,适用于MacOS操作系统。它提供了许多功能强大的工具和特效,可以帮助用户创建高质量的电影、电视节目、广告等视频内容。FinalCutPro支持多种格式的视频文件,包括高清视频和4K分辨率视频,并且具有比较友好的用户界面。该软件......
  • 101.final和override关键字
    在C++中,final是一个关键字,用于修饰类的成员变量和成员函数。1.final修饰成员变量:当一个类中的成员变量被声明为final时,它就变成了常量,即它的值不能再被修改。final修饰的成员变量必须在类定义中进行初始化,且只能初始化一次。假设我们有一个名为Person的类,其中包含一个成员变量na......
  • Variable 'xxxx' is accessed from within inner class, needs to be final or effect
    问题的原因问题代码:publicstaticvoidmain(String[]args){Integersum=0;Integercount=0;List<Integer>list=newArrayList<>(Arrays.asList(1,2,3,4,5));list.stream().forEach(e->{sum+=e;//这步会编译错误--Varia......
  • 27.final和override关键字
    在C++中,final是一个关键字,用于修饰类的成员变量和成员函数。1.final修饰成员变量:当一个类中的成员变量被声明为final时,它就变成了常量,即它的值不能再被修改。final修饰的成员变量必须在类定义中进行初始化,且只能初始化一次。假设我们有一个名为Person的类,其中包含一个成员变量na......