博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P2709 小B的询问
阅读量:5291 次
发布时间:2019-06-14

本文共 844 字,大约阅读时间需要 2 分钟。

题目描述

小B有一个序列,包含N个1~K之间的整数。他一共有M个询问,每个询问给定一个区间[L..R],求Sigma(c(i)^2)的值,其中i的值从1到K,其中c(i)表示数字i在[L..R]中的重复次数。小B请你帮助他回答询问。

输入输出格式

输入格式:

 

第一行,三个整数N、M、K。

第二行,N个整数,表示小B的序列。

接下来的M行,每行两个整数L、R。

 

输出格式:

 

M行,每行一个整数,其中第i行的整数表示第i个询问的答案。

 

输入输出样例

输入样例#1: 
6 4 31 3 2 1 1 31 42 63 55 6
输出样例#1: 
6952

说明

对于全部的数据,1<=N、M、K<=50000

 

 

#include
#include
#include
#include
#include
#include
using namespace std;int n,m,k;long long a[50001],cnt[50001],t,len;long long ans[50001],ret,l=1,r;struct q{ int l,r,num; bool operator < (const q &rhs){ return l/len==rhs.l/len?r
qs[i].l){add(--l);} while(l
qs[i].r){del(r--);} ans[qs[i].num]=ret; } for(int i=1;i<=m;i++){ printf("%lld\n",ans[i]); } return 0;}

  

转载于:https://www.cnblogs.com/xiongchongwen/p/11236301.html

你可能感兴趣的文章
plsql使用,为什么可以能看见其他用户的表
查看>>
一步步教你轻松学奇异值分解SVD降维算法
查看>>
Scripting Java #3:Groovy与invokedynamic
查看>>
2014-04-21-阿里巴巴暑期实习-后台研发-二面经验
查看>>
数据结构中线性表的基本操作-合并两个线性表-依照元素升序排列
查看>>
使用pager进行分页
查看>>
吐医疗器械研发可配置性需求的槽点
查看>>
UVA - 1592 Database
查看>>
机器翻译评价指标 — BLEU算法
查看>>
机器学习基石(9)--Linear Regression
查看>>
Min Stack
查看>>
从LazyPhp说起
查看>>
Fine Uploader文件上传组件
查看>>
Spring Boot与Spring的区别
查看>>
查看linux 之mysql 是否安装的几种方法
查看>>
javascript中的传递参数
查看>>
objective-c overview(二)
查看>>
python查询mangodb
查看>>
软件测试(基础理论一)摘
查看>>
CF327E Axis Walking
查看>>