-
VSCode 从入门到更加入门
VSCode 介绍
VSCode 是一款强大的编辑器,至少在对于 OIer 来说 VSCode 是最好的选择,VSCode 是轻量级编辑器,不像 VS 或者 Clion 一样是重量级编辑器,不方便 OIer 使用(并且还疯狂占用 CPU);也不像 Dev-cpp 一样尽管可以直接使用,但是功能却一言难尽……这个时候就要看 VSCode 了!
VSCode 支持打开文件夹,代码补全,代码片段插入,强大的调试功能,Markdown 的编辑和浏览,括号匹配,本地历史记录保存,修改代码缩进风格,内部控制台,连体字符,内置 git,内置编码查看修改,代码查看,宏展开等等……绝对是 OIer 的不二之选。
-
ABC127C Prison 题解
题意:给一个长度为 $n$ 的 01 字符串,要让这个字符串的每个 1 之间的距离恰好都为 $k$,请问至少要修改几个字符。
-
CF1353E K-periodic Garland 题解
题意:给一个长度为 $n$ 的 01 字符串,要让这个字符串的每个 1 之间的距离恰好都为 $k$,请问至少要修改几个字符。
-
UVA1632 阿里巴巴 Alibaba 题解
简单题意:数轴上有 $n$ 个点,已知每个点的坐标 $a_i$ 和毁灭时间 $t_i$ 。开始时可以选择任意一点空降,每刻可以选择向左或者向右移动 $1$ 的单位长度,求出经过所有点的最短时间,如果不可能输出
No solution
。
-
SP18202 HG - HUGE GCD 题解
题目大意是求 $N$ 和 $M$ 的最大公因数,所以考虑将 $N$ 和 $M$ 质因数分解求出每个质因子,由于 $N$ 和 $M$ 都是很大很大的数字,所以采取对 $N$ 和 $M$ 的因子进行质因数分解。
-
简单的最大值 题解
gcd-lcm
-
Lamps 题解
Lamps
-
C++ 卡常技巧
常见误区
- 尽可能使用位运算,
<<1
比*2
快,>>1
比/2
快,用&1
代替%2
,用三次^
代替swap
,(x<<3)+(x<<1)
代替x*10
- 尽可能把
i++
变成++i
,因为i++
处理时会使用临时变量储存原先i
的值 - 简单函数前使用
inline
,或者干脆使用#define
,因为函数调用会浪费时间 - 字符串较短时使用
putchar
,较长时使用printf
,但是如果要换行,一定要用puts
- 数组尽量开奇数个(我也不知道什么原理)
- 使用
register
优化循环变量 - 手写函数,比如
max
abs
swap
等,还有 STL if
语句比三目运算符要慢,逗号运算符比分号运算符要快- 使用直接初始化
int maxn(-1)
代替复制初始化int maxn=-1
std::pair
常数大cin.tie(nullptr)
没有用- 万能头,
using namespace std;
很慢 std::vector
常数巨大,不如链式前向星- 结构体封装慢
while
比for
快
- 尽可能使用位运算,
-
CF1384A Common Prefixes 题解
-
LGP6353 [COCI2007-2008#3] OKTALNI 题解
- 8
- 9
- •