Data Structure
文章平均质量分 59
Irish_Moonshine
沐月
展开
-
PAT (Advanced Level) 1135 Is It A Red-Black Tree (30分) 【红黑树】
PAT (Advanced Level) 1135 Is It A Red-Black Tree (30分)1节点是红色或黑色2根节点是黑色3所有NULL节点是黑色4所有红色节点的子节点是黑色5从任何一个节点到其每个叶子的所有路径都包含相同数目的黑色节点因为是递归的对每一个节点的左右子树进行判断,所以理论上左右子树到叶子节点的 路径上的 黑色节点的数量都是一样的。所以不必纠结 Get_Num 中的max。#include<iostream>#inclu原创 2020-09-04 02:13:16 · 257 阅读 · 0 评论 -
PTA L3-016 二叉搜索树的结构 (30分) 【BST|测试点细节】
L3-016 二叉搜索树的结构 (30分)Reference: 测试数据细节注意查询数据不在树内的情况,注意负数情况谨慎初始化数据#include<iostream>#include<cstring> //memset#include<string>#include<cstdio> //scanf#include<string>#include<utility> // pair#include<algori原创 2020-09-02 11:27:59 · 1013 阅读 · 0 评论 -
PAT (Advanced Level) 1057 Stack (30分)【Multiset||树状数组+二分||线段树分治】
PAT (Advanced Level) 1057 Stack (30分)题意:模拟一个栈,实现压入,弹出,查询栈中权值处于中间的元素。分析:对于老实人来说,肯定是踏踏实实的去模拟栈,然后另开一个数据结构用来保存栈内的元素。那么另一个数据结构理论上应该有排序的功能,而且每次插入和查询的效率应该不超过 log(N)log(N)log(N)Multiple Set,本着 PAT 特别爱考 STL 的特点。我一开始想到的就是可以自动排序的Set,然后考虑到可能有重复元素,那么就是 Multiset。理论原创 2020-08-28 17:59:29 · 182 阅读 · 0 评论 -
PAT (Advanced Level) 1099 Build A Binary Search Tree (30分)【BST】
1099 Build A Binary Search Tree (30分)思路:依据二叉搜索树的性质,我只需要知道每个节点左子树的结点总数,以及每个节点右子树的结点总数,我就可以确定当前节点元素的取值。实现方式:① 对于节点排序,DFS 遍历整棵树得到每个节点子树的结点总数;② 根据当前取值区间和左子树节点总数确定当前位置的取值,递归继续赋值;③ 通过 BFS实现层序遍历。#include<iostream>#include<cstring> //memset#i原创 2020-08-16 13:54:42 · 185 阅读 · 0 评论 -
PAT (Advanced Level) 1123 Is It a Complete AVL Tree (30分)【AVL】
PAT (Advanced Level) 1123 Is It a Complete AVL Tree (30分)构建一颗完全二叉树(相关代码有注释)通过BFS实现层次遍历(亦可与获取完全二叉树合并,在一个DFS中实现)通过DFS这棵树获取每个结点在完全二叉树的下标 indexindexindex,检查该完全二叉树是否有空位,即可做出判断在使用指针进行操作的时候,一定特别注意指针为空的情况!!!#include<iostream>#include<cstring>#原创 2020-08-04 21:06:46 · 163 阅读 · 0 评论 -
牛客网暑期ACM多校训练营(第三场)E Sort String【循环节】
https://www.nowcoder.com/acm/contest/141/E用后缀数组和哈希操作发现都会超时,后经发现答案跟循环节有关,只需用next数组找出循环节即可。AC代码:#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>...原创 2018-07-26 19:25:11 · 305 阅读 · 0 评论 -
牛客网暑期ACM多校训练营(第三场)C Shuffle Cards【Splay】
https://www.nowcoder.com/acm/contest/141/C相邻区间的交换可以通过三次区间反转实现。而区间反转可以通过Splay高效实现。#include <cstdio>#include <iostream>#define il inline#define lson l,mid-1,now#define rson mid+1,r...原创 2018-07-26 19:29:32 · 456 阅读 · 0 评论 -
牛客网暑期ACM多校训练营(第一场) J Different Integers【离线+树状数组||莫队||主席树】
https://www.nowcoder.com/acm/contest/139/J树状数组:询问两端区间其中不同数字的个数,可以离线,可以复制区间使得两个区间变成一个区间上的询问。莫队:同样是离线,对于这个题来说有些许暴力,不过问题不大。树状数组:#include<bits/stdc++.h>using namespace std;const int max...原创 2018-07-22 18:26:15 · 203 阅读 · 0 评论 -
牛客网暑期ACM多校训练营(第五场)F take【线段树】
https://www.nowcoder.com/acm/contest/143/F题意:给出一条n个节点的路,从1走到n,每个点有一定概率出现一个价值为w的钻石,如果这个钻石比手里的钻石大,他就把之前的扔了选这个。求扔的期望。分析: 每一个点的扔的概率为,之前比它大的钻石都没有出现的概率。 那么我们就可以通过线段树来维护这个概率,用前缀积实现。#include<iostre...原创 2018-08-12 04:01:50 · 369 阅读 · 0 评论 -
2018 Multi-University Training Contest 7 1008 Traffic Network in Numazu【树链剖分】
http://acm.hdu.edu.cn/contests/contest_showproblem.php?pid=1008&cid=808题意:NNN个节点NNN条边的连通图,有删改操作和在线查询两点间的最短路。分析:相当于是一颗树上多了一条边,那么找到一条这样的边(满足删除之后余下整体为树)把它删掉。对于两点间的查询,由于有修改,就采用树链剖分跑线段树的方法来解决就OK。最后...原创 2018-08-13 18:41:25 · 372 阅读 · 0 评论 -
HDU 2222 Keywords Search【ACAM】
HDU 2222 Kerwords Search代码风格模仿自:USETC每周算法讲解,AC自动机,郭老师!输入一个T,对于每一个T给你一个n,接下来输入P个模式串,然后给你一个L串,L中出现了多少P中的串。这是一道比较基础的AC自动机问题,我只不过是为了不想用板子而直接写,因此写此博文。将容易遗漏或者写错的地方进行了注释的标注,用于提示自己,也用于与大家进行分享。#include<...原创 2019-06-07 13:07:21 · 181 阅读 · 0 评论 -
简单决策树调用&可视化【Python】
决策树部分理论支撑1* 通过选取一定的特征来降低数据的不确定性(熵)2* 建议寻找多分类问题的最优特征的最优候选值。把多分类问题转换成多几层递归的二分类问题,防止数据对特征值的控制敏感。3* 停止条件取得了最够好的分类结果递归到了预定的最深深度叶子节点的纯度分裂次数达到极限最大特征数. . .4* 相关公式entropy(D)=−∑i=1nPilog2Pientropy...原创 2019-07-16 17:53:27 · 747 阅读 · 0 评论 -
Code vs 3160 最长公共子串【SAM】
http://codevs.cn/problem/3160/初学后缀自动机,先按套路,后再丰富;将一个串录入SAM,然后用另一个串进行匹配。#include &amp;lt;bits/stdc++.h&amp;gt;using namespace std;const int N=2e5+2333;int n,m,ch[N][30],fa[N],a[N],l[N];int np,nq,p,q,l...原创 2018-07-26 10:37:52 · 221 阅读 · 0 评论 -
HDU 1242 Rescue【优先队列】
Rescue Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 32843 Accepted Submission(s): 11493Problem DescriptionAngel was caught by the MOLIGP原创 2017-11-20 00:08:15 · 289 阅读 · 0 评论 -
HDU 3478 Catch【kurskal+二分图染色】
Problem Description A thief is running away! We can consider the city where he locates as an undirected graph in which nodes stand for crosses and edges stand for streets. The crosses are labeled fro原创 2017-10-27 11:08:16 · 331 阅读 · 0 评论 -
POJ 2299 Ultra-QuickSort【线段树】
Ultra-QuickSort Time Limit: 7000MS Memory Limit: 65536K Total Submissions: 64050 Accepted: 23920 DescriptionIn this problem, you have to analyze a particular sorting algorithm. The algor原创 2017-10-12 16:55:49 · 319 阅读 · 0 评论 -
HDU 1251 统计难题【字典树】
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others) Total Submission(s): 46494 Accepted Submission(s): 16531Problem DescriptionIgnatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不原创 2017-12-02 10:42:02 · 235 阅读 · 0 评论 -
HDU 3074 Multiply game【线段树||zkw线段树||扩展gcd*乘法逆元||欧拉定理】
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2818 Accepted Submission(s): 1002Problem DescriptionTired of playing computer games, alpc23原创 2017-11-27 16:37:17 · 354 阅读 · 0 评论 -
2017浙工大院赛预赛 D 简单的数据结构【双端队列||数组模拟】
时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言262144K 64bit IO Format: %lld 题目描述 栗酱有一天在网上冲浪的时候发现了一道很有意思的数据结构题。 该数据结构形如长条形。 一开始该容器为空,有以下七种操作。 1 a从前面插入元素a 2 从前面删除一个元素 3 a从后面插入一个元素 4 从后面删除一个元素 5原创 2017-12-16 23:48:31 · 355 阅读 · 0 评论 -
The 18th Zhejiang University Programming Contest Sponsored by TuSimple - C Mergeable Stack【链表】
Mergeable Stack Time Limit: 2 Seconds Memory Limit: 65536 KB Given initially empty stacks, there are three types of operations:1 s v: Push the value onto the top of the -th stack.2 s: Pop...原创 2018-04-07 19:10:27 · 316 阅读 · 0 评论 -
常规线段树【Template】
#include<iostream>#include<cstring>#include<cstdio>#include<algorithm>#include<queue>using namespace std;#define ll long long int#define inf 0x3f3f3f3f#define ls ...原创 2018-04-08 14:19:11 · 187 阅读 · 0 评论 -
2018年东北农业大学春季校赛 L wyh的天鹅【离散化+二分+线段树lglg||线段树lg||主席树lg】
链接:https://www.nowcoder.com/acm/contest/93/L 来源:牛客网时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 你们wyh学长小时候住在河边,因为周围的生态环境非常好,所以经常会有天鹅浮在湖面上,每只天鹅都长得不一样,它们偶尔排成一排,...原创 2018-04-08 20:14:46 · 183 阅读 · 0 评论 -
省ZJ2017 F Heap Partition【贪心+权值线段树】
A sequence S = {s1, s2, …, sn} is called heapable if there exists a binary tree T with n nodes such that every node is labelled with exactly one element from the sequence S, and for every non-root nod...原创 2018-04-24 18:59:42 · 290 阅读 · 0 评论 -
ZOJ 3261 Connections in Galaxy War【逆向带权并查集】
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3563 Connections in Galaxy War Time Limit: 3 Seconds Memory Limit: 32768 KB In order to strengthen the defense ability, many stars in...原创 2018-05-04 05:21:42 · 205 阅读 · 0 评论 -
D. Swaps in Permutation【并查集+优先队列】
time limit per test5 seconds memory limit per test256 megabytes inputstandard input outputstandard output You are given a permutation of the numbers 1, 2, …, n and m pairs of positions (aj, bj).At原创 2017-11-20 00:14:21 · 383 阅读 · 0 评论 -
POJ Buy Tickets【线段树】
Buy Tickets Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 21250 Accepted: 10406 DescriptionRailway tickets were difficult to buy around the Lunar New Year in China, so we mu原创 2017-09-10 15:11:57 · 316 阅读 · 0 评论