比赛 2025.9.13 评测结果 AAAAEAATTTTTEEEEEEEE
题目名称 The Best Subsequence 最终得分 30
用户昵称 左清源 运行时间 16.448 s
代码语言 C++ 内存使用 3.71 MiB
提交时间 2025-09-13 11:48:47
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <vector> 
#include <map>
using namespace std;
const int mod=1e9+7;
const int N=2e5+10;
int n,m,q,a[N],b[N],l,r,k;
int calc(){
	int res=0;
	for(int i=1;i<=k;i++){
		res=(res*2%mod+b[i])%mod;
	}
	return res;
}
int main(){
	freopen("Subsequence.in","r",stdin);
	freopen("Subsequence.out","w",stdout);
	scanf("%d %d %d",&n,&m,&q);
	while(m--){
		scanf("%d %d",&l,&r);
		for(int i=l;i<=r;i++)a[i]^=1;
	}
	while(q--){
		scanf("%d %d %d",&l,&r,&k);
		for(int i=l,j=1;i<=r;i++){
			if(k-j+1==r-i+1){
				while(j<=k){
					b[j]=a[i];
					j++,i++;
				}
			}else{
				if(a[i]==1){
					b[j]=a[i];
					j++;
				}
			}
		} 
		printf("%lld\n",calc());
	}
	return 0;
}