总时间限制: 
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. nginx报错日志:see security.limit_extensions

    访问出现部分.js.css等部分文件被拒绝错误日志如下: 19:20:13 [error] 1181#0: *287 FastCGI sent in stderr: "Access to t ...

  2. mybatis通用的crud的接口

    http://git.oschina.net/jrl/mybatis-mapper https://www.oschina.net/p/mybatis-plus

  3. 关于数据未渲染完,要获取document高度问题——ajax全局事件

    昨天在做开发时,遇到这样一个问题,当页面刚加载的时候,就要获取document的高度,可是此时页面上所有的ajax请求的数据都还没有渲染到页面上,所以导致得到的document的高度仅仅是页面结构的高 ...

  4. Service(服务)简单使用

    1.Service(服务)是一个一种可以在后台执行长时间运行操作而没有用户界面的应用组件.服务可由其他应用组件启动(如Activity),服务一旦被启动将在后台一直运行,即使启动服务的组件(Activ ...

  5. Win7 disk.sys无法加载的问题

    Win7突然无法启动,应该说是启动中卡死,没有别的问题,用安全模式,显示加载disk.sys时卡死.搜索发现很多人遇到这个问题. 实际解决方法是查看数据线,重新插拔,换口,换线. 数据线出现故障往往表 ...

  6. List of features and minimum Clang version with support

    #1: C++11 Language Feature C++11 Proposal Available in Clang? Rvalue references N2118 Clang 2.9      ...

  7. luogu P3391 【模板】文艺平衡树(Splay) 非旋转treap

    Code: #include<bits/stdc++.h> using namespace std; void setIO(string s) { string in=s+".i ...

  8. Pyhton学习——Day29

    #异常与错误# 什么是异常?# 异常就是程序运行时发生错误的信号,在程序出现错误时,则会产生异常,若没有程序处理,则会抛出异常# 导致程序在异常语句处崩溃终止# Traceback 追踪异常信号:** ...

  9. 1、使用Python3爬取美女图片-网站中的每日更新一栏

    此代码是根据网络上其他人的代码优化而成的, 环境准备: pip install lxml pip install bs4 pip install urllib #!/usr/bin/env pytho ...

  10. linux之资料重定向

    標準輸入 (stdin) :代碼為 0 ,使用 < 或 << : 標準輸出 (stdout):代碼為 1 ,使用 > 或 >> : 標準錯誤輸出(stderr):代 ...