摘要:
函数整合 #include<cstdio> #include<iostream> #include<cstring> #define ll long long #define MAXN 400000 using namespace std; char sa[MAXN],sb[MAXN]; int a 阅读全文
摘要:
鉴于先前排版的简陋和内容的缺失,现重新整理一番,在重温初赛知识的同时也方便大家学习。 ——更新于2022/9/15 下面进入正文。 不论是在 CSP 初赛题还是在分治算法分析中,经常需要计算递推算法的时间复杂度。 有时画递归树求和会比较麻烦,这时 可以用主定理来秒杀。 定理内容——简化版 我们要处理 阅读全文
摘要:
旧版快读、快写「模板」 快读 template<typename type> inline void read(type &x) { x=0;bool flag(0);char ch=getchar(); while(!isdigit(ch)) flag=ch=='-',ch=getchar(); 阅读全文
摘要:
typeid关键字 头文件:#include<typeinfo> 获取变量类型名称:typeid(变量).name() 返回值:取决于编译器 比如对于g++来说只会返回变量类型名称的首字母: 如需获取变量类型完整名称,则需要: abi::__cxa_demangle(typeid(x).name() 阅读全文
摘要:
虽然说正则表达式(regex)对我们oier来说用的比较少,但其功能之强大、实用性之广,可谓吊打C++的string和char,秒杀Windows的通配符 正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。 正 阅读全文
摘要:
有关树状数组的优质博客 彻底弄懂二维树状数组(戳我) 模板代码「先前」 #include<iostream> #include<cstdio> using namespace std; //快读 inline void read(int &x) { x=0;short flag(1);char ch 阅读全文
摘要:
lowbit是树状数组的前置知识。 lowbit(x)返回的是x的二进制表达式中最低位的1所对应的值。 e.g. 6的二进制是 0000 0110 从右往左数,第一个1出现在第2位上,对应的数是2^1也就是2,因此lowbit(6)=2 24的二进制是 0001 1000 从右往左数,第一个1出现在 阅读全文
摘要:
~~其实本篇文章不是为了卡常,而是为了讲解位运算的一个应用(~~ 前置芝士 原码表示法是整数的一种简单的表示法,符号位用 $0$ 表示正号,用 $1$ 表示负号,数值一般用二进制形式表示。 整数的反码和补码 | | 正数 | 负数 | $+0$「看作正数」 | $-0$「看作负数」 | | :--: 阅读全文
摘要:
① scanf读取单个字符「2021/8/6」 scanf 的 %c 读取的是单个字符,是连续的! 如:scanf("%c%c",&ch1,&ch2),输入 ab 则接受 ab,但若输入 a b 则会接收 a 。 解决方案:scanf("%c %c",&ch1,&ch2),注意只是加了个空格。 ② 阅读全文