
数据结构
_leon1999
qaq
展开
-
树状数组模板
void update(int i,int k){ while(i<=n) { c[i]+=k; i+=Lowbit(i); }}int sum(int x){ int s=0; while(x>0) { s+=c[x]; x-=Lowbit(x); } ret原创 2018-01-21 13:25:03 · 135 阅读 · 0 评论 -
zoj 2112 动态区间第k小 (整体二分)
整体二分比较神奇,运用还是不大熟练,再练一些题目再分享关于整体二分的理解吧。先记录一下代码#include<iostream>#include<cstring>#include<cstdio>#include<vector>using namespace std;#define LL long long#define sca(x) ...原创 2019-02-23 19:14:17 · 288 阅读 · 0 评论 -
最长递增子序列(记忆化搜索)
记忆化搜索一直写不好,今天尝试了一下,竟然写出来了。。。#include<iostream>#include<cstdio>#include<cstring>#include<queue>#include<set>#include<algorithm>#include<map>#include&原创 2019-02-09 22:41:32 · 258 阅读 · 0 评论 -
hdu 4825 (01字典树)
给出n个数和m次查询,每次要从n个数中找到一个数与k的异或值最大。因为数最大只有32位,所以我们把每个数字转化成32位2进制数。对于每个查询的数,如果和他相反的数存在我们就沿着相反的路径往下找,否则就沿着当前路径往下走。#include<iostream>#include<cstdio>#include<cstring>#include&...原创 2018-12-10 21:12:56 · 214 阅读 · 0 评论 -
poj 3241 哈夫曼距离最小生成树
Object ClusteringTime Limit: 2000MS Memory Limit: 131072K Total Submissions: 2619 Accepted: 798 DescriptionWe have N (N ≤ 10000) objects, and wish to classify them into several...原创 2018-09-06 16:25:21 · 572 阅读 · 0 评论 -
由畅通工程再次学习两类最小生成树算法
朴素的pirm算法的时间复杂度是n方,经过堆优化的prim算法时间复杂度是n*lognprim算法与节点数有关一般适用于稠密图,而克鲁斯卡尔算法的时间复杂度与边数有关时间复杂度是O(E*log(E))一般适用于稀疏图。#include<bits/stdc++.h>using namespace std;#define LL long long#define inf ...原创 2018-08-26 11:06:30 · 159 阅读 · 0 评论 -
poj 2299(树状数组,逆序对)
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#define lowbit(x) x&-x#define LL long long#define maxn 500005using namespace std;struct node{...原创 2018-03-06 17:11:24 · 308 阅读 · 0 评论 -
poj 3461 (kmp)
OulipoTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 45343 Accepted: 18135DescriptionThe French author Georges Perec (1936–1982) once wrote a book, La disparition, without the letter 'e'. H...原创 2018-02-24 23:15:50 · 209 阅读 · 0 评论 -
poj 2155(二维树状数组,区间更新,单点查询)
Matrix POJ - 2155 二维树状数组和一维的树状数组类似:就是多了一层循环例如要更新一个某个点的值void add(int x,int y,int k){ for(int i=x;i<=n;i+=lowb(i)) { for(int j=y;j<=n;j+=lowb(j)) { F[i][j]+=k;...原创 2018-03-09 20:57:42 · 194 阅读 · 0 评论 -
poj 3928(树状数组)
Ping pong POJ - 3928 #include<iostream>#include<vector>#include<cstdio>#include<cstring>#include<map>#include<cmath>#include<algorithm>#define LL long原创 2018-03-08 16:26:26 · 250 阅读 · 0 评论 -
poj 3264 (线段树,RMQ)
Balanced Lineup POJ - 3264 RMQ#include<iostream>#include<vector>#include<cstdio>#include<cstring>#include<map>#include<cmath>#define LL long long#define maxn...原创 2018-03-08 13:34:08 · 187 阅读 · 0 评论 -
拓扑排序 (判断有向图是否存在回环)
Legal or NotTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 9777 Accepted Submission(s): 4541Problem DescriptionACM-DIY is a large QQ group w...原创 2018-02-16 17:59:04 · 927 阅读 · 0 评论 -
poj 3368(ST)
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#define lowbit(x) x&-x#define LL long long#define Max(a,b) a>b?a:b#def...原创 2018-03-07 16:11:33 · 203 阅读 · 0 评论 -
数据结构之线段树
#include#include#include#include#include#define inf -1*0x3f3f3f3f#define MAXN 300000using namespace std;int tree[MAXN];int arr[MAXN];int cnt=1;void build(int root,int b,int e){ if(b==e)原创 2018-01-17 14:20:58 · 133 阅读 · 0 评论 -
hpu练习赛美素数(素数筛+dp)
G - 美素数 #include#include#include#include#include#includeusing namespace std;#define MAXN 1000001long su[MAXN];long prime[MAXN];int vis[MAXN];int st[MAXN];void issushu(){ me原创 2018-01-21 22:51:13 · 242 阅读 · 0 评论 -
2019 Multi-University Training Contest 9 Rikka with Stable Marriage (01字典树)
Rikka with Stable MarriageTime Limit: 10000/5000 MS (Java/Others)Memory Limit: 524288/524288 K (Java/Others)Total Submission(s): 259Accepted Submission(s): 151Problem DescriptionPeopl...原创 2019-09-12 11:23:20 · 200 阅读 · 0 评论