[CF 86D] Powerful array · 莫队算法
来源:互联网 发布:淘宝照相技巧 编辑:程序博客网 时间:2024/05/16 05:46
莫队算法板子题,再打一遍增强记忆。
1.记得处理询问中l==r的情况。
2.注意long long
今天才知道原来CF是架在Windows上的。。。
#include <cstdio>#include <cstdlib>#include <algorithm>#include <iostream>#include <cmath>#include <cstring>using namespace std;#define ll long long#define sqr(x) ((ll)(x)*(ll)(x))const int N=200005;int n,m,a[N],cnt[N*5],l,r;int belong[N],k,tot;struct arr{intl,r,num;}q[N];ll Ans,ans[N];bool cmp(const arr A,const arr B){if (belong[A.l]==belong[B.l]) return A.r<B.r;return A.l<B.l;}int get(){int p=0;char x=getchar();while (x<'0' || x>'9') x=getchar();while (x>='0' && x<='9') p=p*10+x-'0',x=getchar();return p;}void update(long long p,long long t){p=a[p];Ans-=(ll)sqr(cnt[p])*p;cnt[p]+=t;Ans+=(ll)sqr(cnt[p])*p;}int main(){n=get();m=get();k=sqrt(m);for (int i=1;i<=n;i++) a[i]=get();for (int i=1;i<=m;i++)q[i].l=get(),q[i].r=get(),q[i].num=i,belong[i]=(i-1)/k+1;sort(q+1,q+m+1,cmp);l=1;r=0;for (int i=1;i<=m;i++){if (q[i].l==q[i].r) {ans[q[i].num]=a[q[i].l];continue;}for (;l<q[i].l;l++) update(l,-1);for (;l>q[i].l;l--) update(l-1,1);for (;r<q[i].r;r++) update(r+1,1);for (;r>q[i].r;r--) update(r,-1);ans[q[i].num]=Ans;}for (int i=1;i<=m;i++) printf("%I64d\n",ans[i]);return 0;}
0 0
- [CF 86D] Powerful array · 莫队算法
- CF 86D Powerful array
- 【CF 86D】Powerful array
- CF 86D Powerful array 【分块算法,n*sqrt(n)】
- CF 86D Powerful array 【分块算法,n*sqrt(n)】
- 【打CF,学算法——四星级】CodeForces 86D Powerful array (莫队算法)
- CF 86D Powerful array(莫队)
- Codeforces 86D Powerful array(莫队算法)
- CodeForces 86D Powerful array 莫队算法
- codeforces 86D. Powerful array(莫队算法)
- Codeforces 86D Powerful Array [莫队算法]
- CodeForces 86D Powerful array 莫队算法
- Codeforces 86D Powerful array 莫队算法 分块
- Codeforces-86D:Powerful array(莫队算法)
- CF 86D Powerful array 分块算法入门,n*sqrt(n)
- CF 86D Powerful array 分块算法入门,n*sqrt(n)
- codeforce 86D Powerful array 莫对算法
- 86D - Powerful array
- 最大流和最小割:Edmonds_Karp算法
- 约瑟夫环的C语言和86/88汇编非递归算法
- VC6工程更名
- curl命令详解
- AppIcon中pt的百度百科解释
- [CF 86D] Powerful array · 莫队算法
- HDU 2795 Billboard 线段树 (单点更新,询问树最左节点是否可以容纳)
- UVa 11729 Commando War 突击战
- 算法小白总结(二)------递归调用
- Java中用Apache POI生成excel和word文档
- C++12.6 static 数据成员、static成员函数
- 初学JAVA之基本语句的使用
- Android--第四天(网络图片查看器,多线程下载,文件断点上传原理,Intent,Activity生命周期,广播,服务)
- swift入门第三章集合、控制流,标签语句