数据结构
a1214034447
这个作者很懒,什么都没留下…
展开
-
BZOJ 4066 - KDtree + 重构
题目链接:点击这里解题思路:这题被强制在线了如果是离线(BZOJ 2683)可以CDQ分治 + 树状数组做.所以只能用KDtree了.若每次都将新节点插入原DKT中,最终会导致树会非常的不平衡,而失去了意义,导致超时.所以我们要设置一个阈值,当节点数到达阈值时就对KDT进行重构保证稳定.#include<cstdio>#include<cs...原创 2018-10-03 13:59:00 · 277 阅读 · 0 评论 -
BZOJ 2648 - KDtree+新建节点
题目链接:点击这里解题思路:对原始的N的点建立KDtree,对于M个操作,黑棋加入新节点,白棋查询最近曼哈顿距离.这就迎刃而解了.#include<bits/stdc++.h>#define inf 0x3f3f3f3f#define fi first#define se secondusing namespace std;const int mx ...原创 2018-10-03 13:53:06 · 367 阅读 · 0 评论 -
Educational Codeforces Round 112 (Rated for Div. 2) 题解
题目链接:http://codeforces.com/contest/1555A. PizzaForcessolve: gcd是120,但是要处理240之内的最优情况,因为121就不是120+1。#include<bits/stdc++.h>using namespace std;#define inf 0x3f3f3f3ftypedef long long ll;const int mx = 3e2 + 10;int sum[mx];int main(){ mem.原创 2021-08-03 22:36:51 · 227 阅读 · 0 评论 -
Codeforces Round #594 (Div. 2) 题解
题目链接:https://codeforces.com/contest/1248A - Integer Points水题#include<bits/stdc++.h>using namespace std;const int mx = 1e5+5;typedef long long ll;int a[mx],b[mx]; int main(){ int ...原创 2019-11-05 16:00:54 · 297 阅读 · 0 评论 -
2019-2020 ACM-ICPC Brazil Subregional Programming Contest 题解
题目链接:http://codeforces.com/gym/102346A.Artwork将相交的圆用并查集合并,最后查询一下是否有一个或者两个在一个并查集里面的圆形成这样的一个封闭#include <bits/stdc++.h>#define x first#define y second#define mid (l+r>>1)#def...原创 2019-10-30 15:17:41 · 2108 阅读 · 0 评论 -
UVALive - 6889[并查集+STL]
题目链接:https://vjudge.net/contest/301219#problem/F解题思路:枚举每个矩形的时候,看它是否需要和其他人合并只需要查看它的外形边框是否又被标记,这个可以直接用离散化,然后set存一下每个矩形四个格子,就可以用log(n)找到合并的矩形,然后后并查集并一下就好了。#include <bits/stdc++.h>#define...原创 2019-05-12 21:03:26 · 196 阅读 · 0 评论 -
Codeforces Round #548 (Div. 2) 题解
题目链接http://codeforces.com/contest/1139A. Even Substrings判断个位是否是奇数即可。#include <iostream>#include <set>#include <array>#include <vector>using namespace std;typedef...原创 2019-03-31 18:03:58 · 342 阅读 · 0 评论 -
Comet OJ - Contest #0 题解
题目链接:https://cometoj.com/contest/34/problemsA.解方程,(由公式可知y>=z,0<=n<=根号x)移项再平方可得那么如果n是个平方数,很明显解有无穷多个。否则必须满足 n = 4*y*z才有整数解,即 x = (z+y)。所以只要枚举n/4的所有因子就好了。(注意这样做卡longlong,要想不卡去筛素数吧)...原创 2019-04-03 21:15:08 · 649 阅读 · 1 评论 -
Codeforces Round #546 (Div. 2) 题解
题目链接:http://codeforces.com/contest/1136A. Nastya Is Reading a Book水题。#include <bits/stdc++.h>#define fi first#define se second #define lson l,mid,rt<<1#define rson mid+1,r,rt...原创 2019-03-19 21:16:01 · 203 阅读 · 0 评论 -
hdu 6392 - 线段树 + 并查集
题目思路:http://acm.hdu.edu.cn/showproblem.php?pid=6392解题思路:线段树叶子维护每列并查集的情况,每个区间维护最左端列的祖先和最右端列的祖先(这里它们维护的祖先是区间内的祖先不是整个矩形的祖先)。在区间合并的时候要先初始化左右子区间的左右端列的祖先,因为它们的祖先可能已经不再子区间中了,在之前的合并中已经跑出去。在这次新的合并中要使得...原创 2019-03-02 21:37:10 · 328 阅读 · 0 评论 -
hdu 3308 - 线段树
题目链接:https://vjudge.net/problem/HDU-3308 解题思路:题目很明显的线段树,但不是那么好写。要求区间最长的连续递增长度,那么需要多考虑的就是当左右区间合并时如果右区间的左边界值大于左区间的右边界值时,会合并出一个新的连续递增段,所以我们还要维护一个区间的左右边界最长上升长度才行。 #include<bits/stdc++.h>...原创 2019-02-26 16:32:41 · 145 阅读 · 0 评论 -
Gym - 101955E(2018 ICPC沈阳) - 曼哈顿转切比雪夫+线段树
题目链接:https://vjudge.net/problem/Gym-101955E 解题思路:距离转化:https://www.cnblogs.com/zwfymqz/p/8253530.html将一个点(x,y)的坐标变为(x+y,x−y)后,原坐标系中的曼哈顿距离 = 新坐标系中的切比雪夫距离将一个点(x,y)的坐标变为((x+y)/2,(x−y)/2) 后,原坐标系中...原创 2019-02-24 18:55:10 · 528 阅读 · 0 评论 -
ZOJ - 4066(2018 ICPC青岛现场赛 I)
题目链接:https://vjudge.net/problem/ZOJ-4066 解题思路:"枚举最小值+线段树维护可行解最大值最小化"我们可以把所有可选区间化成n个长度为1的区间,和n-1个长度为2的区间。将这2*n-1个数从大到小排序,枚举最小值,然后线段树查询更新区间最小值(因为最大到小插入所以之前的肯定大于现在的值)每个区间维护这么一个东西;struct node...原创 2018-12-07 19:27:24 · 617 阅读 · 0 评论 -
ACM-ICPC 2018 徐州赛区网络预赛 G - set
题目链接:点击这里 解题思路:本题如果倒着做,那么问题就变得十分简单,当插入一个点时,去找它的右边最近的一个点和左边最近的一个点,此点被这两个点夹在中间,那么它的贡献一定只受限于这两个点,所以用set维护一下很容易就能做。 #include<bits/stdc++.h>using namespace std;typedef long long ll;cons...原创 2018-09-10 23:38:21 · 167 阅读 · 0 评论 -
Codeforces 982D - STL
解题思路:首先可以得到答案肯定是n个数里面的一个数+1,那么我们从大到小枚举它们,将它们之间的间隔距离和位置用set维护,当维护间隔距离的set里面的数都相等时,说明所有的间隔距离都一样,那么第i个数的值+1是一个可行解。注意n为1的时候要特判。#include<bits/stdc++.h>#define fi first#define se secondusing namesp...原创 2018-06-01 17:58:29 · 522 阅读 · 0 评论 -
福建省第八届程序设计大赛专题
A:鸡兔同笼问题。小学生都会。。。B:判断两三角形是否相交或包含或相离。那么判断一个点是否在一个多边形内的算法有多种可以看角和是不是360或者用这个点延伸一条射线看他与多边形的交点是否为奇数就行了。#include <stdio.h>#include <cstring>#include <map>#include <string...原创 2017-07-24 18:57:34 · 331 阅读 · 0 评论 -
Codeforces Round #424 Div. 2专题
A题:波峰的时候可以连续相等否则其他不行。然后满足只有一个波峰或者单调就行了。代码:#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>#include <vector>#include <queue>...原创 2017-07-20 18:53:57 · 219 阅读 · 0 评论 -
Codeforces Round #423 Div. 2-专题
A:水题不懂的看下代码就懂了#include#include#include#include#include#include#define lson l,mid,rt<<1#define rson mid+1,r,rt<<1|1#define inf 0x3f3f3f3fusing namespace std;typedef long long ll;const int原创 2017-07-12 20:33:51 · 208 阅读 · 0 评论 -
hdu1251-字典树
链接:点击打开链接解题思路:以类似链表的形式构造出一个字典树,每次将一个字符串加入树中,对该串个每个前缀进行判断(自然没出现过要开辟空间新建节点),然后对该节点维护的sum++就可以了。会建树查询应该也没问题吧~代码:#include#include#include#include#includeusing namespace std; int n;struct原创 2017-05-11 19:02:59 · 268 阅读 · 0 评论