int tree[4*N]; void build(int o,int l,int r) { if(l==r) {cin>>tree[o];return;} build(ls,l,mid); build(rs,mid+1,r); tree[o] = max(tree[ls],tree[rs]); } int get(int o, int l, int r, int x) { if (l == r) return l; return tree[ls] > x ? get(ls, l, mi…
Super Mario Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5101    Accepted Submission(s): 2339 Problem Description Mario is world-famous plumber. His “burly” figure and amazing jumping abilit…
平衡数的定义是指,以某位作为支点,此位的左面(数字 * 距离)之和 与右边相等,距离是指某位到支点的距离; 题意:求区间内满足平衡数的数量 : 分析:很好这又是常见的数位dp , 不过不同的是我们这次需要枚举是哪个位置是平衡点 , 一开始我是想说搜索到最后以为 ,然后得到这个数的位数 ,在判断平衡位置 , 想到这样的话 , 这就说明了我对数位dp 还是不太熟悉的 ,因为这样的话dfs() 里面的sum , emmm是找不到状态的 : 正解: 依然是枚举平衡点的位置  ,这个思路没有问题 , 但是…
Problem Description Now you are back,and have a task to do: Given you a string s consist of lower-case English letters only,denote f(s) as the number of distinct sub-string of s. And you have some query,each time you should calculate f(s[l...r]), s[l…
DQUERY - D-query #sorting #tree English Vietnamese Given a sequence of n numbers a1, a2, ..., an and a number of d-queries. A d-query is a pair (i, j) (1 ≤ i ≤ j ≤ n). For each d-query (i, j), you have to return the number of distinct elements in the…
这题跟HDU3333差不多吧. 离线的做法很简单,不再说了 以前做过. 主席树的做法就比较暴力了.. 什么是主席树呢.. 其实是某种称号. 在该题中的体现是可持久化的线段树. 对于一个数 如果以前没出现过 就插入到主席树中 否则就删除以前那个. 再插入主席树. 注意,所有的更新和删除都是建立了新的节点来保持其历史状态的.. 对于T[i]我们存的是从1到i区间的不同的数出现了多少个. 然后这棵树是根据T[i - 1]来建立的. 代码如下..第一次写主席树. 几乎是照着爱将的代码写的. 不过他是倒着…
Description A range is given, the begin and the end are both integers. You should sum the cube of all the integers in the range.   Input The first line of the input is T(1 <= T <= 1000), which stands for the number of test cases you need to solve. E…
CA loves strings, especially loves the palindrome strings. One day he gets a string, he wants to know how many palindromic substrings in the substring S[l,r] . Attantion, each same palindromic substring can only be counted once. InputFirst line conta…
题目大概:求区间内x出现的次数 出题人yjy Description ZJK 给你一个长度为 n 的数列和 m 次询问,每次询问从第 l 个到第 r 个数中,数 x 出现了多少次.Input第一行一个整数 n,第二行 n 个整数,表示这个数列.第三行一个整数 m,表示询问数.下面 m 行,每行三个整数 l, r, x,表示询问[l, r]之间数 x 出现的次数Output对于每个询问操作,输出该询问的答案.答案之间用换行隔开,一共 m 行.Example61 1 2 3 3 181 6 13 5…
题意:找n个数中无修改的区间不同数个数 题解:使用主席树在线做,我们不能使用权值线段树建主席树 我们需要这么想:从左向右添加一到主席树上,添加的是该数字处在的位置 但是如果该数字前面出现过,就在此版本的主席树上的前面出现的位置减一,接着才在此位置上添一 这样查找是按照右区间版本的主席树来找(lef,rig)的数字 因为要将此区间每个不同的数都处在最后出现的位置 /*在线求区间内不同的数的个数:从头到尾添加到线段树(不是权值线段树,是存值的线段树)中 如果此数之前出现过就先减去,接着再加,最后在区…