比赛 |
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;
}