Note - 千年食谱颂
其实是兔子收集的各种下饭操作与名菜食谱。(
零·策略篇
这个真的是,我每次打毛毛虫剖分都是 rush 状态 qwq。像这种 已知代码难度大、不便于调试的算法,尽量在考试前期发现并制定策略。如果不幸在后期才看出来,必须做好止损工作,例如完善其他三题(包括最终检查,freopen
等),若本题已经写了部分分,则另开文件 rush。调试过程中千万不要慌,骂自己几句然后冷静下来,这种长难代码一定要理清思路,写的时候就不要给调试过程挖坑。
By the way,注意若有多个代码模块逻辑上高度相似(比如复制粘贴改变量名这种),一定小心有区别的地方;若在一处发现了 bug,立马考虑其余几处是否有相同 bug。
壹·读题篇
「LOCAL/20211115」毒瘤聒噪怪:
- 以为是对于 \(k=1..n\) 分别求,原来是对 \(k=1..n\) 求和。你稍微看一样样例也不至于浪费一个小时。
- 我谢谢你。
- 贪心显然,每次给定 \(K\)?那就根号分治……Woc 根本过不去!自闭一个小时发现 \(K\) 是常数,麻了。注意多次询问是否共用常量参数。
贰·思路篇
- 幸好是别人的号。本来的结论伪了,重新修正后还沿用原结论“需要两边扫一遍”的要求,就死啦死啦。
- 出于对点分的热爱尝试将二维偏序优化至线性.jpg
- 瞬间推出 SG 函数有取模,瞬间忘记取模转化起手式:\(x\bmod y=x-\lfloor\frac{x}{y}\rfloor y\),并且整除结果是可枚举的。这样才能进一步转化。
- 有的题,真就该傻瓜题用傻瓜方法。热烈祝贺 OneInDark 玄学数论分块嵌套 + 莫比乌斯反演 + 剪枝完成了暴力能过的题目!
叁·实现篇
《不愿透露姓名的题目》
- 交换非负整数,
a ^= b ^= a ^= b
,当a
和b
指向同一个内存位置,语句等价于a=0
。
char s[...];
然后std::cin >> (s + 1);
CE 了,本地没警告啊……
- SPFA 手写队列(队头队尾移动指针),长度只开结点数。
- 预处理 \(2^i\),模 \(p\),但它被放在指数上。
「WF 2011」「BZOJ #3963」MachineWorks:
- 函数形参的类型推导(eg
int func(auto a)
)是 C++20 标准的语法。
std::set::iterator
自加最坏 \(\mathcal O(\log n)\)。
- 换根 DP,因为删除一个儿子后还要求最大和次大,所以得维护前三大,但是判断细节就很细节(?)调了老久。诸如此类几个东西比大小,反复检查,举例验证,出 bug 时优先核验!
- 「名菜警告」:记得判 \(u\) 的零级祖先为 \(u\) 自身,否则直接用
__builtin_clz(k)
是未定义的。
- 点分治,分治中心的贡献没有加在桶里。
- 有一个
if
用于剪枝,但在极限数据时只会变成常数。为了卡常把它删掉了,而没想到小数据也会因此跑满,全部 T 飞了 qwq。
- \(n\) 打成 \(m\)!\(n\) 打成 \(m\)!你他娘不是 \(m\) 打成 \(n\) 就是 \(n\) 打成 \(m\)!
「CERC 2016」「洛谷 P3679」Bipartite Blanket:
- Two-pointers,其中一个指针扫到 \(-1\) 就不扫了,但其实这其实是意味着接下来一整个序列都合法。
- \(n,m,q\) 反复手误,你再敢不造 \(n,m,q\) 互异的数据检查就去死吧。(
「NOI 2016」「LOJ #2083」优秀的拆分:(By OneInDark)
「名菜警告」:我们写 SA 一般有个 cmp 函数:
auto dif = [&]( const int x, const int y )
{ return id[x] != id[y] || id[x + w] != id[y + w]; };
x + w
会越界……吗?并不是,若越界,id[x] != id[y]
……吗?还是不是,当x == n - w + 1
,有可能刚好越界到id[n + 1]
,一般数组会有冗余空间所以不会 RE,但多次后缀排序一定要清空到 \(n+1\)!!!错误示例(By OneInDark):WA submission。
- 高斯消元,
EPS=1e-7
忽略一些系数导致巨大精度误差。在确定不影响复杂度的情况下,实数消元还是无脑全部枚举一遍吧。
求矩阵并的那种线段树的
pushup
:inline void pushup( const int u, const int len ) {
// cnt[u] = cvr[u] ? len : cnt[u << 1] + cnt[u << 1 | 1]; // RE.
cnt[u] = cvr[u] ? len : len > 1 ? cnt[u << 1] + cnt[u << 1 | 1] : 0;
}
思考一个结论的时候把“平移相等”顺口说成“对称”,代码写出来真写成关于对称轴对称了……
\(a_{i,j}\in[-10^9,10^9]\),四个加起来没开
long long
。每次测样例必须所有样例同时通过;检查代码时检查细节、逻辑思路的正确性。
- 根号分治,一种情况在差分,一种情况没差分,写着写着就乱套了。任何分类求解的算法一定要用同组数据测试不同情况!
- 可持久化线段树写成动态开点完全没有持久化线段树。
- 瞬间看出标算结论,瞬间想出标算,一经思考:“我草这 treap 被 split 成这么散怎么还原?”痛失一百分。有时候平衡树非常吻合思路的进程,但实现时可以考虑权值线段树作为细节少、易调试的数据结构。
- 线段树二分,
if (l == r)
这个 statement 里不要忘记就算 \(l=r=1\)(整棵树左端点)也是有可能不在二分上界里的,注意判。
清空了,但没有完全清空。
static std::string str;
while (...) {
if (...) { do something with str; }
else { str.clear(); }
}
do someting with str;
// str.clear(); !!!
- 有一个东西
h
,我把它换成rh
,并重新定义了h
的含义,然而某处本应是rh
的地方没改……
Note - 千年食谱颂的更多相关文章
- 魅蓝Note有几种颜色 魅蓝Note哪个颜色好看
http://www.pc841.com/shoujizhishi/39882.html http://news.mydrivers.com/1/359/359443.htm 魅族发布首款千元高性价比 ...
- 【Common】NO.81.Note.1.Common.1.001-【各种英文符号的表示及念法】
1.0.0 Summary Tittle:[Common]NO.81.Note.1.Common.1.001-[各种英文符号的表示及念法] Style:Common Series:Common Sin ...
- ZooKeeper食谱(八)
使用ZooKeeper构造高级别应用的指南 在这个文章中,你将会发现使用ZooKeeper来实现高级别功能的指南.所有的它们在客户端上被实现而不需要ZooKeeper特别的支持.希望社区将注意到这些约 ...
- Twitter如何在数千台服务器上快速部署代码?
答案是:用BT,也就是你我应该都很熟悉的BitTorrent. 对于网站经营者.创业者来说,扩展性的问题是在网站流量成长过程中势必会面对的问题,如何建立一个具有扩展性的架构(scalable arch ...
- [翻译]魅族的M1 Note是十分廉价(dirt-cheap)的iphone5C增强版
Meizu's M1 Note is a dirt-cheap iPhone 5c on steroids 魅族的M1 Note是十分廉价(dirt-cheap)的ihone5C增强版 While m ...
- 神探Python程序员,带你千里捉小三!(附详情代码)
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 王翔 清风Python PS:如有需要Python学习资料的小伙伴 ...
- 我是青年你是良品-魅蓝NOTE 2
2" title="我是青年你是良品-魅蓝NOTE 2"> 明天魅蓝即将迎来自己的新品发布会.选择儿童节的第二天后最喜爱的手机品牌.让其成为真正青年的良品. 在 ...
- Paddle Release Note
Paddle Release Note 重要更新 飞桨paddle框架2.0.0版本有如下重要更新: 编程范式:默认开启动态图模式进行模型开发和训练,通过动转静的方式进行模型部署和训练加速.如果需要使 ...
- 三星Note 7停产,原来是吃了流程的亏
三星Note 7发售两个月即成为全球噩梦,从首炸到传言停产仅仅47天.所谓"屋漏偏逢连天雨",相比华为.小米等品牌对其全球市场的挤压.侵蚀,Galaxy Note 7爆炸事件这场连 ...
随机推荐
- Centos 修改环境变量
环境变量文件路径 添加一个X变量,在etc/profile 尾部添加 X=12345即可 输入命令 vim /etc/profile 变量生效 source /etc/profile 测试结果
- 第10组 Alpha冲刺 (6/6)(组长)
1.1基本情况 ·队名:今晚不睡觉 ·组长博客:https://www.cnblogs.com/cpandbb/p/14008187.html ·作业博客:https://edu.cnblogs.co ...
- HITsz 数据库笔记
这是 HITsz 数据库笔记,欢迎到我的 GitHub 上查看,有笔记说明和源码,作业和实验报告,希望对你有帮助 博客园显示图片异常 数据库基本概念 数据抽象 通过抽象来对用户屏蔽复杂性,以简化用户与 ...
- Linux防火墙--IPtables企业级配置策略思路
一.防火墙简介 防火墙定义:是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内.外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术. 防火墙发展应用:最早 ...
- 【JavaWeb】CVE-2016-4437 Shiro反序列化漏洞分析及代码审计
Shiro反序列化漏洞分析及代码审计 漏洞简介 Apache Shiro是一个强大且易用的Java安全框架,执行身份验证.授权.密码和会话管理. Apache Shiro默认使用了CookieRe ...
- 【一个idea】YesSql,一种在经典nosql数据库redis上实现SQL引擎的方案(我就要开历史的倒车)
公众号链接 最高级的红酒,一定要掺上雪碧才好喝. 基于这样的品味,我设计出了一套在经典nosql数据库redis上实现SQL引擎的方法.既然redis号称nosql,而我偏要把SQL加到redis上, ...
- HBase结构
Pig,可以使用Pig Latin流式编程语言来操作HBase中的数据 Hive,可以使用类似SQL语言来访问HBase,最终本质是编译成MapReduce Job来处理HBase表数据,适合做数 ...
- tep0.9.5支持自定义扩展request
tep0.9.5更新了以下内容: 自定义request请求日志 Allure报告添加request描述 猴子补丁扩展request fixtures支持多层级目录 FastAPI替代Flask 升级t ...
- C++构造函数语义学(一)(基于C++对象模型)
如果一个类没有自己的构造函数,编译器会在需要的时候为其合成一个出来,俗称:合成默认构造函数.但是请注意是在需要的时候,并不是所有情况. 请看下面代码: 1 #include<iostream&g ...
- java接口概述及特点
1 package face_09; 2 3 4 5 6 abstract class AbsDemo{ 7 abstract void show1(); 8 abstract void show2( ...