其实是兔子收集的各种下饭操作与名菜食谱。(

零·策略篇

多校 NOIP 2021.11.05:

  这个真的是,我每次打毛毛虫剖分都是 rush 状态 qwq。像这种 已知代码难度大、不便于调试的算法,尽量在考试前期发现并制定策略。如果不幸在后期才看出来,必须做好止损工作,例如完善其他三题(包括最终检查,freopen 等),若本题已经写了部分分,则另开文件 rush。调试过程中千万不要慌,骂自己几句然后冷静下来,这种长难代码一定要理清思路,写的时候就不要给调试过程挖坑。

  By the way,注意若有多个代码模块逻辑上高度相似(比如复制粘贴改变量名这种),一定小心有区别的地方;若在一处发现了 bug,立马考虑其余几处是否有相同 bug。

壹·读题篇

「LOCAL/20211115」毒瘤聒噪怪:

  • 以为是对于 \(k=1..n\) 分别求,原来是对 \(k=1..n\) 求和。你稍微看一样样例也不至于浪费一个小时。

「CSP-S 2021」「洛谷 P7914」括号序列:

  • 我谢谢你。

「多校联训」挖掘机:

  • 贪心显然,每次给定 \(K\)?那就根号分治……Woc 根本过不去!自闭一个小时发现 \(K\) 是常数,麻了。注意多次询问是否共用常量参数。

贰·思路篇

「CF 1589E」Game with Stones.

  • 幸好是别人的号。本来的结论伪了,重新修正后还沿用原结论“需要两边扫一遍”的要求,就死啦死啦。

「多校联训」超级加倍:

  • 出于对点分的热爱尝试将二维偏序优化至线性.jpg

「多校联训」石子游戏:

  • 瞬间推出 SG 函数有取模,瞬间忘记取模转化起手式:\(x\bmod y=x-\lfloor\frac{x}{y}\rfloor y\),并且整除结果是可枚举的。这样才能进一步转化。

「多校联训」黑客:

  • 有的题,真就该傻瓜题用傻瓜方法。热烈祝贺 OneInDark 玄学数论分块嵌套 + 莫比乌斯反演 + 剪枝完成了暴力能过的题目!

叁·实现篇

《不愿透露姓名的题目》

  • 交换非负整数,a ^= b ^= a ^= b,当 ab 指向同一个内存位置,语句等价于 a=0

「JSOI 2019」「洛谷 P5334」节日庆典

  • char s[...]; 然后 std::cin >> (s + 1); CE 了,本地没警告啊……

「ZJOI 2013」「洛谷 P3337」防守战线:

  • SPFA 手写队列(队头队尾移动指针),长度只开结点数。

「BZOJ 2839」集合计数:

  • 预处理 \(2^i\),模 \(p\),但它被放在指数上。

「WF 2011」「BZOJ #3963」MachineWorks:

  • 函数形参的类型推导(eg int func(auto a))是 C++20 标准的语法。

「多校联训」第 k 大查询:

  • std::set::iterator 自加最坏 \(\mathcal O(\log n)\)。

「多校联训」树上路径:

  • 换根 DP,因为删除一个儿子后还要求最大和次大,所以得维护前三大,但是判断细节就很细节(?)调了老久。诸如此类几个东西比大小,反复检查,举例验证,出 bug 时优先核验

「洛谷 P5903」「模板」树上 k 级祖先:

  • 「名菜警告」:记得判 \(u\) 的零级祖先为 \(u\) 自身,否则直接用 __builtin_clz(k) 是未定义的。

「OurOJ 9865」路径中位数:

  • 点分治,分治中心的贡献没有加在桶里。

「多校联训」肯德基:

  • 有一个 if 用于剪枝,但在极限数据时只会变成常数。为了卡常把它删掉了,而没想到小数据也会因此跑满,全部 T 飞了 qwq。

「UVA 10735」Euler Circuit:

  • \(n\) 打成 \(m\)!\(n\) 打成 \(m\)!你他娘不是 \(m\) 打成 \(n\) 就是 \(n\) 打成 \(m\)!

「CERC 2016」「洛谷 P3679」Bipartite Blanket:

  • Two-pointers,其中一个指针扫到 \(-1\) 就不扫了,但其实这其实是意味着接下来一整个序列都合法。

「CSP-S 2020」「洛谷 P7077」函数调用:

  • \(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


「CF 113D」Museum:

  • 高斯消元,EPS=1e-7 忽略一些系数导致巨大精度误差。在确定不影响复杂度的情况下,实数消元还是无脑全部枚举一遍吧。

「CF 1368G」Shifting Dominoes:

  • 求矩阵并的那种线段树的 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;
    }

「CF 321D」Ciel and Flipboard:

  • 思考一个结论的时候把“平移相等”顺口说成“对称”,代码写出来真写成关于对称轴对称了……

  • \(a_{i,j}\in[-10^9,10^9]\),四个加起来没开 long long

  • 每次测样例必须所有样例同时通过;检查代码时检查细节、逻辑思路的正确性。


「CF 1580C」Train Maintenance:

  • 根号分治,一种情况在差分,一种情况没差分,写着写着就乱套了。任何分类求解的算法一定要用同组数据测试不同情况!

「CF 1598F」RBS:

  • 可持久化线段树写成动态开点完全没有持久化线段树。

「多校联训」大鱼吃小鱼:

  • 瞬间看出标算结论,瞬间想出标算,一经思考:“我草这 treap 被 split 成这么散怎么还原?”痛失一百分。有时候平衡树非常吻合思路的进程,但实现时可以考虑权值线段树作为细节少、易调试的数据结构。
  • 线段树二分,if (l == r) 这个 statement 里不要忘记就算 \(l=r=1\)(整棵树左端点)也是有可能不在二分上界里的,注意判。

「UVA 1592」Database:

  • 清空了,但没有完全清空。

    static std::string str;
    while (...) {
    if (...) { do something with str; }
    else { str.clear(); }
    }
    do someting with str;
    // str.clear(); !!!

「多校联训」树:

  • 有一个东西 h,我把它换成 rh,并重新定义了 h 的含义,然而某处本应是 rh 的地方没改……

Note - 千年食谱颂的更多相关文章

  1. 魅蓝Note有几种颜色 魅蓝Note哪个颜色好看

    http://www.pc841.com/shoujizhishi/39882.html http://news.mydrivers.com/1/359/359443.htm 魅族发布首款千元高性价比 ...

  2. 【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 ...

  3. ZooKeeper食谱(八)

    使用ZooKeeper构造高级别应用的指南 在这个文章中,你将会发现使用ZooKeeper来实现高级别功能的指南.所有的它们在客户端上被实现而不需要ZooKeeper特别的支持.希望社区将注意到这些约 ...

  4. Twitter如何在数千台服务器上快速部署代码?

    答案是:用BT,也就是你我应该都很熟悉的BitTorrent. 对于网站经营者.创业者来说,扩展性的问题是在网站流量成长过程中势必会面对的问题,如何建立一个具有扩展性的架构(scalable arch ...

  5. [翻译]魅族的M1 Note是十分廉价(dirt-cheap)的iphone5C增强版

    Meizu's M1 Note is a dirt-cheap iPhone 5c on steroids 魅族的M1 Note是十分廉价(dirt-cheap)的ihone5C增强版 While m ...

  6. 神探Python程序员,带你千里捉小三!(附详情代码)

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 王翔 清风Python PS:如有需要Python学习资料的小伙伴 ...

  7. 我是青年你是良品-魅蓝NOTE 2

    2" title="我是青年你是良品-魅蓝NOTE 2">   明天魅蓝即将迎来自己的新品发布会.选择儿童节的第二天后最喜爱的手机品牌.让其成为真正青年的良品. 在 ...

  8. Paddle Release Note

    Paddle Release Note 重要更新 飞桨paddle框架2.0.0版本有如下重要更新: 编程范式:默认开启动态图模式进行模型开发和训练,通过动转静的方式进行模型部署和训练加速.如果需要使 ...

  9. 三星Note 7停产,原来是吃了流程的亏

    三星Note 7发售两个月即成为全球噩梦,从首炸到传言停产仅仅47天.所谓"屋漏偏逢连天雨",相比华为.小米等品牌对其全球市场的挤压.侵蚀,Galaxy Note 7爆炸事件这场连 ...

随机推荐

  1. git报错 error: cannot stat 'file': Permission denied

    切换分支(git checkout xxx)时报错: error: cannot stat 'file': Permission denied 解决方法:退出编辑器.浏览器.资源管理器等,然后再切换就 ...

  2. 编写java程序压缩Linux本地目录

    注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6809285459722633736/ 创建工程 使用maven工程 勾选,然后下一步 填写基本信息 注意改一下编码 ...

  3. 阿里云服务器ECS Ubuntu16.04 + Seafile 搭建私人网盘 (Seafile Pro)

    原文链接:? 传送门 本文主要讲述 使用 Ubuntu 16.04 云服务器 通过脚本实现对 Seafile Pro 的安装,完成私人网盘的搭建 首先给出 Seafile 专业版的下载地址(Linux ...

  4. 安装MySQL到Ubuntu 20.04

    本文的内容主要来自对How To Install MySQL on Ubuntu 20.04的翻译.在根据该文的指导下,我在自己的Ubuntu 20.04.3 LTS版本中安装了MySQL 8. St ...

  5. 【分享代码】bash中对一个逗号分隔的列表去重

    直接上代码: #!/bin/bash dedup_list(){ v_list=$(echo "$1" | sed "s/,/\n/g" | sort -u | ...

  6. 【笔记】thanos receiver的router模式

  7. ManualResetEvent实现线程的暂停与恢复

    背景 前些天遇到一个需求,在没有第三方源码的情况下,刷新一个第三方UI,并且拦截到其ajax请求的返回结果.当结果为AVALIABLE的时候,停止刷新并语音提示,否则继续刷新. 分析这个需求,发现需要 ...

  8. VueRouter学习01-基本使用

    ## 基本使用: 1. 创建一个`VueRouter`对象:`new VueRouter()`. 2. 在`VueRouter`中,需要传递一个`routes`参数.这个参数是一个数组类型,数组中存储 ...

  9. 43.Kruskal算法

    public class KruskalCase { private int edgeNum; //边的个数 private char[] vertexs; //顶点数组 private int[][ ...

  10. Servlet-概念及实现一个Servlet程序

    Servlet技术 一,Servlet概念 1,Servlet是JavaEE规范之一.规范就是接口 2,Servlet就是JavaWeb三大组件之一.三大组件分别是:Servlet程序.Filter过 ...