数据结构
data struct
HackerTom
https://github.com/iTomxy
展开
-
UVa 12506 Shortest Names
题目:uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3950DescriptionIn a strange village, people have very long names. For example: aaaaa, bbb and abababab.原创 2016-05-13 20:39:35 · 782 阅读 · 0 评论 -
heap
用数组构建的简单的堆,C++的优先队列原创 2016-06-02 18:37:33 · 663 阅读 · 0 评论 -
csu 1811 Tree Intersection 2016湖南省赛 I
Problemacm.csu.edu.cn/csuoj/problemset/problem?pid=1811vjudge.net/contest/161962#problem/IReferenceblog.csdn.net/qwb492859377/article/details/52436186www.cnblogs.com/fightfordream/p/6801852....原创 2020-01-07 19:27:26 · 831 阅读 · 0 评论 -
hdu 6162 Ch’s gift
一棵 n 个点的树,每个节点有个 ci。m 次询问,每次求在点 s 到点 t 的最短路之间,a <= ci <= b 的 ci 的总和原创 2017-08-22 18:45:18 · 364 阅读 · 0 评论 -
hdu 3966 Aragorn's Story
一棵 n 个点的树,每给结点有个值。两种操作:树上指定路径上结点的值同时加上 k;讯问特定点的值原创 2017-09-05 23:28:48 · 341 阅读 · 0 评论 -
poj 2763 Housewife Wind
一棵 n 个点的树,有边权,一个人开始在 s 结点。两种操作:`0 u`:询问人从 s 走到 u 要走多久,之后人就走到了 u 这个点(即 s 更新为 u);`1 i w`:把第 i 条边的权值改成 w原创 2017-09-22 23:13:09 · 325 阅读 · 0 评论 -
hdu 6208 The Dominator of Strings
有 n 个字符串,问是否能找到其中一串,使得其它串都是它的子串原创 2017-09-18 23:31:53 · 495 阅读 · 0 评论 -
计蒜客 17319 The Heaviest Non-decreasing Subsequence Problem
给一个整数序列 s,每个数都有个权值,从序列中找一个非降的子序列,使得该子序列的权值和最大,求这个最大的权值原创 2017-09-24 20:22:36 · 370 阅读 · 0 评论 -
gym 101201 fast-en J Shopping
n 种物品,每种 ai元。q 个人,初始有 vi 元,按顺序买 [ li,ri ] 的物品,能买多少买多少,问最后每个人都剩多少钱原创 2017-10-05 23:03:22 · 376 阅读 · 0 评论 -
HYSBZ bzoj 4520 K远点对
给出平面上 n 个点,问第距离 k 远的点对的距离的平方是多少原创 2017-10-11 16:10:18 · 348 阅读 · 0 评论 -
HYSBZ bzoj 1941 Hide and Seek
给出平面上 n 个点,要选其中一个,使得它到其它点的曼哈顿最远距离和最近距离的差最小,求这个最小的差原创 2017-10-12 13:46:33 · 481 阅读 · 0 评论 -
hdu 4347 The Closest M Points
给出 k 维空间的 n 个点,q 个询问,每次给出一个点,问 n 个点中离它最近的 m 个点是哪些原创 2017-10-10 23:03:18 · 486 阅读 · 0 评论 -
HYSBZ bzoj 2648 SJY摆棋子
棋盘上有 n 个黑子,有 m 个操作,每次可以:放一个黑子;或放一个白子,顺便查询离与它曼哈顿距离最近的黑子的曼哈顿距离原创 2017-10-12 16:58:06 · 530 阅读 · 0 评论 -
C++ 实现决策树 ID3 算法
C++ 实现 ID3 决策树原创 2017-11-21 22:12:37 · 2871 阅读 · 2 评论 -
hdu 6109 数据分割
给出若干个条件:xi = xj 或 xi != xj,它们分属若干组,但组与组之间的分隔符没了,要重新分隔这几组条件。每一组条件的特点是:不可能成立,但去掉最后一个条件后,就可以成立。原创 2017-08-13 19:54:47 · 665 阅读 · 0 评论 -
hdu 6059 Kanade's trio
给一个序列 An,问有多少个有序数对(i, j, k),满足:i < j < k;Ai xor Aj < Aj xor Ak原创 2017-08-04 01:09:16 · 728 阅读 · 0 评论 -
poj 2104 K-th Number
区间第 k 大数,主席树模板原创 2017-07-17 22:48:27 · 309 阅读 · 0 评论 -
hdu 5818 Joint Stacks 2016 Multi-University 7
hdu 5818 Joint Stacks 2016 Multi-University Training Contest 7两个栈,支持push、pop、merge 3种操作push x y :把 y 压入栈 xpop x :栈 x 弹出一个元素,输出它的值merge x y :把 y 中的元素全部移到 x 中,并且保持所有元素的进栈时的先后顺序原创 2016-08-10 17:53:35 · 467 阅读 · 0 评论 -
poj 2528 Mayor's posters
poj 2528 Mayor's posters离散化要注意一个细节有个数组不知道为什么要开那么大还有,update() 和 query() 的时候用左闭右开形式的区间错了好多次,后来换成闭区间的形式才过的原创 2016-12-28 15:06:52 · 303 阅读 · 0 评论 -
ZOJ 1610 Count the Colors
线段树成段更新第一点,题中给出的边界是线段的两个端点,也就是说每个标号表示一个点而不是一个小线段。于是我采用标号表示它右边的一段,所以输入“x1 x2 c”,我处理成:update(x1, x2-1, c, ...)。第二点,连在一起的两段同色段要合并成一大段,但不能简单写个 pushup() 来完成,因为两个同色段可能分在两个结点所管的区间内,但又没有结点所管的区间那么长,所以会出现漏合并的情况。于是多开一个 col 数组,在 query 的时侯,把更新完的最后结果都放进这个数组中,然后再用一个循环原创 2016-12-31 18:57:48 · 345 阅读 · 0 评论 -
hdu 4027 Can you answer these queries?
题意:给一列值,每次操作要么更新都使得区间 [ left , right ] 内的每一个值都变成原来的平方根(再向下取整);要么询问区间 [ left , right ] 的值的总和。分析:这种更新不像以前见的成段更新,因为区间内每个值的变化都不一样。考虑到:1开方之后还是1,所以一个区间如果所有值都小于等于1(没说一定大于0…但按题意应该是把…)的时侯就不用再往下更新。题目说总和不超过 2^63,就算 2^64,最多开 7 次方就到 1(所以是不会太耗时的意思吧?)原创 2017-01-03 14:44:07 · 319 阅读 · 0 评论 -
14th GDCPC J. Just another binary tree
J. Just Another Binary TreeInput file: stdin Output file: stdoutDescriptionMike is familiar with binary tree.Mike likes to store binary trees into an array, from 1 to n, which means1. 1 i原创 2016-05-13 16:54:05 · 395 阅读 · 0 评论 -
hdu 1540 Tunnel Warfare
n个村庄连成一条线,有3种操作:D x:摧毁编号为 x 的村庄Q x:询问与编号为 x 的村庄相连的村庄的数量(包括 x 自身)R:修复最近一次被摧毁的那个村庄(恢复与相邻村庄的连接)原创 2017-01-09 20:03:58 · 317 阅读 · 0 评论 -
hdu 3974 Assign the task
n 个员工之间的上司下属关系成一棵树,每个员工有一个上司(老板除外)和零个或多个下属。有两种操作:C x:询问编号为 x 的员工当前的工作T x y:给编号为 x 的员工分配新工作 y当员工被分配新工作时,旧工作被覆盖;该员工和他所有的下属(包扩下属的下属)同时被分配这个新工作(一次改整棵子树)。原创 2017-01-10 21:10:24 · 375 阅读 · 0 评论 -
hust 1017 Exact cover
给定一个 n * m 的 0/1 矩阵,问能不能从中抽取若干行组成一个新矩阵,使得新矩阵中每一列都恰好包含一个1(精确覆盖问题的定义)原创 2017-03-17 17:45:28 · 391 阅读 · 0 评论 -
zoj 3209 Treasure Map
要在 p 张矩形藏宝图碎片中选若干张,恰好铺满一张 n * m 的格子图,问最少需要几张。原创 2017-03-21 17:25:34 · 424 阅读 · 0 评论 -
csu 1809 Parenthesis 2016湖南省赛 G
给出一个平衡的括号序列,q 个询问,每次问交换 a 和 b 位置的括号后得到的序列是否仍是平衡括号序列。原创 2017-05-03 01:04:05 · 536 阅读 · 0 评论 -
poj 2155 Matrix
给一个 n * n 的矩阵 A,开始时所有值是 0。有两种操作:1. Q x y:询问 A[x][y] 的值是多少2. C x1 y1 x2 y2:将以 ( x1 , y1 ) 为左下角、( x2 , y2 ) 为右上角的子矩阵中的所有值都反转原创 2017-05-08 19:55:09 · 296 阅读 · 0 评论 -
poj 1195 Mobile phones
二维线段数的单点更新、查询模板题原创 2017-05-18 21:45:21 · 283 阅读 · 0 评论 -
poj 2155 Matrix
二维线段树的成段更新原创 2017-05-18 22:03:45 · 297 阅读 · 0 评论 -
链式二叉堆
Notes写堆一般用数组,数组的下标可方便地实现二叉树的逻辑,并且在写堆时保证其是棵完全二叉树,也就保证高度是O(logn)O(logn)O(log n)的,维护的复杂度也是O(logn)O(logn)O(log n)。 之前数组版的堆实现:heap。删除、插入的原理和实现参照此篇。 现尝试用链式结构实现二叉堆,保持跟数组实现一样的复杂度。 小顶堆为例(其实看你怎么重载小于号),数据类型...原创 2018-08-15 22:43:03 · 573 阅读 · 0 评论