Submission #67872524
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define endl '\n'
#define cty cout<<"Yes"<<endl
#define ctn cout<<"No"<<endl
#define dbg(x) cout<<<<#x<<" : "<<x<<endl
#define int long long
const ll mod = 1e8;
const int mxn = 4e6+10;
struct node{
int l,r,len,ls,rs,s;
//左端点,右端点,区间长度
//从左开始最长连续字符长度,从右开始最长连续字符长度,区间内最长连续字符长度
}t[mxn];
int n,q;
string s;
inline int lc(int i){
return i<<1;
}
inline int rc(int i){
return i<<1|1;
}
node pushup(node a,node b){
//合并
node t;
t.l = a.l;
t.r = b.r;
t.len = t.r-t.l+1;
t.ls = a.ls;
t.rs = b.rs;
t.s = max(a.s,b.s);
if(s[a.r]==s[b.l]){
t.s = max(t.s,a.rs+b.ls);
if(a.ls==a.len) t.ls = a.len+b.ls;
if(b.rs==b.len) t.rs = b.len+a.rs;
}
return t;
}
void build(int p,int l,int r){
t[p] = {l,r,r-l+1,1,1,1};
if(l==r) return;
int mid = (l+r)/2;
build(lc(p), l, mid);
build(rc(p), mid+1, r);
t[p] = pushup(t[lc(p)],t[rc(p)]);
}
void update(int p,int x){
if(t[p].l==t[p].r) return;
int mid = (t[p].l+t[p].r)/2;
if(x<=mid) update(lc(p), x);
else update(rc(p), x);
t[p] = pushup(t[lc(p)], t[rc(p)]);
}
node query(int p,int l,int r){
if(t[p].l>r||t[p].r<l) return {0,0,0,0,0,0};
if(t[p].l>=l&&t[p].r<=r){
return t[p];
}
return pushup(query(lc(p),l,r),query(rc(p),l,r));
}
void LonelyLunar_solve(){
cin>>n>>q;
cin>>s;
s = " "+s;
build(1,1,n);
while(q--){
int op;
cin>>op;
if(op==1){
int i;
char x;
cin>>i>>x;
s[i] = x;
update(1,i);
}
else{
int l,r;
cin>>l>>r;
cout<<query(1,l,r).s<<endl;
}
}
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int _ = 1;
//cin>>_;
while(_--){
LonelyLunar_solve();
}
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | F - Max Combo |
| User | LonelyLunar |
| Language | C++ 20 (gcc 12.2) |
| Score | 525 |
| Code Size | 1878 Byte |
| Status | AC |
| Exec Time | 544 ms |
| Memory | 54756 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 525 / 525 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample_01.txt, sample_02.txt |
| All | evil_01.txt, evil_02.txt, evil_03.txt, evil_04.txt, evil_05.txt, evil_06.txt, evil_07.txt, evil_08.txt, evil_09.txt, evil_10.txt, evil_11.txt, evil_12.txt, evil_13.txt, evil_14.txt, evil_15.txt, evil_16.txt, evil_17.txt, evil_18.txt, evil_19.txt, evil_20.txt, evil_21.txt, evil_22.txt, evil_23.txt, evil_24.txt, evil_25.txt, evil_26.txt, evil_27.txt, evil_28.txt, sample_01.txt, sample_02.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt, test_44.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| evil_01.txt | AC | 429 ms | 52868 KiB |
| evil_02.txt | AC | 469 ms | 52816 KiB |
| evil_03.txt | AC | 460 ms | 52824 KiB |
| evil_04.txt | AC | 515 ms | 52816 KiB |
| evil_05.txt | AC | 447 ms | 52984 KiB |
| evil_06.txt | AC | 492 ms | 52984 KiB |
| evil_07.txt | AC | 438 ms | 52820 KiB |
| evil_08.txt | AC | 481 ms | 52920 KiB |
| evil_09.txt | AC | 441 ms | 52924 KiB |
| evil_10.txt | AC | 500 ms | 52984 KiB |
| evil_11.txt | AC | 453 ms | 53036 KiB |
| evil_12.txt | AC | 491 ms | 52940 KiB |
| evil_13.txt | AC | 432 ms | 52980 KiB |
| evil_14.txt | AC | 483 ms | 52920 KiB |
| evil_15.txt | AC | 458 ms | 53032 KiB |
| evil_16.txt | AC | 486 ms | 53052 KiB |
| evil_17.txt | AC | 436 ms | 52988 KiB |
| evil_18.txt | AC | 482 ms | 52992 KiB |
| evil_19.txt | AC | 465 ms | 52820 KiB |
| evil_20.txt | AC | 483 ms | 52920 KiB |
| evil_21.txt | AC | 447 ms | 52932 KiB |
| evil_22.txt | AC | 478 ms | 52984 KiB |
| evil_23.txt | AC | 456 ms | 52816 KiB |
| evil_24.txt | AC | 467 ms | 52980 KiB |
| evil_25.txt | AC | 322 ms | 52980 KiB |
| evil_26.txt | AC | 323 ms | 52916 KiB |
| evil_27.txt | AC | 182 ms | 52868 KiB |
| evil_28.txt | AC | 379 ms | 52784 KiB |
| sample_01.txt | AC | 1 ms | 3468 KiB |
| sample_02.txt | AC | 1 ms | 3484 KiB |
| test_01.txt | AC | 496 ms | 52996 KiB |
| test_02.txt | AC | 499 ms | 52716 KiB |
| test_03.txt | AC | 492 ms | 52964 KiB |
| test_04.txt | AC | 481 ms | 52856 KiB |
| test_05.txt | AC | 518 ms | 52804 KiB |
| test_06.txt | AC | 507 ms | 52872 KiB |
| test_07.txt | AC | 476 ms | 52880 KiB |
| test_08.txt | AC | 517 ms | 52416 KiB |
| test_09.txt | AC | 522 ms | 52968 KiB |
| test_10.txt | AC | 514 ms | 52900 KiB |
| test_11.txt | AC | 537 ms | 52844 KiB |
| test_12.txt | AC | 529 ms | 52676 KiB |
| test_13.txt | AC | 527 ms | 53020 KiB |
| test_14.txt | AC | 526 ms | 52892 KiB |
| test_15.txt | AC | 518 ms | 52924 KiB |
| test_16.txt | AC | 517 ms | 52688 KiB |
| test_17.txt | AC | 544 ms | 52296 KiB |
| test_18.txt | AC | 538 ms | 52912 KiB |
| test_19.txt | AC | 203 ms | 3492 KiB |
| test_20.txt | AC | 202 ms | 3496 KiB |
| test_21.txt | AC | 218 ms | 3608 KiB |
| test_22.txt | AC | 213 ms | 3604 KiB |
| test_23.txt | AC | 212 ms | 3536 KiB |
| test_24.txt | AC | 210 ms | 3512 KiB |
| test_25.txt | AC | 209 ms | 3664 KiB |
| test_26.txt | AC | 211 ms | 3292 KiB |
| test_27.txt | AC | 210 ms | 3584 KiB |
| test_28.txt | AC | 208 ms | 3460 KiB |
| test_29.txt | AC | 112 ms | 54392 KiB |
| test_30.txt | AC | 110 ms | 54756 KiB |
| test_31.txt | AC | 490 ms | 52904 KiB |
| test_32.txt | AC | 483 ms | 52956 KiB |
| test_33.txt | AC | 481 ms | 52548 KiB |
| test_34.txt | AC | 473 ms | 52704 KiB |
| test_35.txt | AC | 492 ms | 52968 KiB |
| test_36.txt | AC | 494 ms | 52920 KiB |
| test_37.txt | AC | 500 ms | 52432 KiB |
| test_38.txt | AC | 475 ms | 52972 KiB |
| test_39.txt | AC | 510 ms | 52884 KiB |
| test_40.txt | AC | 474 ms | 52820 KiB |
| test_41.txt | AC | 521 ms | 52956 KiB |
| test_42.txt | AC | 504 ms | 52828 KiB |
| test_43.txt | AC | 345 ms | 52312 KiB |
| test_44.txt | AC | 331 ms | 52840 KiB |