随笔分类 - 模板
摘要:1 #include<cstdio> 2 #include<cstring> 3 #include<cmath> 4 5 #define ll long long 6 7 using namespace std; 8 9 ll c[100005]; 10 ll addv[320]; 11 ll sum[320]; 12 int n,m,g,p=1,ks=1; //g每块大小 p临时指针 ks块数
阅读全文
摘要:高精实乃万恶之源 算法部分: 一、压位: 1.目的: 压位的目的在于优化时间、空间。 空间上,例如一个四位数1111,不压位则需要用4个变量存储每一位,而压位(比如压4位)后,就只需要用1个变量(比如int)了。 时间上,例如计算1111*1111,不压位则按位相乘共需计算4*4=16次,而压位(比
阅读全文
摘要:1 #include<cstdio> 2 3 using namespace std; 4 5 int max(int x,int y){ 6 if(x>y)return x;else return y; 7 } 8 9 int find(int); 10 11 int n,m,f,x,y,a,b;
阅读全文
摘要:1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 #include<cmath> 5 #include<ctime> 6 #include<cstdlib> 7 8 #include<string> 9 #include<st
阅读全文
摘要:这东西。。。算是半囫囵吞枣的理解了。。。总之板子背过就好了嘛QwQ~
阅读全文
摘要:1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 #include<cmath> 5 #include<ctime> 6 #include<cstdlib> 7 8 #include<string> 9 #include<st
阅读全文
摘要:时隔一个月后,终于攻克了二分求K大的难题。。。特此纪念 2017.10.3 好好的树套树模板题怎么没有一份线段树套平衡树的“标准”题解呢。。。虽然这方法比较low,但我还是来贴一发。。。 据说这题常数巨大,若干份线段树套BST的代码都被卡常了 萌新我看到这吓人的通过率不由瑟瑟发抖 于是使出浑身解数,
阅读全文
摘要:树剖是干什么的? 考虑这样的情况:有一棵树,现在要对其进行路径(两节点间)操作、子树操作,例如将路径上(子树上)的所有节点全部加上一个值、求和等等。 直接暴力操作固然是可行的,但时间肯定是个问题。 这时我们想,如果能用数据结构维护树上节点就好了,但是树的“张牙舞爪”的样子,使得这个操作难以完成。 于
阅读全文
摘要:一年前听说的这东西。。。现在终于会了。。。
阅读全文
摘要:【一年之后重新学习】系列第二弹。。。 Kruskal: 并查集:
阅读全文
摘要:一年之后又重新学习此算法。。。233。。。
阅读全文
摘要:1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14 #include 15 16 using namespace std; 17 18 inli...
阅读全文
摘要:PS:某大佬讲,当心情特别好or特别不好的时候,可以来攻略这个题。。。果然萌新足足被这题恶心了半个月。。。 进入正题: 这道题题意如此之裸-Splayの究极进化,那么就没有什么好讲的,直接说搞法好了。。。 为了代码写起来方便,萌新封装得可能有些过,若不合诸位大佬的口味还请见谅~ 节点node结构体定
阅读全文
摘要:指针大法好 无父指针Splay大法好 大佬们的“改变旋转方向”萌新表示不懂,于是就自己乱搞出了下面的搞法。。。 代码如下,萌新写的丑,诸位大佬见谅QwQ~
阅读全文
摘要:结构体node定义:呐...因为不是Treap,所以就不必定义优先级yx了; 这次为了代码简短,总算是把判断子树方向函数(cmp)和节点信息维护函数(maintain)封在了结构体里。 旋转函数rotate:与Treap相比,没有任何变化,就是写得简短了一些。 插入函数insert:Treap时需要
阅读全文
摘要:输入格式: 1.输入两个整数n,m,表示矩阵的长和宽; 2.输入n行m列个整数,为矩阵的每个元素; 3.输入一个整数T,表示操作次数; 4.输入T行: 格式1:1 x y k,表示将坐标为(x,y)的点加上k; 格式2:2 x1 y1 x2 y2,表示求左上角坐标为(x1,y1),右下角坐标为(x2
阅读全文
摘要:1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 8 #include 9 #include 10 #include 11 #include 12 #include 13 14 using namespace std; 15 16 void add(int,int); 17 int pr...
阅读全文
摘要:1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 using namespace std; 14 struct node{ ...
阅读全文
摘要:此题相对于模板一,加了个区间乘,于是在模板一的基础上需要多开个数组(记录乘法懒标记)、多写个函数(区间乘),还有要把懒标记下放函数做些修改。 变量定义: sum[]:线段树节点对应区间的元素总和; addv[]:线段树节点对应区间的所有元素待加的值(懒标记),初值全部设为0; mulv[]:线段树节
阅读全文

浙公网安备 33010602011771号