Powerful array

题意:求区间[l, r] 内的数的出现次数的平方 * 该数字。

题解:莫队离线操作, 然后加减位置的时候直接修改答案就好了。

这个题目中发现了一个很神奇的事情,本来数组开1e6大小就直接过了4100+ms, 想测试一下inline,顺手把空间砍成了刚好够用,然后跑的更慢了 4700+ms,删了inline之后T了,到现在也不知道发生了啥。

如果有大牛路过希望帮我看下,  CF run id  38822420(4100+) 38822607(4700+)38822636(TLE)。然后就是我空间稍微开大一点就跑的更快了。

代码:

 #include<bits/stdc++.h>
using namespace std;
#define Fopen freopen("_in.txt","r",stdin); freopen("_out.txt","w",stdout);
#define LL long long
#define ULL unsigned LL
#define fi first
#define se second
#define pb push_back
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define max3(a,b,c) max(a,max(b,c))
#define min3(a,b,c) min(a,min(b,c))
#define _S(X) cout << x << ' ';
#define __S(x) cout << x << endl;
typedef pair<int,int> pll;
const int INF = 0x3f3f3f3f;
const LL mod = (int)1e9+;
const int N = 8e6+ ;
int n, m, blo;
int cnt[N];
int a[N];
LL ans[N];
LL tmp;
struct Node{
int l, r;
int id;
}q[N];
void Add(int p){
tmp -= 1ll * a[p] * cnt[a[p]] * cnt[a[p]];
cnt[a[p]]++;
tmp += 1ll * a[p] * cnt[a[p]] * cnt[a[p]];
}
void Remove(int p){
tmp -= 1ll * a[p] * cnt[a[p]] * cnt[a[p]];
cnt[a[p]]--;
tmp += 1ll * a[p] * cnt[a[p]] * cnt[a[p]];
}
bool cmp(Node x1, Node x2){
if(x1.l/blo != x2.l/blo)
return x1.l/blo < x2.l / blo;
return x1.r < x2.r;
}
int main(){
scanf("%d%d", &n, &m);
blo = sqrt(n);
for(int i = ; i <= n; i++)
scanf("%d", &a[i]);
for(int i = ; i <= m; i++){
scanf("%d%d", &q[i].l, &q[i].r);
q[i].id = i;
}
sort(q+, q++m, cmp);
int nL = , nR = , tL, tR;
for(int i = ; i <= m; i++){
tL = q[i].l, tR = q[i].r;
while(nL < tL) Remove(nL++);
while(nL > tL) Add(--nL);
while(nR <= tR) Add(nR++);
while(nR > tR+) Remove(--nR);
ans[q[i].id] = tmp;
}
for(int i = ; i <= m; i++){
printf("%I64d\n", ans[i]);
}
return ;
}

86D

最新文章

  1. SQL Server 2012 新特性:FileTable
  2. JSTL 操作符
  3. Java国际化程序
  4. [转]Android中Application类的用法
  5. PHP Apache服务配置
  6. HttpContext.Cache 详解
  7. easyUI笔记09.03
  8. Cent OS服务器配置(JDK+Tomcat+MySQL)
  9. 67.ARP协议
  10. linux命令——ll
  11. hive的udf制剂
  12. extjs 6.2 helloworld
  13. IBM Mq Spring JMS 的xml配置
  14. JavaScript内置对象-Object
  15. IK-Analyzer(5.3.1)动态配置自定义词典
  16. 生鲜配送管理系统_升鲜宝V2.0 小标签打印功能说明_15382353715
  17. BZOJ2870 最长道路
  18. JavaScript装饰者模式
  19. canvas-7globleCompositeOperation.html
  20. JVM的基本结构及其各部分详解(二)

热门文章

  1. QTableView表格控件区域选择-自绘选择区域
  2. 【Machine Learning&#183;机器学习】决策树之ID3算法(Iterative Dichotomiser 3)
  3. Flink状态专题:keyed state和Operator state
  4. 前端笔记之React(六)ES6的Set和Map&amp;immutable和Ramda和lodash&amp;redux-thunk
  5. Maven项目的打包发布到Nexus私服和服务器
  6. ansible批量管理服务 上
  7. js中数组和对象的合并
  8. Django配置MySQL数据库
  9. LeetCode :2.两数相加 解题报告及算法优化思路
  10. ns3 802.11b PHY model