Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
98607 CSYZ_PengLQ Old Driver Tree C++ 解答错误 0 1000 MS 2632 KB 2687 2023-08-16 12:08:21

Tests(0/4):


#include<bits/stdc++.h> using namespace std; #define ll long long const int N = 2e5 + 5; int bl[N], bnt, n, m, kl[N], kr[N]; ll a[N], block_size, cnt; ll wh[N]; bool full[N]; int main() { ios::sync_with_stdio(0); cin>>n>>m; block_size = floor(sqrt(n)); for(int i = 1;i <= n;i ++) { if(i % block_size == 1) bnt ++, kl[bnt] = i; if(!(i % block_size)) kr[bnt] = i; bl[i] = bnt; cin>>a[i]; } kr[bnt] = n; while(m --) { ll l, r, k; cin>>l>>r>>k; if(bl[l] == bl[r]) { if(r - l + 1 == block_size && full[bl[l]]) { if(wh[bl[l]] == k) cout<<block_size<<endl; else cout<<"0"<<endl; wh[bl[l]] = k; } else { int ans = 0; for(int i = l;i <= r;i ++) { if(a[i] == k) ans ++; a[i] = k; } cout<<ans<<endl; if(kl[bl[l]] == l && kr[bl[l]] == r) { full[bl[l]] = 1; wh[bl[l]] = k; } if(full[bl[l]]) { full[bl[l]] = 0; for(int i = kl[bl[l]];i <= l - 1;i ++) a[i] = wh[bl[l]]; for(int i = r + 1;i <= kr[bl[l]];i ++) a[i] = wh[bl[l]]; } } } else { ll ans = 0; if(kl[bl[l]] == l) { if(full[bl[l]]) { if(wh[bl[l]] == k) ans += block_size; } else { for(int i = l;i <= kr[bl[l]];i ++) { if(a[i] == k) ans ++; a[i] = k; } } wh[bl[l]] = k; full[bl[l]] = 1; } else { for(int i = l;i <= kr[bl[l]];i ++) { if(a[i] == k) ans ++; a[i] = k; } if(full[bl[l]]) { full[bl[l]] = 0; for(int i = kl[bl[l]];i <= l - 1;i ++) a[i] = wh[bl[l]]; } } if(kr[bl[r]] == r) { if(full[bl[r]]) { if(wh[bl[r]] == k) ans += block_size; } else { for(int i = kl[bl[r]];i <= r;i ++) { if(a[i] == k) ans ++; a[i] = k; } } wh[bl[r]] = k; full[bl[r]] = 1; } else { for(int i = kl[bl[r]];i <= r;i ++) { if(a[i] == k) ans ++; a[i] = k; } if(full[bl[r]]) { full[bl[r]] = 0; for(int i = r + 1;i <= kr[bl[r]];i ++) a[i] = wh[bl[r]]; } } if(bl[r] - bl[l] > 1) { for(int i = bl[l] + 1;i < bl[r];i ++) { if(full[i]) { if(wh[i] == k) ans += block_size; } else { for(int j = kl[i];j <= kr[i];j ++) { if(a[j] == k) ans ++; a[j] = k; } } full[i] = 1; wh[i] = k; } } cout<<ans<<endl; } } return 0; }


测评信息: