摘要:
ABC333 总结 https://atcoder.jp/contests/abc333 A - Three Threes 翻译 输入一个正整数 \(n\),输出 \(n\) 遍这个正整数。 \(1\le n\le 9\)。 分析 没啥好说的,直接输出就好了。 code #include <bits 阅读全文
摘要:
lowbit 函数 定义 lowbit(n) 定义为非负整数 \(n\) 在二进制表示下最低位的 \(1\) 所对应的值。 任一非负整数都可被表示一个二进制数: \[(5)_{10}=(101)_2 \]\[(6)_{10}=(110)_2 \]而 lowbit 是这样的,设一个非负整数 \(n\) 阅读全文
摘要:
ABC336 总结 AtCoder Beginner Contest 336 A - Long Loong 翻译 给定一个数 \(n\),请输出一个由一个 L、\(n\) 个 o 、一个 n 和一个 g 组成的字符串(区分大小写)。 分析 按题意模拟即可。 code #include <bits/s 阅读全文
摘要:
双向广搜(meet in the middle) 简介 双向广搜是搜索的一种进阶优化技巧,例如在已知终点和起点的情况下求是否能到达,需要走多远路。只从起点开始搜索可能会很费时间,那既然已知终点,为何不从终点同时开始进行搜索,看看是否能在中间相遇,也就是双向广搜(meet in the middle) 阅读全文
摘要:
线段树合集 线段树:https://zhuanlan.zhihu.com/p/656702623 扫描线:https://oi-wiki.org/geometry/scanning/ or https://zhuanlan.zhihu.com/p/103616664 or https://www.c 阅读全文
摘要:
ABC338 总结 AtCoder Beginner Contest 338 A - Capitalized? 翻译 给你一个由大写和小写英文字母组成的非空字符串 \(S\)。请判断是否满足以下条件: \(S\) 的第一个字符是大写字母,其他所有字符都是小写字母。 如果满足,输出 Yes,否则输出 阅读全文
摘要:
ABC337总结 A - Scoreboard 翻译 Takahashi 队和 Aoki 队进行了\(N\)场比赛。在\(i\)/th比赛\((1\leq i\leq N)\)中,Takahashi 队得了\(X _ i\)分,Aoki 队得了\(Y _ i\)分。在\(N\)场比赛中总得分较高的队 阅读全文
摘要:
主席树 前言 主席树也是一种数据结构,是线段树的进阶,作用是可以保留历史版本,支持回退,就是回到之前某个未修改的状态。就像我们在写博客时如果误删了重要的内容,就可以用 Ctrl + z 撤回一次操作,也可以用Ctrl + Shift +z 还原我们撤回的操作,这就需要存下每次编辑的操作。 基本原理 阅读全文
摘要:
关于离散化的那些事 离散化,本质上就是一种 hash,我们需要用到的只是数据的排名而不是数据本身,通过映射的方法把跨度大又疏松的数据转化为跨度小的数据。 离散化一般有两种形式,一种是 sort+unique,另一种是 map。 sort+unique 首先就是直接用数组排序后去重,将需要用的所有数塞 阅读全文
摘要:
Treap 前置芝士 二叉搜索树(BST),见 BST。 平衡二叉树(AVL)。 先来介绍一下平衡二叉树。 背景 BST 出现以后,人们很快发现一个问题,当其维护一个有序序列时,很可能会退化成链。如图: 这样的话,原来 \(O(\log{n})\) 的复杂度就退化为 \(O(n)\),这是我们无法接 阅读全文