总时间限制: 
10000ms

单个测试点时间限制: 
1000ms

内存限制: 
262144kB
描述

给一个长为N的数列,有M次操作,每次操作是以下两种之一:

(1)修改数列中的一个数

(2)求数列中某个值出现了多少次

输入
第一行两个正整数N和M。
第二行N的整数表示这个数列。
接下来M行,每行开头是一个字符,若该字符为'M',则表示一个修改操作,接下来两个整数x和y,表示把x位置的值修改为y;若该字符为'Q',则表示一个询问操作,接下来一次整数x,表示求x这个值出现了多少次。
输出
对每一个询问操作单独输出一行,表示答案。
样例输入
5 3
1 2 1 2 1
Q 2
M 1 2
Q 2
样例输出
2
3
提示
1<=N<=10^5,1<=M<=10^5,输入保证合法,且所有整数可用带符号32位整型存储。
简述一下本人看到此题的内心变化:
第一眼:线段树!
第二眼:带修改莫队!
第三眼:刚刚眼瞎了,。。。。一波map带走,,,
 int ans=;
for (int a=;a<=n;a++)
ans += a; for (int a=;a<=n;a+=) {
ans += a;
ans += a+;
} int s=(int)sqrt(n);
for (int a=;a<=n;a++)
belong[a]=(a-)/s+;
for (int a=;a<=n;a++)
right[belong[a]]=a;
for (int a=n;a>=;a--)
left[belong[a]]=a;
for (int a=;a<=n;a++)
sum[belong[a]]+=z[a]; int query(int l,int r) {
int ans=;
if (belong[l]==belong[r]) {
for (int a=l;a<=r;a++)
ans+=z[a]+col[belong[a]];
}
else {
for (int a=l;a<=right[belong[l]];a++)
ans+=z[a]+col[belong[a]];
for (int a=belong[l]+;a<belong[r];a++)
ans+=sum[a];
for (int a=left[belong[r]];a<=r;a++)
ans+=z[a]+col[belong[a]];
}
return ans;
} void modify(int l,int r,int v) {
if (belong[l]==belong[r]) {
for (int a=l;a<=r;a++) {
z[a]+=v;
sum[belong[a]]+=v;
}
}
else {
for (int a=l;a<=right[belong[l]];a++) {
z[a]+=v;
sum[belong[a]]+=v;
}
for (int a=belong[l]+;a<belong[r];a++) {
col[a]+=v;
sum[a]+=(right[a]-left[a]+)*v;
}
for (int a=left[belong[r]];a<=r;a++) {
z[a]+=v;
sum[belong[a]]+=v;
}
}
}

14:Challenge 7(map大法好)的更多相关文章

  1. Java 集合深入理解(14):Map 概述

    点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 终于把 List 常用的几种容器介绍完了,接下来开始 Map 的相关介绍. 什么是 Map Java 中的 Map 接口 ...

  2. Map拷贝 关于对象深拷贝 浅拷贝的问题

    问题:map拷贝时发现数据会变化. 高能预警,你看到的下面的栗子是不正确的,后面有正确的一种办法,如果需要看的话的,请看到底,感谢各同学的提醒,已做更正,一定要看到最后      先看例子:     ...

  3. Etl之HiveSql调优(设置map reduce 的数量)

    前言: 最近发现hivesql的执行速度特别慢,前面我们已经说明了left和union的优化,下面咱们分析一下增加或者减少reduce的数量来提升hsql的速度. 参考:http://www.cnbl ...

  4. Java笔记(二十三)……Map集合

    Map接口 Map<K,V> 该集合存储的是键值对,成对往集合里存,而且要保证键的唯一性 常用方法 添加 Vput(K key, V value) voidputAll(Map<? ...

  5. HDU-1113(map的运用)

    Word Amalgamation Problem Description In millions of newspapers across the United States there is a ...

  6. 闭包 -> map / floatMap / filter / reduce 浅析

    原创: 转载请注明出处 闭包是自包含的函数代码块,可以在代码中被传递和使用 闭包可以捕获和存储其所在上下文中任意常量和变量的引用.这就是所谓的闭合并包裹着这些常量和变量,俗称闭包.Swift 会为您管 ...

  7. Python2.7学习笔记-定义函数、filter/map/reduce/lambda

    我把写的代码直接贴在下面了,注释的不是很仔细,主要是为了自己复习时方便查找,并不适合没有接触过python的人看,其实我也是初学者. #定义函数 def my_abs(x): if x>=0: ...

  8. filter过滤器与map映射

    filter过滤器 >>> list(filter(None,[0,1,2,True,False])) [1, 2, True] filter的作用就是后面的数据按照前面的表达式运算 ...

  9. System.map文件的作用

    有关System.map文件的信息好象很缺乏.其实它一点也不神秘,并且在整个事情当中它并不象看上去那么得重要.但是由于缺乏必要的文档说明,使其显得比较神秘.它就象耳垂,我们每个人都有,但却不知道是干什 ...

随机推荐

  1. 24.qint64转QString 以及获取文件属性

    qint64转QString qint64 size = info.size(); //qint64 转QString QString size2 = tr("%1").arg(s ...

  2. MacOS系统下简单安装以及配置MongoDB数据库(一)

    最近写了一个用node来操作MongoDB完成增.删.改.查.排序.分页功能的示例,并且已经放在了服务器上地址:http://39.105.32.180:3333. 项目一共四部分: 1.MacOS下 ...

  3. Spark RDD概念学习系列之action操作

    不多说,直接上干货! action操作  

  4. LeetCode(96)Unique Binary Search Trees

    题目如下: Python代码: def numTrees(self, n): """ :type n: int :rtype: int """ ...

  5. 服务器搭建域控与SQL Server的AlwaysOn环境过程(五)配置异地机房节点

    0 引言 注意点1 注意异地节点最好至少有2个AG节点,否则在本地节点进行手动故障转移的时候会出现仲裁警告,提示WSFC集群有脱机危险 在异地节点只有一个的情况下,虽然Windows2012R2有动态 ...

  6. IOS - 总结(网络状态变更)

    - (void)initNetworkMonitor { NSURL *baseURL = [NSURL URLWithString:@"http://www.baidu.com/" ...

  7. python生成器,递归调用

    生成器 什么是生成器:只要在函数体内出现yield关键字,那么再执行函数就不会执行函数代码,会得到一个结果,该结果就是生成器 生成器就是迭代器 yield的功能 yield为我们提供了一种自定义迭代器 ...

  8. python hashlib、configparse、logging

    一.hashlib 1.Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等.     2.摘要算法 通过摘要函数f()对任意长度的数据data计算出固定长度的摘要digest,目 ...

  9. C# 上位机的USB设备拔插检测

    我们做USB通信时,通信成功后,往往要检测USB设备的拔插状态,这里就USB拔插进行一下说明. 参考:https://www.imooc.com/article/17438 先说明一下,我这里只是用C ...

  10. 父类指针指向子类内存,为什么当父类的成员函数不加virtual时,访问的还是父类的成员函数,而不是子类同名的成员函数

    我认为是这样,类的成员函数都在代码区,不同的类的成员函数在代码区有自己的类名称空间限制,类的虚函数在虚函数表中,程序执行的时候,是先在虚函数表中找该成员函数,如果没有找到,就去该类在代码区的成员函数中 ...