当前位置:网站首页>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;
}
边栏推荐
- Shell programming core technology "four"
- Summary and sorting of 8 pits of redis distributed lock
- 性能优化之关键渲染路径
- 大佬们,求助一下,我用mysql cdc 2.2.1(flink 1.14.5)写入kafka,设置
- Leetcode fizzbuzz C # answer
- LeetCode第300场周赛(20220703)
- Use canal and rocketmq to listen to MySQL binlog logs
- Opencv functions and methods related to binary threshold processing are summarized for comparison and use
- 牛客小白月赛7 F题
- 生成XML元素
猜你喜欢
Nebula importer data import practice
“只跑一趟”,小区装维任务主动推荐探索
To sort out messy header files, I use include what you use
Explore the contour drawing function drawcontours() of OpenCV in detail with practical examples
There are multiple divs in the large div, which are displayed on the same line. After overflow, scroll bars are generated without line breaks
【问题】druid报异常sql injection violation, part alway true condition not allow 解决方案
PolyFit软件介绍
Use canal and rocketmq to listen to MySQL binlog logs
读写关闭的channel是啥后果?
Upgrade the smart switch, how much is the difference between the "zero fire version" and "single fire" wiring methods?
随机推荐
mysql中explain语句查询sql是否走索引,extra中的几种类型整理汇总
读写关闭的channel是啥后果?
Is Guoyuan futures a regular platform? Is it safe to open an account in Guoyuan futures?
The page element is vertically and horizontally centered, realizing the vertical and horizontal centering of known or unknown width.
2022CoCa: Contrastive Captioners are Image-Text Fountion Models
Qt实现界面滑动切换效果
LeetCode 赎金信 C#解答
使用canal配合rocketmq监听mysql的binlog日志
双冒号作用运算符以及命名空间详解
redis分布式锁的8大坑总结梳理
添加命名空间声明
Have you guys ever used CDC direct Mysql to Clickhouse
求2的n次方
关于判断点是否位于轮廓内的一点思考
牛客小白月赛7 F题
1006 Sign In and Sign Out(25 分)(PAT甲级)
在线SQL转Excel(xls/xlsx)工具
Introduction to polyfit software
Wireshark网络抓包
1672. Total assets of the richest customers