https://www.nowcoder.com/acm/contest/139/J

题意:输入L,R,求[1,L]和[R,n]两个区间内所有数合起来,这些数中所有不同数的个数。

#include<bits/stdc++.h>
using namespace std;
const int maxn=200005;
const int maxq=200005;
map<int,int>mp;
struct node
{int l,r,id;//输入查询的区间//id记录的是每个查询的次序,目的是在对查询区间排序后,能按原来的查询顺序输出结果
};
node q[maxq];
bool cmp(node a,node b)
{return a.r<b.r;
}
int c[maxn],n;
int lowbit(int x)
{return x&(-x);
}int sum(int x)
//int query(int x)
{int res=0;while(x){res+=c[x];x-=lowbit(x);}return res;
}
void add(int x,int val)
{while(x<=2*n){c[x]+=val;x+=lowbit(x);}
}int a[maxn],ans[maxq];
int main()
{int i,j,cur,Q,temp;while(~scanf("%d%d",&n,&Q)){mp.clear();//memset(c,0,sizeof(c));for(i=0;i<=2*n;i++)c[i]=0;for(i=1;i<=n;i++){scanf("%d",&a[i]);a[i+n]=a[i];}for(i=1;i<=Q;i++){scanf("%d%d",&q[i].l,&q[i].r);temp=q[i].l;q[i].l=q[i].r;q[i].r=temp+n;q[i].id=i;}sort(q+1,q+1+Q,cmp);//按右端点排序cur=1;for(i=1;i<=Q;i++){for(j=cur;j<=q[i].r;j++){if(mp.find(a[j])!=mp.end())//在前面出现过{add(mp[a[j]],-1);}mp[a[j]]=j;add(j,1);}cur=q[i].r+1;ans[q[i].id]=sum(q[i].r)-sum(q[i].l-1);}//一开始cur=1,是1到q[1].r,先对这个小区间操作,然后cur=q[1].r+1//是q[1].r到q[2].r,继续下去for(i=1;i<=Q;i++)printf("%d\n",ans[i]);}
}

different intergers相关推荐

  1. 【Codeforces1327A】: Sum of Odd Intergers C/C++题解

    Sum of Odd Intergers 题解 Codeforces[1327A]: Sum of Odd Intergers题解 一.题目描述 二.解题思路 三.注意事项 四.完整代码 五.另一种不 ...

  2. 基于Go语言来理解Tensorflow

    Tensorflow并非一套特定机器学习库--相反,其属于一套通用型计算库,负责利用图形表达计算过程.其核心通过C++语言实现,同时亦绑定有多种其它语言.与Python绑定不同的是,Go编程语言绑定不 ...

  3. Sicily 7974. Integer Lists 解题报告

    题目: Constraints Time Limit: 1 secs, Memory Limit: 256 MB Description The programming language Better ...

  4. linux xz 解压initrd.img,2016-8-28 linux基础学习——压缩解压缩及归档 while脚本

    文件管理命令----压缩解压缩及归档基本工具 压缩.解压缩命令 压缩格式:gz, bz2, xz, zip, Z 压缩算法:算法不同,压缩比也会不同: 早期 压缩: compress(压缩比很小): ...

  5. 2021年春季学期-信号与系统-第七次作业参考答案-第四小题

    本文是 2021年春季学期-信号与系统-第七次作业参考答案 的小题的参考答案. ▌第四小题 ▌ 4. Consider the signal x(t)x\left( t \right)x(t) in ...

  6. 2021年春季学期-信号与系统-第七次作业参考答案

    ▓ 第七次作业各个小题参考答案: 2021年春季学期-信号与系统-第七次作业参考答案-第一小题 2021年春季学期-信号与系统-第七次作业参考答案-第二小题 2021年春季学期-信号与系统-第七次作业 ...

  7. MODE —— 输入一个数字,求从1加到该数的和(知识点:for循环嵌套while循环)

    问题描述: 终端输入一个数字,求从1加到这个数字的和! 运行结果: 代码部分: #include <stdio.h> int main() {unsigned int sum = 1UL; ...

  8. Lucky7(hdu5768)

    Lucky7 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Sub ...

  9. 程序员面试题精选100题(29)-调整数组顺序使奇数位于偶数前面[算法]

    题目:输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分.要求时间复杂度为O(n). 分析:如果不考虑时间复杂度,最简单的思路应该是从头扫描这个数组,每 ...

最新文章

  1. 一个自定义python分布式爬虫框架。
  2. [译] 写给大家看的 Cache-Control 指令配置
  3. 密码技术--消息认证码及go语言应用
  4. 操作系统之磁盘调度——SCAN实例讲解
  5. STL::map默认会按照.first的字母顺序排列
  6. Pentium 4处理器架构/微架构/流水线 (11) - NetBurst执行核详解 - Load/Store操作/存储转发
  7. Java实现数组逆置
  8. 下单延迟10s撤单性能测试
  9. nodejs+react使用webpack打包时控制台报错
  10. 计算机基础(三):srpintf()函数小结
  11. cnn 一维时序数据_多角度理解CNN网络
  12. 基于Krpano的Hotspot热区插件·第二版
  13. html滑动门+多个,jQuery实现的多滑动门,多选项卡效果代码
  14. python 表情包 网站源码_Python实现表情包的代码实例
  15. 如何将喜马拉雅上的音频保存并导出来
  16. 软件测试的模式(一、)
  17. 计算机打表格图,快速填充/微图表/一秒制作打勾方框
  18. 关于运行软件报错Address already in use
  19. 如何离线在itpub上发表博文
  20. 23、实时汇率API接口,免费好用

热门文章

  1. python画简便的图-python的pyecharts绘制各种图表详细(附代码)
  2. python常用代码入门-Python基础总结成千行代码,让Python入门更简单!
  3. python爬虫什么意思-终于知道python爬虫是什么意思
  4. python画3d图-python之画三维图像
  5. 为何python不好找工作-Python培训班出来找工作容易吗?老男孩教育
  6. python中文读音-python中文谐音 Python 的中文谐音是什么?
  7. python必备入门代码-20行python代码的入门级小游戏的详解
  8. python基础编程语法-Python基础及语法(十三)
  9. 语音识别中的CTC算法的基本原理解释
  10. linux ssh客户端乱码,Win10专业版下Open ssh客户端乱码咋办?