bzoj2038: [2009国家集训队]小Z的袜子(hose) 莫队算法(分块)
来源:互联网 发布:中航王岚财富知多少 编辑:程序博客网 时间:2024/04/28 11:23
#include <iostream>#include <algorithm>#include <cstdio>#include <cmath>#include <cstring>using namespace std;#define maxn 60000typedef long long sint;int n,m;int save[maxn],pos[maxn];sint ans,s[maxn];struct node{ int l,r,id; sint a,b;}a[maxn];sint gcd(sint a,sint b){ if(!b) return a; return gcd(b,a%b);}sint sqr(sint x){ return x*x;}bool cmp(node aa,node bb){ if(pos[aa.l]==pos[bb.l]) return aa.r<bb.r; return aa.l<bb.l;}bool cmp2(node aa,node bb){ return aa.id<bb.id;}void update(int p,int add){ans-=sqr(s[save[p]]);s[save[p]]+=add;ans+=sqr(s[save[p]]);}void solve(){ for(int i=1,l=1,r=0;i<=m;i++) { for(;r<a[i].r;r++) update(r+1,1); for(;r>a[i].r;r--) update(r,-1); for(;l<a[i].l;l++) update(l,-1);for(;l>a[i].l;l--) update(l-1,1);if(a[i].l==a[i].r){a[i].a=0;a[i].b=1;continue;}a[i].a=ans-(a[i].r-a[i].l+1);a[i].b=(sint)(a[i].r-a[i].l+1)*(a[i].r-a[i].l);sint k=gcd(a[i].a,a[i].b);a[i].a/=k;a[i].b/=k; }}int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) scanf("%d",&save[i]); int len=sqrt(n); for(int i=1;i<=n;i++) pos[i]=(i-1)/len+1; for(int i=1;i<=m;i++) { scanf("%d%d",&a[i].l,&a[i].r); a[i].id=i; } sort(a+1,a+1+m,cmp); solve(); sort(a+1,a+1+m,cmp2); for(int i=1;i<=m;i++) { printf("%lld/%lld\n",a[i].a,a[i].b); } return 0;}
0 0
- bzoj2038: [2009国家集训队]小Z的袜子(hose) 莫队算法(分块)
- bzoj2038 [2009国家集训队]小Z的袜子(hose) (分块)
- 【bzoj2038】[2009国家集训队]小Z的袜子(hose) (莫队算法)
- [BZOJ2038][2009国家集训队]小Z的袜子(hose) && 莫队算法
- kyeremal-bzoj2038-[2009国家集训队]-小z的袜子(hose)-莫队算法
- [bzoj2038][2009国家集训队]小Z的袜子(hose) 莫队算法
- bzoj2038: [2009国家集训队]小Z的袜子(hose)(莫队+分块模板题)
- BZOJ 2038: [2009国家集训队]小Z的袜子(hose)|分块|莫队算法
- bzoj2038: [2009国家集训队]小Z的袜子(hose)
- bzoj2038: [2009国家集训队]小Z的袜子(hose)
- bzoj2038【2009国家集训队】小Z的袜子(hose)
- 【BZOJ2038】[2009国家集训队]小Z的袜子(hose)【莫队】
- 【bzoj2038】[2009国家集训队]小Z的袜子(hose) 莫队
- bzoj2038: [2009国家集训队]小Z的袜子(hose) 莫队
- BZOJ2038: [2009国家集训队]小Z的袜子(hose)
- bzoj2038 [2009国家集训队]小Z的袜子(hose)
- bzoj2038: [2009国家集训队]小Z的袜子(hose)
- 【bzoj2038】 [2009国家集训队]小Z的袜子(hose)
- java servlet 创建
- View Controller 的生命周期
- 关于ios8 调用系统摄像头 出现警告问题
- Edit Distance
- 【bzoj2440】莫比乌斯
- bzoj2038: [2009国家集训队]小Z的袜子(hose) 莫队算法(分块)
- LeetCode: Single Number
- Android之下次不再提醒功能实现
- 第15周项目三—在OJ上玩指针
- 使用表达式和jsp脚本打印九九乘法表
- XML DTD 与XSD
- InnoDB存储引擎行锁的实现
- 实用JS语句
- Linux配置启动项,自启动服务