数据结构
zhuxiyulu
这个作者很懒,什么都没留下…
展开
-
HDU6047 Maximum Sequence(树状数组)
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>using namespace std;/*树状数组求区间最值*/const int maxn=250000+5;const int mod=1e9+7;typedef long long int原创 2017-07-29 17:11:09 · 182 阅读 · 0 评论 -
HDU 6058 Kanade's sum(链表)
#include<cstdio>#include<algorithm>#include<cmath>using namespace std;typedef long long LL;const int maxn=5e5+5;int n,k;int a[maxn],pos[maxn];int pre[maxn],nex[maxn];bool cmp(int x,int y){原创 2017-08-02 16:32:18 · 160 阅读 · 0 评论 -
CSU1809 Parenthesis(前缀和+括号匹配)
/*线段树+前缀和+括号匹配题意:给定一个长度为n的”平衡”的括号序列。m次询问。每次询问,表示将第a个字符与第b个字符交换之后,是否依旧保持“平衡”。每次询问都是独立的。 按照原平衡的括号序列处理处前缀和, '('+1 ')'-1平衡的括号序列前缀和一定是>=01,s[a]==s[b] 平衡2,s[a]==')' s[b]=='(' 平衡3,s[a]=='(' s[b]=原创 2017-08-21 15:30:29 · 337 阅读 · 0 评论 -
51nod1081 子段求和(前缀和)
/*树状数组求前缀和*/#include <cstdio>#include <iostream>#include <cstring>#include <cmath>using namespace std;typedef long long LL;const int maxn=5e4+5;int n,q;int pos,l;LL bit[maxn];LL sum(int i)原创 2017-08-27 10:21:54 · 300 阅读 · 0 评论 -
51nod1174 区间中最大的数
/*1,线段树查询区间最值2,RMQ*/#include <cstdio>#include <cstring>#include <algorithm>using namespace std;typedef long long LL;const int maxn=1e4+5;int n,q;int s[maxn];int a,b;int ans;struct node{原创 2017-08-27 20:41:53 · 182 阅读 · 0 评论 -
51nod1287 加农炮(线段树)
/*线段树*/#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int maxn=5e4+5;int n,m;int a[maxn];struct node{ int left,right; int h;}tree[maxn<<2];void push_u原创 2017-08-29 15:54:40 · 280 阅读 · 0 评论 -
codeforces869EThe Untended Antiquity(二维树状数组)
/*二维树状数组+Hash题意:给一个地图(n,m) 三种操作:1,在以(r1,c1)、(r2,c2)为对角的矩形四条边上添加障碍2,消除以(r1,c1)、(r2,c2)为对角的矩形四条边上的障碍3,判断(r1,c1)到(r2,c2)是否存在一条路径,不经过障碍利用二维树状数组进行块更新,每次添加障碍时,用一个Hash值如果两个点之间的Hash值是相同的,说明可以有路径不经过障碍*/原创 2017-10-14 15:50:35 · 214 阅读 · 0 评论