当前位置:网站首页>Educational Codeforces Round 22 E. Army Creation
Educational Codeforces Round 22 E. Army Creation
2022-07-04 19:34:00 【Don't eat toast】
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stack>
#include <queue>
#include <map>
#include <set>
#include <vector>
#include <math.h>
#include <bitset>
#include <algorithm>
using namespace std;
#define X first
#define Y second
#define eps 1e-2
#define gcd __gcd
#define pb push_back
#define PI acos(-1.0)
#define lowbit(x) (x)&(-x)
#define bug printf("!!!!!\n");
#define mem(x,y) memset(x,y,sizeof(x))
typedef long long LL;
typedef long double LD;
typedef pair<int,int> pii;
typedef unsigned long long uLL;
const int N = 1e5+2;
const int INF = 1<<30;
const int mod = 1e9+7;
std::vector<int> v[N];
struct node{
int l,r,sum;
}t[N<<5];
int tot=0;
int build(int p,int l,int r){
p=++tot;
if(l==r) return p;
int mid=(l+r)>>1;
t[p].l=build(p,l,mid);
t[p].r=build(p,mid+1,r);
return p;
}
int update(int p,int l,int r,int x){
t[++tot]=t[p];p=tot;t[p].sum++;
if(l==r) return p;
int mid=(l+r)>>1;
if(x<=mid) t[p].l=update(t[p].l,l,mid,x);
else t[p].r=update(t[p].r,mid+1,r,x);
return p;
}
int query(int p1,int p2,int l,int r,int from,int to){
if(from<=l&&to>=r) return t[p2].sum-t[p1].sum;
int mid=(l+r)>>1,ans=0;
if(from<=mid) ans+=query(t[p1].l,t[p2].l,l,mid,from,to);
if(to>=mid+1) ans+=query(t[p1].r,t[p2].r,mid+1,r,from,to);
return ans;
}
int n,k,a[N],q,rt[N];
void solve(){
scanf("%d%d",&n,&k);rt[0]=build(1,0,n);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]),v[a[i]].push_back(i);
int sz=v[a[i]].size();
int pos=(sz>k?v[a[i]][sz-1-k]:0);
rt[i]=update(rt[i-1],0,n,pos);
}
// cout<<tot<<endl;
scanf("%d",&q);
int last=0;
// cout<<t[18].sum<<endl;
// cout<<rt[1]<<" "<<rt[2]<<endl;
while(q--){
int l,r;scanf("%d%d",&l,&r);
l=((l+last)%n)+1;
r=((r+last)%n)+1;
if(l>r) swap(l,r);
// cout<<l<<" "<<r<<endl;
last=query(rt[l-1],rt[r],0,n,0,l-1);
cout<<last<<endl;
}
return;
}
int main()
{
// freopen("in.txt","r",stdin);
// freopen("out.txt","w",stdout);
// ios::sync_with_stdio(false);
int t = 1;
//scanf("%d",&t);
while(t--){
// printf("Case %d: ",cas++);
solve();
}
return 0;
}
边栏推荐
- 长城证券开户安全吗 买股票怎么开户
- 1009 Product of Polynomials(25 分)(PAT甲级)
- 2014合肥市第三十一届青少年信息学奥林匹克竞赛(小学组)试题
- Lenovo explains in detail the green smart city digital twin platform for the first time to solve the difficulties of urban dual carbon upgrading
- The 300th weekly match of leetcode (20220703)
- 性能优化之关键渲染路径
- Shell 编程核心技术《一》
- Detailed explanation of the binary processing function threshold() of opencv
- 基于NCF的多模块协同实例
- 升级智能开关,“零火版”、“单火”接线方式差异有多大?
猜你喜欢

2022CoCa: Contrastive Captioners are Image-Text Fountion Models

LM10丨余弦波动顺势网格策略

LeetCode第300场周赛(20220703)

升级智能开关,“零火版”、“单火”接线方式差异有多大?

One question per day (2022-07-02) - Minimum refueling times

Wireshark网络抓包

Go microservice (II) - detailed introduction to protobuf

用实际例子详细探究OpenCV的轮廓绘制函数drawContours()

使用canal配合rocketmq监听mysql的binlog日志
关于判断点是否位于轮廓内的一点思考
随机推荐
LeetCode第300场周赛(20220703)
自由小兵儿
Don't just learn Oracle and MySQL!
《工作、消费主义和新穷人》的微信读书笔记
《看完就懂系列》字符串截取方法substr() 、 slice() 和 substring()之间的区别和用法
How test engineers "attack the city" (Part I)
Explore the contour drawing function drawcontours() of OpenCV in detail with practical examples
Wechat reading notes of "work, consumerism and the new poor"
关于判断点是否位于轮廓内的一点思考
HDU 1372 & POJ 2243 Knight Moves(广度优先搜索)
HDU 1097 A hard puzzle
Online sql to excel (xls/xlsx) tool
Shell 编程核心技术《一》
Have you guys ever used CDC direct Mysql to Clickhouse
Reflection (I)
Is the securities account opened by qiniu safe?
In flinksql, in addition to data statistics, is the saved data itself a state
大佬们,求助一下,我用mysql cdc 2.2.1(flink 1.14.5)写入kafka,设置
There are multiple divs in the large div, which are displayed on the same line. After overflow, scroll bars are generated without line breaks
FTP, SFTP file transfer