当前位置:网站首页>Educational codeforces round 22 E. Army Creation
Educational codeforces round 22 E. Army Creation
2022-07-04 19:34:00 【Pas de 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;
}
边栏推荐
- 安徽 中安在线文旅频道推出“跟着小编游安徽”系列融媒体产品
- 876. 链表的中间结点
- Unity adds a function case similar to editor extension to its script, the use of ContextMenu
- Pointnet/Pointnet++点云数据集处理并训练
- MySQL数据库基本操作-DDL | 黑马程序员
- 用实际例子详细探究OpenCV的轮廓绘制函数drawContours()
- Unity editor extends C to traverse all pictures in folders and subdirectories
- 指定输出的字符集
- Stream stream
- [uniapp] uniapp development app online Preview PDF file
猜你喜欢
关于判断点是否位于轮廓内的一点思考
Safer, smarter and more refined, Chang'an Lumin Wanmei Hongguang Mini EV?
Explore the contour drawing function drawcontours() of OpenCV in detail with practical examples
欧拉函数
Nebula importer data import practice
Detailed explanation of the binary processing function threshold() of opencv
Build your own website (15)
Hough transform Hough transform principle
从实时应用角度谈通信总线仲裁机制和网络流控
[uniapp] uniapp development app online Preview PDF file
随机推荐
1007 Maximum Subsequence Sum(25 分)(PAT甲级)
Allure of pytest visual test report
Shell 編程核心技術《四》
【问题】druid报异常sql injection violation, part alway true condition not allow 解决方案
Unity给自己的脚本添加类似编辑器扩展的功能案例ContextMenu的使用
Leetcode ransom letter C # answer
One question per day (2022-07-02) - Minimum refueling times
English语法_名词 - 使用
Is the securities account opened by qiniu safe?
sqlserver的CDC第一次查询的能读取到数据,但后面增删改读取不到,是什么原因
项目中遇到的线上数据迁移方案1---总体思路整理和技术梳理
Reflection (I)
FPGA timing constraint sharing 01_ Brief description of the four steps
牛客小白月赛7 I 新建 Microsoft Office Word 文档
FTP, SFTP file transfer
问下各位大佬有用过cdc直接mysql to clickhouse的么
在线SQL转Excel(xls/xlsx)工具
升级智能开关,“零火版”、“单火”接线方式差异有多大?
Don't just learn Oracle and MySQL!
Specify the character set to output