当前位置:网站首页>Educational Codeforces Round 22 E. Army Creation
Educational Codeforces Round 22 E. Army Creation
2022-07-04 19:34: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;
}
边栏推荐
- Lenovo explains in detail the green smart city digital twin platform for the first time to solve the difficulties of urban dual carbon upgrading
- 函数式接口
- LeetCode 赎金信 C#解答
- Unity editor extends C to traverse all pictures in folders and subdirectories
- Shell programming core technology "three"
- ftp、sftp文件传输
- Guys, for help, I use MySQL CDC 2.2.1 (Flink 1.14.5) to write Kafka and set
- 1003 Emergency(25 分)(PAT甲级)
- 1011 World Cup Betting (20 分)(PAT甲级)
- FPGA timing constraint sharing 01_ Brief description of the four steps
猜你喜欢
[release] a tool for testing WebService and database connection - dbtest v1.0
Online sql to excel (xls/xlsx) tool
FPGA时序约束分享01_四大步骤简述
一文掌握数仓中auto analyze的使用
Bi skills - permission axis
使用canal配合rocketmq监听mysql的binlog日志
YOLOv5s-ShuffleNetV2
大div中有多个div,这些div在同一行显示,溢出后产生滚动条而不换行
Pointnet/Pointnet++点云数据集处理并训练
更安全、更智能、更精致,长安Lumin完虐宏光MINI EV?
随机推荐
Shell programming core technology II
The 300th weekly match of leetcode (20220703)
Online text line fixed length fill tool
Hough Transform 霍夫变换原理
一文掌握数仓中auto analyze的使用
876. 链表的中间结点
指定输出的字符集
Guys, for help, I use MySQL CDC 2.2.1 (Flink 1.14.5) to write Kafka and set
与二值化阈值处理相关的OpenCV函数、方法汇总,便于对比和拿来使用
One question per day (2022-07-02) - Minimum refueling times
LM10丨余弦波动顺势网格策略
Specify the character set to output
SSRS筛选器的IN运算(即包含于)用法
Wechat reading notes of "work, consumerism and the new poor"
Allure of pytest visual test report
Nebula importer data import practice
Stream stream
Have you guys ever used CDC direct Mysql to Clickhouse
矩阵翻转(数组模拟)
PolyFit软件介绍