题目链接:
https://cn.vjudge.net/problem/HDU-3333
题意:
给你n个整数,然后q次查询,每次输入一个区间,求这个区间所有不同数字的和。
输入描述:
首先输入一个t,t组样例。t<=10
每组样例首先输入n,一共n个数 1<=n<=30000
第二行输入n个整数,0<=a[i]<=10^9
第3行输入m,m次查询,1<=m<=10^5
接下来m行,每行输入一个区间l,r
输出描述:
对于每个查询,输出一个结果
样例:
输入:
2
3
1 1 4
2
1 2
2 3
5
1 1 2 1 3
3
1 5
2 4
3 5
输出:
1
5
6
3
6
题解:
将所有查询区间根据右区间从小到大排序。对于每一个数,只保留最后一个,然后就是一个单点更新区间查询问题,用树状数组维护就可以了。结果可能爆int,用long long 类型存储。
用数组pos标记每个数最