文章分类 - 学习笔记
记录学习心得与经验
摘要:这是个很奇怪的的问题。但自己摸索收获了很多乐趣。 之前自己慢慢摸索研究过 typeid 语法(编译器是 g++),主要是网上似乎没有详细的教程,至少我不是很找得到。 我发现 typeid 就像一门语言,研究它的过程就像破译古代文字。 先讲一下破译工具和方法。大家可以自己尝试破译一下,乐趣多多。 1.
阅读全文
摘要:例题:Luogu P3373 【模板】线段树 2 step 0 - 引子 在看了众多题解后,我仍然没明白这样一个问题:为什么会想到延迟标记下传要分加法和乘法,而做乘法时还要把加法的 tag 一并乘了?如何想到这种联系? 显然,在尝试一个 lazytag 不行之后,我们肯定能想到同时维护两个延迟标记。
阅读全文
摘要:Upd on 2023/4/24:整理博客的时候发现以前写错了,Dev 一个 IDE 哪里会有问题呢?其实是 TDM-GCC 的问题。 库是一个神奇的东西。C++ 的标准库众所周知地使用 std 作为名字空间。但是 C++ 还包含许多拓展库,比如 pb_ds 和 cxx。下图标蓝的就是可用的库的命名
阅读全文
摘要:秦九韶算法 秦九韶算法是由中国古代数学家秦九韶提出来的多项式算法,将一个一般多项式化为若干个一次多项式计算。优点很明显:不用乘方了。具体操作如下: $$=a_0+x(a_1+a_2x+a_3x^2+\dots+a_nx^
阅读全文
摘要:erase() 函数 不论是使用关联式容器还是序列式容器,使用 iterator erase(const_iterator __position) 成员函数时应注意写法。因为一旦 erase 掉,该迭代器就会失效,不能继续进行操作。下面示范了错误样例: map<int,int> MyMap; //插
阅读全文
摘要:~~不关你 vector 的事~~ 今天看了一篇博客,意识到应该写一篇记一记。 我们知道 STL deque 的初始内存极大,因此广为诟病。据说有不少人因为 deque 挂了。总之,当要求大量双端队列时,应避免写 deque,考虑用 STL list 或手写。但是如果只有少量双端队列,或者要求随机访
阅读全文
摘要:例题:POJ3974 Manacher,俗称马拉车(谐音),用于计算最长回文子串长度,时间复杂度与代码量相较其它解决此问题的算法有压倒性优势。线性时间复杂度。 我们发现偶回文串(长度为偶数的回文串)相较奇回文串更加麻烦。因此我们可以做一个预处理,把原字符串转化成易处理的:在字符串两头和每对相邻字符见
阅读全文
摘要:可以在程序内修改词条,也可以在 dictionary.txt 内修改。 词语/短语/句子 释义 #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<iostream> #include<fst
阅读全文
摘要:概述 单调队列是一种维护队列的队列。它的思想是在决策集合中及时排除一定不是最优解的选择。时间复杂度 。 它是这么实现的: 在队尾加入元素: 若加入该元素不能使队列单调,不断移除队尾元素。否则在队尾加入给定元素。 队首元素出队: 如果队头元素在原队列中应当出队,就不断出队。 这样,单调队列
阅读全文
摘要:/* High Accuracy Calculator *** To name a new number, you may write like this: num a. Then it'll create a 0 in Decimalism *** But it's also OK to writ
阅读全文
摘要:对于一个序列,如果其包含的元素仅存在两种状态,那么它可以用二进制状态压缩。具体的操作如下: |操作|运算| | : | : | |取出整数 在二进制表示下的第 位| (n>>k)&1 | |取出整数 在二进制表示下的第 ~ 位(后 位)|n&((1<<
阅读全文
摘要:这道题虽然是模板题,但对作为线段树萌新的我来说很不友好QAQ 主要是对乘法、加法哪个的懒惰标记先处理这个问题的解决:(懒得写了,引用自题解) 加法优先,即规定好 : $$ tree_{2\cdot root} = (tree_{2\cdot root}+mark_{A,root}) \cdot ma
阅读全文