
数据结构_树状数组
just_sort
Acdream.
展开
-
BZOJ 1103: [POI2007]大都市meg 树链剖分, 树状数组+DFS序
Description 在经济全球化浪潮的影响下,习惯于漫步在清晨的乡间小路的邮递员Blue Mary也开始骑着摩托车传递邮件了。 不过,她经常回忆起以前在乡间漫步的情景。昔日,乡下有依次编号为1..n的n个小村庄,某些村庄之间有一些双 向的土路。从每个村庄都恰好有一条路径到达村庄1(即比特堡)。并且,对于每个村庄,它到比特堡的路径恰好 只经过编号比它的编号小的村庄。另外,对于所有道路而言,原创 2017-02-05 17:03:38 · 432 阅读 · 0 评论 -
BZOJ 1461: 字符串的匹配 kmp套树状数组
解法:这题就是kmp匹配过程中用树状数组维护每个数字出现的次数,快速查询在前面比自己小的和等于自己的来判断是否能向后匹配///BZOJ 1461///KMP + BIT#include <bits/stdc++.h>using namespace std;const int maxn = 500010;const int maxs = 10010;int n, k, s;int a[ma原创 2017-05-04 20:42:09 · 1371 阅读 · 0 评论 -
BZOJ 1264: [AHOI2006]基因匹配Match 树状数组,DP
Description 基因匹配(match) 卡卡昨天晚上做梦梦见他和可可来到了另外一个星球,这个星球上生物的DNA序列由无数种碱基排列而成(地球上只有4种),而更奇怪的是,组成DNA序列的每一种碱基在该序列中正好出现5次!这样如果一个DNA序列有N种不同的碱基构成,那么它的长度一定是5N。 卡卡醒来后向可可叙述了这个奇怪的梦,而可可这些日子正在研究生物信息学中的基因匹配问题,于是他决定为这个奇原创 2017-04-16 20:38:22 · 812 阅读 · 0 评论 -
BZOJ 1227: [SDOI2009]虔诚的墓主人 数状数组
Description小W 是一片新造公墓的管理人。公墓可以看成一块N×M 的矩形,矩形的每个格点,要么种着一棵常青树,要么是一块还没有归属的墓地。当地的居民都是非常虔诚的基督徒,他们愿意提前为自己找一块合适墓地。为了体现自己对主的真诚,他们希望自己的墓地拥有着较高的虔诚度。一块墓地的虔诚度是指以这块墓地为中心的十字架的数目。一个十字架可以看成中间是墓地,墓地的正上、正下、正左、正右都有恰好k 棵常原创 2017-04-13 16:01:13 · 438 阅读 · 0 评论 -
CF 792D - Paths in a Complete Binary Tree lowbit,模拟
题目链接:http://codeforces.com/contest/792/problem/D 题意:根据给的这种满二叉树,U移动到父节点,R移动到右节点。L移动到左节点,当然不能继续移动不要用,问最后的数字是多少? 解法:把数字转成二进制,看看num&(-num)得到当前节点同层的最左边的节点是什么,num&-num就是树状数组里面的lowbit。 pos=num&(-num), num&原创 2017-04-01 20:30:01 · 446 阅读 · 0 评论 -
CF 787E 主席树上二分,或者离线BIT
题目链接:http://codeforces.com/contest/786/problem/C 题意:给了一个长度为n的数列,现在要问你对于每个k,k从取到n,最少可以把n分成多少段,使得每一段里面的颜色总数<=k。 解法: 所以我们倒着建主席树,然后在主席树上二分就可以对于每一个k用两个log查询到答案了。顺着建立主席树的话,你还要二分右端点,这样的话是3个log,不知道是否能过,稍加转化原创 2017-03-25 14:58:28 · 851 阅读 · 0 评论 -
Codeforces Gym 100269F Flight Boarding Optimization 树状数组维护dp
题目链接:http://codeforces.com/gym/100269 题意: 现在有n个人,s个位置和你可以划分长k个区域你可以把s个位置划分成k个区域,这样每个人坐下你的代价是该区域内,在你之前比你小的人的数量问你怎么划分这s个位置(当然,每个区域必须是连续的),才能使得总代价最小输出代价话说这个题真是读了好久好久解法:数据范围1000,显然的dpdp[i][j]表示第i个位置是第j个区原创 2017-03-28 19:39:08 · 534 阅读 · 0 评论 -
Codeforces Round #401 (Div. 2) 题解
首先先来婊一下自己。不知道自己的状态是怎么了,这场DIV2应该是最简单的DIV2了,但是我莫名其妙打崩了,在两个队友快速AK之后我还一直卡在C题,并非是不会,而是自己傻吊的开了个二维的动态数组。 int **aa, **dp; aa = new int*[n]; dp = new int *[n]; for(int j = 0; j < n; j++){原创 2017-02-25 16:23:02 · 404 阅读 · 0 评论 -
SPOJ Manipulate Dwarfs 线段树维护序列连续性 1月24日
题目链接: https://vjudge.net/problem/SPOJ-DWARFLOG 题意: 题意 N个小矮人的身高为1,2,…,N,初始按照身高从1到N的顺序排列,给出m次操作 .1 X Y 将身高为X和Y的小矮人交换位置 .2 A B 询问身高为A,A+1,…,B的小矮人是否位于连续的位置 数据 第一行为N和M,2 <= N <= 200000,2 <= M <= 20原创 2017-01-26 16:43:17 · 523 阅读 · 0 评论 -
BZOJ 4636: 蒟蒻的数列 分快,int64线段树
Description 蒟蒻DCrusher不仅喜欢玩扑克,还喜欢研究数列 题目描述 DCrusher有一个数列,初始值均为0,他进行N次操作,每次将数列[a,b)这个区间中所有比k小的数改为k,他想知 道N次操作后数列中所有元素的和。他还要玩其他游戏,所以这个问题留给你解决。Input 第一行一个整数N,然后有N行,每行三个正整数a、b、k。 N<=40000 , a、b、k<=10^原创 2017-02-21 14:48:03 · 657 阅读 · 0 评论 -
BZOJ 1109: [POI2007]堆积木Klo 神分析, LIS, BIT, 二分
Description Mary在她的生日礼物中有一些积木。那些积木都是相同大小的立方体。每个积木上面都有一个数。Mary用他的 所有积木垒了一个高塔。妈妈告诉Mary游戏的目的是建一个塔,使得最多的积木在正确的位置。一个上面写有数i 的积木的正确位置是这个塔从下往上数第i个位置。Mary决定从现有的高塔中移走一些,使得有最多的积木在正确 的位置。请你告诉Mary她应该移走哪些积木。 In原创 2017-02-07 20:05:58 · 566 阅读 · 0 评论 -
BZOJ 1106 POI2007 立方体大作战tet 模拟
Description 一个叫做立方体大作战的游戏风靡整个Byteotia。这个游戏的规则是相当复杂的,所以我们只介绍他的简单规 则:给定玩家一个有2n个元素的栈,元素一个叠一个地放置。这些元素拥有n个不同的编号,每个编号正好有两个 元素。玩家每次可以交换两个相邻的元素。如果在交换之后,两个相邻的元素编号相同,则将他们都从栈中移除, 所有在他们上面的元素都会掉落下来并且可以导致连锁反应。玩家原创 2017-02-07 16:36:30 · 788 阅读 · 0 评论 -
Codeforces Round #439 (Div. 2) 题解
比赛链接:http://codeforces.com/contest/869A. The Artful Expedient题意:给你一个n,分别输入两组n个数字,,如果这两组数字两两异或的结果与两组数字中的某一个数字相等,那么就有1个pair满足要求,如果最后结果是偶数个pair,那么就是Karen赢,否则是KOYOMI赢解法:暴力。实际上,这个题是不可能出现奇数对的情况的,直接输出"原创 2017-10-07 10:49:00 · 288 阅读 · 0 评论