数据结构
文章平均质量分 75
ACMiao_
Passion、Love、Action
展开
-
HDU3450 Counting Sequences(树状数组+dp)
题意:找出长度大于1的子序列且每一对相邻的数差不超过d的个数。可以很容易想到n^2的算法,蓝儿n有1e5,所以想到了dp。用bit数组存储符合条件的序列的个数,bit[i]表示以i结尾的符合条件的个数。从头开始检索。对每个a[i],怎么计算符合条件的个数呢?,由于我们的数组记录的是以a[i]结尾的,由题可知,我们要找的与a[i]相邻的数t要满足a[i]-d怎么高效的更新sum呢?很容易原创 2015-09-10 14:52:31 · 608 阅读 · 0 评论 -
UVALive 4329 Ping pong(树状数组)
题意:n个球员每人有不同能力值。选两选手一裁判,裁判序号和能力值都在两选手间,问有多少种选法。思路:b[i], c[i]维护第i个球员左右两边比他能力小的人数。用树状数组,先从左往右扫一遍,bit[x]记录是否出现了能力x的人,那么比i能力小的人的个数为sigma bit[i]。最后扫一遍每个球员做裁判的选法得到答案。#include #include #include #inclu原创 2015-12-16 00:34:10 · 427 阅读 · 0 评论 -
HDU 2196 Computer
题意:问每个点到任意点的最远距离为多少。思路:任取一点dfs一遍找到其最远点,再从最远点dfs一遍找到另一个最远点。这样所有点的最远距离一定是到这两个点之一。再反过来跑一遍dfs更新所有点的dist。#include #include #include #include #include #include #include #include #include #inclu原创 2015-12-04 16:57:26 · 345 阅读 · 0 评论 -
UVa 10493 Cats, with or without Hats
题意:一喵可带一帽,一帽可装n喵。m只喵没带帽子,有且只有1只喵不在其它喵带的帽子里。问有几喵。思路:不在其它喵帽子里的那个喵是树根。由此形成一棵树,每只喵要么无子节点,要么有n个子节点。显然总数y为帽子的里喵的和加上不在帽子里的喵。设总数为y,则有y = (y - m) * n + 1 => y = (n*m - 1) / (n - 1)。注意n==1时,m可为任意值,即Mult原创 2015-12-04 12:54:41 · 594 阅读 · 0 评论 -
UVa 10459 The Tree Root(树)
题意:以同一棵树以i为根得到不同的最大深度。求最大深度最小的点和最大的点集。思路:任取一点dfs一遍找到其最远点,再从最远点dfs一遍找到另一个最远点。这样所有点的最远距离一定是到这两个点之一。再反过来跑一遍dfs更新所有点的dist。这样就得到了所有节点的为根时的最大深度。类似的题:http://acm.hdu.edu.cn/showproblem.php?pid=219原创 2015-12-04 17:12:12 · 424 阅读 · 0 评论 -
HDU 5592 ZYB's Permutation(树状数组)
题意:给出i位置的逆序对数前缀和,求原序列。思路:从n开始往前推,树状数组维护已经出现的比i大的有几个,然后二分找。O(nlognlogn)。#include #include #include #include #include #include #include #include #include #include #include #include using原创 2015-12-05 22:00:54 · 364 阅读 · 0 评论