• 2024-10-23洛谷 P2572 [SCOI2010] 序列操作 做题记录
    其实和小白逛公园差不多,编写代码的难度远大于思路难度,难点是调试:注意在区间异或\(1\)的时候分清代码里的最长连续\(1\)的长度和\(1\)的个数。注意查询最长\(1\)的时候要用结构体上传,如果用到了定值len的话要赋值。注意如果只用一个tag的话,遇到区间异或要对原先
  • 2024-03-13「杂题乱刷」洛谷 P2572
    先上AC代码:点击查看代码/*Tips:你数组开小了吗?你MLE了吗?你觉得是贪心,是不是该想想dp?一个小时没调出来,是不是该考虑换题?*/#include<bits/stdc++.h>usingnamespacestd;#definemapunordered_map#defineforl(i,a,b)for(registerlonglongi=a;i<=b;i++)#define
  • 2024-01-16P2572 [SCOI2010] 序列操作 题解
    题解:序列操作比较综合的ds题,综合了线段树常见的几种操作:维护最大子段和、区间翻转、区间求和、区间覆盖。维护子段和常见的我们维护三类东西:前缀最长连续段、后缀最长连续段、当前区间上的最大子段和。在pushUp时,对于一个区间的前后缀最值首先等于左右子树的最长前后缀,
  • 2023-11-01解题报告 P2572 [SCOI2010] 序列操作
    P2572[SCOI2010]序列操作线段树。首先对于一个区间,我们需要存储\(8\)个量来保证算出答案:\(1\)的个数,\(0\)的个数,最左边连续\(1/0\)个数,最右边连续\(1/0\)个数,区间内最长连续\(1/0\)个数。可以如下定义一个节点:structnode{ intcnt1,cnt0,ls1,ls0,rs1,rs0,ss1,s
  • 2023-10-24SCOI2010 P2572 序列操作
    \(SCOI2010\)\(P2572\)一、题目描述\(lxhgww\)最近收到了一个\(01\)序列,序列里面包含了\(n\)个数,下标从\(0\)开始。这些数要么是\(0\),要么是\(1\),现在对于这个序列有五种变换操作和询问操作:0lr把\([l,r]\)区间内的所有数全变成\(0\)1lr把\([l,r]\)区间内的