
数据结构
文章平均质量分 57
TaoSama
The ACM road begins.
展开
-
Codeforces #307 (div2)
A. GukiZ and Contest题意: 按rating排名 相同rating同名次 但是这个名次要计算人数思路: sort乱搞就可以了 - - 参考code://// Created by TaoSama on 2015-06-13// Copyright (c) 2015 TaoSama. All rights reserved.////#pragma c原创 2015-06-16 02:45:48 · 561 阅读 · 0 评论 -
BZOJ 2038 小Z的袜子(hose)(莫队算法)
题意: 中文题面中文题面分析: 对于L,R的询问。设其中颜色为x,y,z,...的袜子的个数为a,b,c,...对于L,R的询问。设其中颜色为x,y,z,...的袜子的个数为a,b,c,... 那么ans(L,R)=C2a+C2b+C2c+...C2R−L+1=(a∗(a−1)/2+b∗(b−1)/2+c∗(c−1)/2+...)(R−L+1)∗(R−L)/2)那么ans(L,R)=原创 2016-01-25 23:14:33 · 528 阅读 · 0 评论 -
Codeforces Round #340 (Div. 2) E. XOR and Favorite Number(莫队算法)
题意: 给定N≤105个数的序列,Q≤105次询问,给定一个数K≤106给定N\le 10^5个数的序列, Q\le 10^5次询问, 给定一个数K\le 10^6 询问[L,R]中,满足i≤j,i,j∈[L,R],且ai⊕ai+1⊕⋯⊕aj=K,(i,j)对有多少个询问[L,R] 中, 满足i\le j,i,j\in[L,R], 且a_i\oplus a_{i+1}\oplus\cdot原创 2016-01-25 23:28:38 · 429 阅读 · 0 评论 -
NBUT 1457 Sona(莫队算法)
题意: 给定N≤105的序列,Q≤105次询问给定N\le 10^5的序列, Q\le 10^5次询问 每次询问求[L,R]中每个数字出现次数的立方和每次询问求[L,R]中每个数字出现次数的立方和分析: 离散化之后莫队模版题离散化之后莫队模版题代码://// Created by TaoSama on 2016-01-25// Copyright (c) 2015 TaoS原创 2016-01-26 00:30:07 · 598 阅读 · 0 评论 -
BNUOJ 51275 道路修建(并查集)
题意: 无向图G初始有n个点,从1到n依次标号,但是没有边无向图G初始有n个点,从1到n依次标号,但是没有边 接下来有m次操作,从1到m依次标号,你需要对每种操作输出相应的结果,操作分为两种:接下来有m次操作,从1到m依次标号,你需要对每种操作输出相应的结果,操作分为两种: 0 u v:加入边(u,v)。输出加边后图G中连通块的个数。0\ u\ v:加入边(u,v)。输出加边后图G中原创 2016-02-12 23:51:37 · 583 阅读 · 0 评论 -
51nod 1376 最长递增子序列的数量(dp、CDQ分治 | BIT)
题意: N≤5×104的序列,0≤Ai≤109,求LIS的数量N\le5\times10^4的序列, 0\le A_i\le 10^9, 求LIS的数量分析: f[i]:以第i个数结尾的LIS的长度,和该长度的LIS数量f[i]:以第i个数结尾的LIS的长度, 和 该长度的LIS数量 转移的话,显然f[i].first=max{f[j].first}+1,j<i且a[j]<a[i]转原创 2016-02-16 22:25:23 · 1779 阅读 · 2 评论 -
HihoCoder 1269 优化延迟(二分、优先队列)
题意: 不是很好解释,反正中文题目就不写了不是很好解释,反正中文题目就不写了分析: 可以发现缓存越大,我们就越能拿出最大的那个数,然后让它的贡献变小可以发现缓存越大,我们就越能拿出最大的那个数,然后让它的贡献变小 所以这里有单调递减性,随着缓存变大所以这里有单调递减性,随着缓存变大 然后直接二分缓存大小,优先队列模拟即可然后直接二分缓存大小,优先队列模拟即可代码:////原创 2016-03-07 16:48:54 · 593 阅读 · 0 评论 -
Educational Codeforces Round 8 E. Zbazi in Zeydabad(BIT)
题意: 求n∗m,n,m≤2000的字符串矩阵里,z有几个,单个z也算求n*m, n,m\le2000的字符串矩阵里, z有几个, 单个z也算 ‘z′字形:一个正方形中,第一行和最后一行以及副对角线都是z,其他的无所谓‘z’字形:一个正方形中, 第一行和最后一行以及副对角线都是z, 其他的无所谓分析: 首先我们有显然的O(n3)做法,预处理(x,y)的向左l[i][j],向右r[j]原创 2016-02-22 22:21:05 · 458 阅读 · 0 评论 -
HDU 4605 Magic Ball Game(离线、BIT)
题意: 根为1的N≤105个节点的无向树,所有结点有2个儿子或者没有儿子根为1的N\le 10^5个节点的无向树, 所有结点有2个儿子或者没有儿子 每个节点的重量wi≤109,然后有一个球,从根开始往儿子结点走每个节点的重量w_i\le 10^9, 然后有一个球, 从根开始往儿子结点走 每碰到一个节点,有三种情况:每碰到一个节点,有三种情况: 如果此球重量等于该节点重量或者没有原创 2016-02-28 00:44:56 · 401 阅读 · 0 评论 -
UVALive 6910 Cutting Tree(并查集)
题意: 给定N≤2×104的一棵树,Q≤5×103操作,Q a b查询(a,b)是否连通,C x删去x和x父亲这条边,如果边不存在忽略本次操作给定N≤2×10^4的一棵树,Q≤5×10^3操作,Q\ a \ b查询(a,b)是否连通,C\ x删去x和x父亲这条边,如果边不存在忽略本次操作分析: 逆向思维,离线倒着做并查集,删边变为加边,保存答案即可。逆向思维,离线倒着做并查集,删边变为加边原创 2015-12-21 20:39:37 · 545 阅读 · 0 评论 -
Codeforces Round #333 D. Lipshitz Sequence (单调栈)
题意: 求一个序列的所有子序列的L(h)的和求一个序列的所有子序列的L(h)的和分析: 我们可以把序列中所有的元素两两连边,我们发现相邻的两个元素一定是最大斜率贡献者之一,也就是L(h)我们可以把序列中所有的元素两两连边, 我们发现相邻的两个元素一定是最大斜率贡献者之一, 也就是L(h) 然后我们用单调栈维护相邻元素差值作为最大值,左右能维护到的距离Li,Ri然后我们用单调栈维护相邻原创 2015-11-30 02:50:23 · 447 阅读 · 0 评论 -
UVA 11775 Unique Story(LCS [LIS] + BIT)
题意: 求两个序列不相同的序列个数,n≤1000求两个序列不相同的序列个数, n \leq 1000分析: −−我直接正着搞,dp状态很显然,dp[i][j]:=以a[i],b[j]结尾的不相同的序列个数- - 我直接正着搞, dp状态很显然, dp[i][j]:=以a[i], b[j]结尾的不相同的序列个数 但事实上非常难转移,存在重复的情况,搞了昨晚一个晚上也没解决但事实上非常难原创 2015-11-23 23:23:58 · 298 阅读 · 0 评论 -
POJ 2886 Who Gets the Most Candies? (三种姿势点草动态求第k大)
Who Gets the Most Candies?题意: N个孩子顺时针坐成一个圆圈且从1到N编号,每个孩子手中有一张标有非零整数的卡片。第K个孩子先出圈,如果他手中卡片上的数字A大于零,下一个出圈的是他左手边第A个孩子。否则,下一个出圈的是他右手边第(-A)个孩子。第p个出圈的孩子会得到F(p)个糖果,F(p)为p的因子数。求得到糖果数最多的是哪个孩子及得到多少糖果。思路:模拟原创 2015-06-17 02:19:48 · 750 阅读 · 0 评论 -
Codeforces #310(div2)
A. Case of the Zeros and Ones题意: 我爱消除 - - 相邻的01就会被消除 问最后能剩下多少~思路: 仔细观察我们发现 只要存在不相同的数 那么它们一定会被消除 最后一定为全0或者全1序列那么答案就是abs(n_'0' - n_'1')了参考code://// Created by TaoSama on 2015-06-27// Cop原创 2015-06-28 17:44:41 · 688 阅读 · 0 评论 -
ACdream 简单数据结构 专题
A - 风之国题意: 给出X轴上N个点的坐标 X轴上的点按大小两两互相连通 现在要必须干掉K条路 求最小花费分析: dp+线段树优化 我表示不会 copy一遍题解 首先题目给出的城市坐标不是按X轴升序的, 那么我们就将每个城市根据坐标从左到右映射到X轴上的1~n 设dp[i]:= 到第 i 个点(包括第i个点)时, 处理掉前面所有必须不连原创 2015-09-22 00:18:43 · 982 阅读 · 0 评论 -
POJ 2823 Sliding Window (单调队列)
题意: 模版题代码://// Created by TaoSama on 2015-09-22// Copyright (c) 2015 TaoSama. All rights reserved.////#pragma comment(linker, "/STACK:1024000000,1024000000")#include #include #include #i原创 2015-10-06 01:28:33 · 281 阅读 · 0 评论 -
ZOJ 3641 Information Sharing (并查集 + set)
题意: 给定每个人身上所带的消息以及若干个集合的合并操作,每次动态问某个人所属的集合中,拥有的信息有几个给定每个人身上所带的消息以及若干个集合的合并操作,每次动态问某个人所属的集合中,拥有的信息有几个分析: 并查集将分享的合并到一起,按秩合并保证复杂度,信息用set维护就好了,复杂度为O(10nlog10n)并查集将分享的合并到一起, 按秩合并保证复杂度, 信息用set维护就好了, 复杂度原创 2015-10-09 02:46:31 · 404 阅读 · 0 评论 -
UVA 11997 K Smallest Sums (多路归并)
题意: 求k∗k矩阵每个选一个数的kk组合的前k小和求k*k矩阵每个选一个数的k^k组合的前k小和分析: 首先对于n=2的状况,两个数组为a,b首先对于n=2的状况,两个数组为a,b 那么我们对于每个ai可以得到那么我们对于每个a_i可以得到 1:a[1]+b[1]<=a[1]+b[2]<=...<=a[1]+b[n]1:a[1]+b[1]<=a[1]+b[2]<=...<=a原创 2015-11-12 16:50:24 · 369 阅读 · 0 评论 -
UVA 12003 Array Transformer (分块)
题意: 给出数组A[1,2,...,n]和m条指令,每条指令形如(L,R,v,p)表示统计出A[L]...A[R]中严格小于v的有多少个,然后把A[p]修改成uk/(R−L+1)给出数组A[1,2,...,n]和m条指令,每条指令形如(L,R,v,p)表示统计出A[L]...A[R]中严格小于v的有多少个,然后把A[p]修改成uk/(R-L+1)分析: 分块暴力搞一搞,存一下原来的分块暴力原创 2015-11-12 17:53:13 · 459 阅读 · 0 评论 -
HDU 2222 Keywords Search (ac自动机)
题意: 多模式串匹配母串,求模式串的出现次数多模式串匹配母串, 求模式串的出现次数代码://// Created by TaoSama on 2015-10-31// Copyright (c) 2015 TaoSama. All rights reserved.////#pragma comment(linker, "/STACK:1024000000,1024000000")原创 2015-11-12 18:00:57 · 286 阅读 · 0 评论 -
HDU 4619 Warm up 2(贪心、并查集 | 二分图最大独立集)
题意: 1∗2的多米诺骨牌,n≤1000个横向的,m≤1000个纵向的1*2的多米诺骨牌, n\le 1000个横向的, m\le 1000个纵向的 横向的之间互相没有交点,纵向也是横向的之间互相没有交点, 纵向也是 现要删掉几个,求剩下的最都没有交点的个数现要删掉几个, 求剩下的最都没有交点的个数分析: 一开始想只删纵的或者横的,然后反例就是这种图形一开始想只删纵的或者横的,原创 2016-03-01 02:44:47 · 641 阅读 · 0 评论