数据结构
1
kosf_
这个作者很懒,什么都没留下…
展开
-
[扫描线] 牛客第六场H Hopping Rabbit
题目 链接 思路 代码 #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<cctype> #include<ctime> #include<iostream> #include<string> #include<map> #include<queue> #include<stac原创 2021-08-07 01:25:36 · 79 阅读 · 0 评论 -
[动态开点]2021牛客暑期4Tree Xor
题目 题目 思路 指路博客:添加链接描述 感谢xf不厌其烦地回答我的问题 代码 #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<cctype> #include<ctime> #include<iostream> #include<string> #include<map> #include&l原创 2021-07-29 21:46:28 · 132 阅读 · 0 评论 -
[莫队]hdu6959zoto
题目 题目 有一个序列,长度为nnn,序列为(i,fx[i])(i,fx[i])(i,fx[i]),mmm次询问,询问以(x1,y1)(x1,y1)(x1,y1)作为左下坐标,(x2,y2)(x2,y2)(x2,y2)作为右上坐标形成的矩形内有几个序列内的点 思路 莫队,依照垂直xxx轴的最左端和左右端来分块,用树状数组来维护当前存在的点的数量 代码 #include<cstdio> #include<cstring> #include<cmath> #include&l原创 2021-07-21 23:12:29 · 160 阅读 · 0 评论 -
[01字典树] hdu6955 Xor sum
题目 找出最短的连续子序列,满足异或和不小于k 题目 思路 01字典树可以求数列间任意两数的异或最大值,将两个数换成前缀异或就可以求连续区间的最大异或值。 用l、rl、rl、r表示当前的区间,如果这个区间存在异或最大值>=k>=k>=k,就从rrr开始左移,寻找最近的满足条件的lll 代码 #include<bits/stdc++.h> using namespace std; #define ll long long const int maxn =3e6+5; int ti原创 2021-07-21 15:58:02 · 250 阅读 · 0 评论 -
[cf]F2. Guess the K-th Zero (Hard version)
题目 题目的询问比easy多,每次问出来之后都要把0变成1。 思路 用线段树记录一下l到rl到rl到r的sumsumsum。 代码 #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<cctype> #include<ctime> #include<iostream> #include<string> #inc原创 2021-05-07 00:28:52 · 164 阅读 · 0 评论 -
【莫队】 CF D. Cut and Stick
题目 题目链接 思路 用莫队维护l—rl—rl—r区间众数, 找到规律如下: 代码 #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<cctype> #include<ctime> #include<iostream> #include<string> #include<map> #includ原创 2021-04-21 00:19:30 · 110 阅读 · 0 评论 -
[莫队算法] 板子 P2709 小B的询问
理解 莫队算法就是通过改变询问的顺序来减少时间复杂度。 把数组分成了sqrt(n)sqrt(n)sqrt(n)块,根据块来处理问题。 板子 #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<cctype> #include<ctime> #include<iostream> #include<string>原创 2021-04-20 17:21:22 · 90 阅读 · 0 评论 -
[主席树|静态区间第k大]luogu3834
题目 题目 代码 #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<cctype> #include<ctime> #include<iostream> #include<string> #include<map> #include<queue> #include<stack&g原创 2021-04-15 00:58:59 · 65 阅读 · 0 评论 -
【线段树】Traveling Merchant
题目 有nnn个城市,它们在卖同一种物品。每个城市这个物品的起始价v[i]v[i]v[i],星期一和星期天加个为v[i]v[i]v[i],星期二和星期六价格为v[i]+d[i]v[i]+d[i]v[i]+d[i],星期三和星期五价格为v[i]+2∗d[i]v[i]+2*d[i]v[i]+2∗d[i],星期四为v[i]+3∗d[i]v[i]+3*d[i]v[i]+3∗d[i]。有一个人从sss城按顺序走到ttt城,在过程中进行了一次买卖,求最多能赚多少。 思路 创建七个线段树,分别是反推回去的城市111是星期原创 2021-04-01 14:39:10 · 108 阅读 · 0 评论 -
【线段树上二分】swust2020新生赛【苍天阻我寻你,此情坚贞如一】
题目 题目链接 思路 睡醒再来 代码 //#pragma GCC optimize("-Ofast","-funroll-all-loops") #include<bits/stdc++.h> #define int long long #define lowbit(x) (x &(-x)) #define endl '\n' #define ls x<<1 #define rs x<<1|1 using namespace std; const int INF=原创 2021-03-24 01:11:31 · 118 阅读 · 0 评论 -
[线段树区间修改] cf D. Cleaning
题目 题目链接: 思路 数组去的情况可以写为:a[1],a[2]−a[1],a[3]−a[2]+a[1],a[4]−a[3]+a[2]−a[1]a[1],a[2]-a[1],a[3]-a[2]+a[1],a[4]-a[3]+a[2]-a[1]a[1],a[2]−a[1],a[3]−a[2]+a[1],a[4]−a[3]+a[2]−a[1] 可以发现,奇数下标在奇数位为正,偶数位为负 偶数下标在奇数位为负,偶数位为正 每次调换a[i]、a[i+1]a[i]、a[i+1]a[i]、a[i+1]只用修改a[i]、原创 2021-01-21 17:14:30 · 100 阅读 · 2 评论 -
[ST表板子]luogu P3865
题目 题目链接:https://www.luogu.com.cn/problem/P3865 代码 #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<cctype> #include<ctime> #include<iostream> #include<string> #include<map>原创 2020-10-16 17:15:37 · 57 阅读 · 0 评论 -
[并查集板子] luogu P3367 【模板】并查集
题目 题目链接:https://www.luogu.com.cn/problem/P5520 代码 #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<cctype> #include<ctime> #include<iostream> #include<string> #include<map>原创 2020-10-16 00:59:07 · 83 阅读 · 0 评论