洛谷 3870 [TJOI2009]开关】的更多相关文章

[题解] 线段树基础题.对于每个修改操作把相应区间的sum改为区间长度-sum即可. #include<cstdio> #include<algorithm> #include<cstring> #define LL long long #define rg register #define N 200010 #define ls (u<<1) #define rs (u<<1|1) #define mid ((a[u].l+a[u].r)>…
题目描述 现有\(N(2 ≤ N ≤ 100000)\)盏灯排成一排,从左到右依次编号为:\(1,2,......,N\).然后依次执行\(M(1 ≤ M ≤ 100000)\)项操作,操作分为两种:第一种操作指定一个区间\([a, b]\),然后改变编号在这个区间内的灯的状态(把开着的灯关上,关着的灯打开),第二种操作是指定一个区间\([a, b]\),要求你输出这个区间内有多少盏灯是打开的.灯在初始时都是关着的. 输入输出格式 输入格式: 第一行有两个整数\(N\)和\(M\),分别表示灯的…
题意简述 有n盏灯,默认为关,有两个操作: 1.改变l~r的灯的状态(把开着的灯关上,关着的灯打开) 2.查询l~r开着的灯的数量 题解思路 维护一个线段树,支持区间修改,区间查询 懒标记每次^1 代码 #include <cstdio> using namespace std; int n, m, opt, x, y; int a[400010], la[400010]; void push_up(int x) { a[x] = a[x << 1] + a[x <<…
原题链接 前置知识: 线段树的单点.区间的修改与查询. 一看,我们需要维护两个操作: 区间取反: 区间求和. (因为区间 \(1\) 的个数,就是区间的和) 典型的 线段树 . 如果你只会线段树的 区间修改,单点修改,区间查询,单点查询 的话,这题的 "取反" 是个难题. 但是,这个数组有个性质: \(a_i \in {0,1}\) 也就是说,假设一个数组一开始这样子: \(1\) \(2\) \(3\) \(4\) \(a_i\) \(0\) \(1\) \(0\) \(0\) \(…
简单的省选题...... 打异或标记即可. 1 #include<bits/stdc++.h> 2 const int N=2e5+10; 3 using namespace std; 4 int n,m,a,b,c; 5 struct node{ 6 int l,r,num,lazy; 7 }t[N<<2]; 8 int read(){ 9 int x=0,f=1;char c=getchar(); 10 while(c<'0'||c>'9'){if(c=='-')…
题目链接 [洛谷] 题解 来做一下水题来掩饰ZJOI2019考炸的心情QwQ. 很明显可以线段树. 维护两个值,\(Lazy\)懒标记表示当前区间是否需要翻转,\(s\)表示区间还有多少灯是亮着的. 那么每一次翻转,\(s\)就变成了\(n-s\),\(n\)表示区间内所有灯的数量. 线段树维护一下就可以了. 代码 #include <bits/stdc++.h> using namespace std; const int N = 100000 + 6; int n, m; namespac…
洛谷题目传送门 90分WA第二个点的看过来! 简要介绍一下中国剩余定理 中国剩余定理,就是用来求解这样的问题: 假定以下出现数都是自然数,对于一个线性同余方程组(其中\(\forall i,j\in[1,k],i\neq j,b_i\)与\(b_j\)互质) \(\begin{cases}n\equiv a_1(\mod b_1)\\n\equiv a_2(\mod b_2)\\......\\n\equiv a_k(\mod b_k)\end{cases}\) 设\(lcm=\prod_{i=…
\(\mathcal{Description}\)   Link.   有 \(n\) 个开关,初始时所有开关的状态为 \(0\).给定开关的目标状态 \(s_1,s_2,\cdots,s_n\).每次操作中会以正比于 \(p_i\) 的概率拨动开关 \(i\).求开关达到目标状态的期望操作次数,对 \(998244353\) 取模.   \(n\le100\),\(\sum p\le5\times10^4\). \(\mathcal{Solution}\)   不妨令 \(p_i\) 为一次操…
题意简述 给定\(a[1],a[2],\cdots,a[n]\) 和 \(b[1],b[2],\cdots,b[n]\),其中\(b\)中元素两两互素. 求最小的非负整数\(n\),满足对于任意的\(i\),\(n - a[i]\)能被\(b[i]\)整除. 题解思路 变形后用中国剩余定理即可,注意要快速乘. 代码 #include <cstdio> typedef long long ll; typedef long double ld; typedef unsigned long long…
Problem 洛谷P2845-Switching on the Lights 开关灯 Accept: 154    Submit: 499Time Limit: 1000 mSec    Memory Limit : 128MB Problem Description Farm John 最近新建了一批巨大的牛棚.这些牛棚构成了一个N*N的矩形网络.(1<n<100) 然而bessie十分怕黑,他想计算可以把多少个牛棚的灯打开. 有N*N个房间,组成了一张N*N的网格图,Bessie一开始位…