博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Sereja and Suffixes(思维)
阅读量:5746 次
发布时间:2019-06-18

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

Sereja and Suffixes
Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u
 

Description

Sereja has an array a, consisting of n integers a1, a2, ..., an. The boy cannot sit and do nothing, he decided to study an array. Sereja took a piece of paper and wrote out m integers l1, l2, ..., lm(1 ≤ li ≤ n). For each number li he wants to know how many distinct numbers are staying on the positions li, li + 1, ..., n. Formally, he want to find the number of distinct numbers among ali, ali + 1, ..., an.?

Sereja wrote out the necessary array elements but the array was so large and the boy was so pressed for time. Help him, find the answer for the described question for each li.

Input

The first line contains two integers n and m(1 ≤ n, m ≤ 105). The second line contains n integers a1, a2, ..., an(1 ≤ ai ≤ 105) — the array elements.

Next m lines contain integers l1, l2, ..., lm. The i-th line contains integer li(1 ≤ li ≤ n).

Output

Print m lines — on the i-th line print the answer to the number li.

Sample Input

Input
10 10 1 2 3 4 1 2 3 4 100000 99999 1 2 3 4 5 6 7 8 9 10
Output
6 6 6 6 6 5 4 3 2 1 题解:让求x到n的不同数字的个数;打表,对于m次询问,如果每次都暴力肯定超了,由于n是固定的,所以打下表,从后往前; 代码:
#include
#include
#include
#include
#include
#include
#include
using namespace std;const int MAXN = 1e5+100;class Ary{ public: int n,m; int a[MAXN]; int dp[MAXN]; set
st; Ary(int n,int m):n(n),m(m){ for(int i = 1; i <= n; i++){ cin >> a[i]; } } int work(){ int cnt = 0; for(int i = n; i >= 1; i--){ if(!st.count(a[i])){ cnt++; st.insert(a[i]); } dp[i] = cnt; } //cout << endl; } ~Ary(){ //cout << "对象毁灭" << endl; }};int main(){ int n,m; while(~scanf("%d%d", &n, &m)){ Ary boy(n,m); int temp; boy.work(); while(m--){ scanf("%d",&temp); printf("%d\n",boy.dp[temp]); } } return 0;}

 

转载地址:http://pcazx.baihongyu.com/

你可能感兴趣的文章
如何打造亚秒级加载的网页1——前端性能
查看>>
聊天宝彻底凉了,遭罗永浩抛弃,团队就地解散
查看>>
Composer管理PHP依赖关系
查看>>
React.js学习笔记之JSX解读
查看>>
我所了解的Libevent和SEDA架构
查看>>
Socket编程问题小记
查看>>
基于Flask-Angular的项目组网架构与部署
查看>>
Rust 2018 即将到来:设法从 Rust 2015 过渡
查看>>
一张图道尽程序员的出路
查看>>
Android 开发应该掌握的 Proguard 技巧
查看>>
是时候放弃 Spark Streaming, 转向 Structured Streaming 了 ...
查看>>
企业级 Spring Boot 教程 (十七)上传文件
查看>>
sqli-labs 下载、安装
查看>>
RouteReuseStrategy angular路由复用策略详解,深度刨析路由复用策略
查看>>
Kubernetes API 分析 ( Kube-apiserver )
查看>>
4-学会刷Wi-Fi模块固件(刷AT指令固件)
查看>>
ASP.NET Core 2 学习笔记(五)静态文件
查看>>
Button 使用Command 按钮置灰未更新
查看>>
PostgreSQL控制台以竖行显示
查看>>
Java SSM 客户管理 商户 管理系统 库存管理 销售报表 项目源码
查看>>