题目大意:给定一个序列,多次询问某个区间中所有数字出现次数的平方和
莫队算法 不解释
#include
#include
#include
#include
#include
#define M 50500
using namespace std;
struct query{
int l,r,pos;
bool operator < (const query &Y) ...
分类:
编程语言 时间:
2014-11-27 18:30:36
阅读次数:
197
题目大意:一共有M个询问,每个询问给定一个区间[L..R],求Sigma(c(i)^2)的值,其中i的值从1到K,其中c(i)表示数字i在[L..R]中的重复次数。
思路:莫队走起。
CODE:
#include
#include
#include
#include
#include
#define MAX 50010
using namespace std;
...
分类:
编程语言 时间:
2014-11-27 18:28:39
阅读次数:
205
题目大意:给定一棵树,每个点有一个颜色,提供两种操作:
1.询问两点间路径上的Σv[a[i]]*w[k],其中a[i]代表这个点的颜色,k表示这个点是这种颜色第k次出现
2.修改某个点的颜色
VfleaKing的题解见 http://vfleaking.blog.163.com/blog/static/174807634201311011201627/
带修改莫队上树……如果不带修改就正常...
分类:
其他好文 时间:
2014-11-27 14:37:22
阅读次数:
222
题目大意:给出一棵树,问任意两点之间有多少种不同的颜色,一个人可能会有色盲,会将A和B当成一种颜色。
思路:比较裸的树上莫队,写出来之后,很慢,怀疑是分块的缘故,然后果断找了当年比赛的标称交上去,瞬间rk1,大概看了一眼,他好像是直接用DFS序+曼哈顿距离最小生成树搞的,为什么会比分块快?
昨天下午看到这个题之后就一直在研究树上莫队的正确姿势,然后先写了树分块,后来看了很多牛人的SPO...
分类:
移动开发 时间:
2014-11-25 10:56:58
阅读次数:
248
题目大意:给定一个矩阵,多次求一个子矩阵中的第k小
正解:CDQ分治 不会
二维莫队? 不会
于是果断分块大法好(又是
我们将这n*n个数排序 分n次插入 每次插入n个
每次插入后 去链表上处理尚未出解的询问(我懒得写链表写了并查集) 如果当前询问的子矩阵内已经插入大于等于k个数 那么答案一定在当次插入的n个数中 暴力查找即可
时间复杂度O(n^3+nq) 好卡……
#inclu...
分类:
其他好文 时间:
2014-11-21 23:23:37
阅读次数:
304
昨天晚上做的。。。差错一直查到今天= =最后没办法问管理员要了数据才知道原来ans数组开小了233,简直沙茶这道题不就是裸的莫队嘛= =|||只要用树状数组维护当前的两种个数即可。 1 /*******************************************************....
分类:
其他好文 时间:
2014-11-19 17:44:54
阅读次数:
242
题目大意:给定一个序列,求一个区间内有多少个不同的数
正解是树状数组 将所有区间按照左端点排序 然后每次只统计左端点开始的每种颜色的第一个数就行了 用树状数组维护
我写的是莫队算法 莫队明显能搞 m√m明显慢了点但是还是能接受的一个复杂度
一开始离散化数组开小了各种秒RE…… 跪了
#include
#include
#include
#include
#include
#define M...
分类:
编程语言 时间:
2014-11-19 16:04:30
阅读次数:
240
题目大意:给出一段序列,求一个区间内的逆序对数量.
思路:又是没有修改的查询操作,又可以搞莫队了(莫队真好搞..
先把所有的询问排序,然后从头到位进行转移,记一个全局的答案,然后每次转移的时候记录逆序对的改变情况.然后从ans数组中输出..
CODE:
#include
#include
#include
#include
#include
#define...
分类:
编程语言 时间:
2014-11-18 16:02:14
阅读次数:
212
题目大意:给出一些数,问在一个区间中不同的数值有多少种,和在一个qujuianz...
分类:
编程语言 时间:
2014-11-18 14:47:38
阅读次数:
294
保证接下来提到的算法都将是在线的。虽然分了几个算法但其实是一个。一:预处理所有区间[p*block+1,q*block]代表的值。其中:p、q为自然数0、1、……、[n/block]block在前一篇文章中提到过,最适合取n/sqrt(m)。这样共记录下m个值,简单分析得平均复杂度n*sqrt(m)...
分类:
编程语言 时间:
2014-11-14 22:44:18
阅读次数:
235