莫队算法+离散化

1.map会TLE,必须离散化做

2.long long会WA,__int64定义 %I64d输出输出能AC

3.注意输入的序列会爆int

#include<cstdio>
#include<cstring>
#include<cmath>
#include<queue>
#include<map>
#include<algorithm>
using namespace std;const int maxn = 100000 + 10;
int n, m;
__int64 tmp[maxn], a[maxn], lsh[maxn];
int cnt;
int pos[maxn];
__int64 c[maxn];
__int64 ans[maxn], Ans;
int L, R;
struct X
{int l, r, id;
}s[maxn];bool cmp(const X&a, const X&b)
{if (pos[a.l] == pos[b.l]) return a.r < b.r;return a.l < b.l;
}int f(__int64 x)
{int l = 1, r = cnt;while (l <= r){int mid = (l + r) / 2;if (lsh[mid] < x) l = mid + 1;else if (lsh[mid]>x) r = mid - 1;else return mid;}
}void LSH()
{sort(tmp + 1, tmp + 1 + n);cnt = 0, lsh[++cnt] = tmp[1];for (int i = 2; i <= n; i++){if (tmp[i] == tmp[i - 1]) continue;lsh[++cnt] = tmp[i];}for (int i = 1; i <= n; i++) a[i] = (__int64)f(a[i]);
}int main()
{while (~scanf("%d", &n)) {memset(c, 0, sizeof c);int sz = sqrt(1.0*n);for (int i = 1; i <= n; i++){pos[i] = i / sz;scanf("%I64d", &tmp[i]);a[i] = tmp[i];}LSH();scanf("%d", &m);for (int i = 1; i <= m; i++) {scanf("%d%d", &s[i].l, &s[i].r);s[i].id = i;}sort(s + 1, s + 1 + m, cmp);Ans = 0;for (int i = s[1].l; i <= s[1].r; i++){Ans = Ans - c[a[i]] * c[a[i]] * c[a[i]];c[a[i]]++;Ans = Ans + c[a[i]] * c[a[i]] * c[a[i]];}ans[s[1].id] = Ans; L = s[1].l; R = s[1].r;for (int i = 2; i <= m; i++){while (L < s[i].l){Ans = Ans - c[a[L]] * c[a[L]] * c[a[L]];c[a[L]]--;Ans = Ans + c[a[L]] * c[a[L]] * c[a[L]];L++;}while (L > s[i].l){L--;Ans = Ans - c[a[L]] * c[a[L]] * c[a[L]];c[a[L]]++;Ans = Ans + c[a[L]] * c[a[L]] * c[a[L]];}while (R < s[i].r){R++;Ans = Ans - c[a[R]] * c[a[R]] * c[a[R]];c[a[R]]++;Ans = Ans + c[a[R]] * c[a[R]] * c[a[R]];}while (R > s[i].r){Ans = Ans - c[a[R]] * c[a[R]] * c[a[R]];c[a[R]]--;Ans = Ans + c[a[R]] * c[a[R]] * c[a[R]];R--;}ans[s[i].id] = Ans;}for (int i = 1; i <= m; i++) printf("%I64d\n", ans[i]);}return 0;
}

转载于:https://www.cnblogs.com/zufezzt/p/5413902.html

NBUT 1457 Sona相关推荐

  1. NBUT - 1457 Sona 莫队

    NBUT - 1457 Sona 题意: 计算一个区间内每种数出现次数的立方和,那么转移的话,假设一个区间是[L,R],如果向左转移,用ans保存区间的答案,cnt[i]记录第 i 种数出现的次数,那 ...

  2. NBUT 1457 Sona(莫队算法+离散化)

    [1457] Sona 时间限制: 5000 ms 内存限制: 65535 K 问题描述 Sona, Maven of the Strings. Of cause, she can play the ...

  3. NBUT 1457 Sona (莫队算法)

    [1457] Sona 时间限制: 5000 ms 内存限制: 65535 K 问题描述 Sona, Maven of the Strings. Of cause, she can play the ...

  4. NBUT 1457 Sona 莫队算法 分块处理

    [1457] Sona 时间限制: 5000 ms 内存限制: 65535 K 问题描述 Sona, Maven of the Strings. Of cause, she can play the ...

  5. NBUT - 1457 Sona (莫队)

    题链:https://vjudge.net/problem/NBUT-1457/origin 题意:求区间内,每个数出现次数x的立方和. 思路:模板题.添加时,由k^3->(k+1)^3,多了3 ...

  6. NBUT - 1457 Sona

    题目:给你n个数字,m个区间询问,问你区间内每个数出现的次数的立方和 思路:直接莫队搞就好了.输出用%lld会WA,要用%I64d才能A 代码: #pragma comment(linker, &qu ...

  7. NBUT - 1457 Sona (莫队算法)

    点我看题 题意:求某段区间内数字出现次数的立方和. 分析:莫队的模板题,不得不说这题神坑,vj说好的操作系统为Linux呢???结果%I64d才能过== 当然这题不用输入挂其实也能过- #includ ...

  8. (NBUT - 1457)Sona(莫队+离散化)

    题目链接:Sona - NBUT 1457 - Virtual Judge (ppsucxtt.cn) 题意比较简单:有N个数,有M个询问,求每次询问的区间[L,R]中,每种数字出现次数的立方和. 在 ...

  9. Sona - NBUT 1457 莫队算法

    [1457] Sona 时间限制: 5000 ms 内存限制: 65535 K 问题描述 Sona, Maven of the Strings. Of cause, she can play the ...

最新文章

  1. C++ 中 string earse 函数的使用
  2. 不能将参数 2 从“const char *”转换为“LPCWSTR”【转】http://blog.sina.com.cn/s/blog_4a94a0db0100ktxp.html...
  3. boost::graph模块实现DFS parenthesis的测试程序
  4. muduo网络库学习(三)定时器TimerQueue的设计
  5. seqlist插入java_大话数据结构(五)(java程序)——顺序存储结构的插入与删除...
  6. [css] style标签写在body前和body后的区别是什么?
  7. Linux项目日报,1Password推出Linux版本 现已进入公开预览阶段
  8. 树莓派教程 - 1.1 树莓派GPIO库wiringPi 硬件PWM可调频率
  9. getchar()细节
  10. C#:SQLite大量插入的效率问题
  11. 常用计算机检索算符,在计算机检索中,常用的布尔逻辑算符有哪几种
  12. 计算机启动修复取消,w7电脑启动修复无法进入操作系统怎么解决 w7系统取消启动修复的方法...
  13. [Obsidian]懒人必备插件附使用教程
  14. parameterMap与parameterClass
  15. 数字定时误差检测算法系列之 ———时域Gardner算法
  16. 题目4:常微分方程初值问题
  17. regsvr32命令详解
  18. jQuery实现商品楼层的感觉
  19. 当你老了,一生最后悔什么?
  20. 基于机器学习与人工智能的数据(数据库+大数据)技术

热门文章

  1. GEE11:2个土地覆盖数据(LUCC)分享和下载
  2. python实现摇号小程序
  3. 数美科技CEO唐会军获聘中国演出行业协会第二届内容评议委员会专家
  4. C++的4种编程范型 programming paradigms
  5. 【数据分析与挖掘】财政收入影响因素分析及预测模型(有数据集和代码)
  6. 以下说法正确的是。(选择2项)
  7. CAS:1222468-90-7,p-SCN-Bn-Deferoxamine的分子量为752.9
  8. 哪些专科学校计算机师资好,计算机专科学校排名前十(最出名的10所计算机学院)...
  9. vos3000打电话没声音 排除法解决问题
  10. canvas绘制刮刮卡