• 2025-01-01P3870 [TJOI2009] 开关
    题目描述现有 nn 盏灯排成一排,从左到右依次编号为:11,22,……,nn。然后依次执行 mm 项操作。操作分为两种:指定一个区间 [a,b][a,b],然后改变编号在这个区间内的灯的状态(把开着的灯关上,关着的灯打开);指定一个区间 [a,b][a,b],要求你输出这个区间内有多少盏灯是打开的。灯在初
  • 2024-11-27洛谷题单指南-线段树-P3870 [TJOI2009] 开关
    原题链接:https://www.luogu.com.cn/problem/P3870题意解读:有n个数的序列,初始都是0,支持两种操作:将区间[l,r]内所有数异或1,求区间[l,r]内1个个数,输出所有求区间1的个数操作的结果。解题思路:灯的开关可以用0,1表示,改变灯的状态可以用异或操作,统计多少灯是开的就是计算1的个数,因此
  • 2024-08-02洛谷-P3869 [TJOI2009] 宝藏
    Abstract传送门本题是状态压缩+记忆化BFS的典型例子。Idea要求从出发点到终点的最短步数,BFS自然是首选的方法,那么,如何构造搜索的每一个节点呢?考虑到机关的数量比较小,最多10种,我们可以考虑用状态压缩去描述机关当前的状态,然后再记录当前的横纵坐标,以及行走的步数即可。值得
  • 2024-07-14求助!!![TJOI2009] 开关样例过不了,如何解决?(语言-c++)
    题目链接:https://www.luogu.com.cn/problem/P9869我的输出:1  12#include<bits/stdc++.h>usingnamespacestd;constintN=100300;intn,m,c,a,b;structnode{intf=0;intsum,l,r;//sum为开灯总数}tr[N<<2];voidup(intk){tr[k].sum+=tr[k