![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法--数据结构
老顽童灬
我是渣渣
展开
-
树状数组--转
传送门第01讲 什么是树状数组?树状数组用来求区间元素和,求一次区间元素和的时间效率为O(logn)。有些同学会觉得很奇怪。用一个数组S[i]保存序列A[]的前i个元素和,那么求区间i,j的元素和不就为S[j]-S[i-1],那么时间效率为O(1),岂不是更快?但是,如果题目的A[]会改变呢?例如:我们来定义下列问题:我们有n个盒子。可能的操作为1.向盒子k添加石块2.查询从盒子i到盒子j总的石块数转载 2017-08-16 15:16:19 · 167 阅读 · 0 评论 -
树状数组--一维模板
树状数组不是很懂只能给个模板了。 原理是二分法。#include<cstdio> #include<cstring> #include<algorithm> using namespace std; int tree[100005]; int n; int lowbit(int x) { return x&(-x); } void add(int x,int y) { while(原创 2017-08-16 15:56:48 · 201 阅读 · 0 评论 -
线段树--数据结构(建树,查询区间和&&最大值&&最小值)
代码模板:#include<cstdio> #include<algorithm> using namespace std; struct Node { int l,r,sum,Max,Min; }Tree[1000<<2]; void PushUp(int o) { Tree[o].sum = Tree[o*2].sum + Tree[o*2+1].sum; Tree[o]原创 2017-08-12 10:29:43 · 612 阅读 · 0 评论 -
KMP算法
#include<cstdio> #include<cstring> int next[100]; char a[100]; char b[100]; void getnext(char *t,int n)//next数组表示前缀子串和后缀子串的最大重和的长度 { //例如:a b a b a int j=0,i=0;原创 2017-08-15 15:28:31 · 167 阅读 · 0 评论 -
字典树
#include<cstdio> #include<cstring> #include<algorithm> #define idx(x) (x-'a') using namespace std; int n,m; //输入字符串数 查询次数 int ant; //记录当前在哪一层 struct Node { int v; //当前有多少个字符串共用这个数组原创 2017-08-22 20:41:11 · 191 阅读 · 0 评论 -
pat1008
数组元素循环右移问题 (20)时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 一个数组A中存有N(N>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(M>=0)个位置,即将A中的数据由(A0 A1……AN-1)变换为(AN-M …… AN-1 A0 A1……AN-M-1)(最后M个数循环移至最前面的M个位置原创 2017-09-17 18:49:59 · 219 阅读 · 0 评论 -
畅通工程--并查集(水)
Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路? Input 测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N ( < 1000 )和道路数目M;随后的M行对应原创 2017-10-24 17:21:54 · 205 阅读 · 0 评论 -
表达式求值(单位运算)--栈
#include<cstdio> #include<iostream> #include<cstring> using namespace std; typedef int Status; typedef struct StackNode { char date; struct StackNode *next; }StackNode,*LinkStack; Status Initst原创 2017-11-06 17:30:03 · 264 阅读 · 1 评论