当前位置:网站首页>Educational Codeforces Round 22 E. Army Creation
Educational Codeforces Round 22 E. Army Creation
2022-07-04 18:01:00 【不吃土司边】
#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;
}
边栏推荐
- Detailed explanation of issues related to SSL certificate renewal
- LeetCode第300场周赛(20220703)
- How test engineers "attack the city" (Part I)
- Technology sharing | interface testing value and system
- 生成XML元素
- 2022CoCa: Contrastive Captioners are Image-Text Fountion Models
- Shell 编程核心技术《一》
- 数组中的第K个最大元素
- “只跑一趟”,小区装维任务主动推荐探索
- Leetcode fizzbuzz C # answer
猜你喜欢
mysql中explain语句查询sql是否走索引,extra中的几种类型整理汇总
PolyFit软件介绍
Summary and sorting of 8 pits of redis distributed lock
使用canal配合rocketmq监听mysql的binlog日志
SSRS筛选器的IN运算(即包含于)用法
Detailed explanation of the binary processing function threshold() of opencv
读写关闭的channel是啥后果?
与二值化阈值处理相关的OpenCV函数、方法汇总,便于对比和拿来使用
[发布] 一个测试 WebService 和数据库连接的工具 - DBTest v1.0
LeetCode第300场周赛(20220703)
随机推荐
QT realizes interface sliding switching effect
测试工程师如何“攻城”(上)
整理混乱的头文件,我用include what you use
请教一下 flinksql中 除了数据统计结果是状态被保存 数据本身也是状态吗
Pytorch学习(四)
更安全、更智能、更精致,长安Lumin完虐宏光MINI EV?
大div中有多个div,这些div在同一行显示,溢出后产生滚动条而不换行
长城证券开户安全吗 买股票怎么开户
HDU 1372 & POJ 2243 Knight Moves(广度优先搜索)
SSL证书续费相关问题详解
node_exporter部署
From automation to digital twins, what can Tupo do?
Is it safe to open an account at Great Wall Securities? How to open an account when buying stocks
Unity adds a function case similar to editor extension to its script, the use of ContextMenu
线上数据库迁移的几种方法
Stream流
Online sql to excel (xls/xlsx) tool
Hough transform Hough transform principle
函数式接口
问下各位大佬有用过cdc直接mysql to clickhouse的么