题目大意
给定一个包含 n 个未知数、n 个方程的线性方程组(实数域),判断方程组:
-
无解输出 -1
-
有无穷多组解输出 0
-
有唯一解则输出每个未知数的解(按题目要求格式)
1 |
|
给定一个包含 n 个未知数、n 个方程的线性方程组(实数域),判断方程组:
无解输出 -1
有无穷多组解输出 0
有唯一解则输出每个未知数的解(按题目要求格式)
1 | #include <iostream> |
维护一个长度为 n 的数组,支持两类操作:
1)对区间 [l,r] 所有元素加上一个值。
2)查询单点 a[x] 的当前值。
P3368 BIT2 区别在于区间加减和单点查询
视频教程
tr实际上是一个差分数组,只不过用了树状数组维护,a[ ]即原始数组就是diff的前缀和,所以甚至不需要再建一个前缀和数组
https://www.luogu.com.cn/record/180209186
和这题代码基本一样,还是比较适合我复训的。
我们来解释一下为什么可以这样pushup
1 | inline void invert(ll s,ll e){ |
众所周知,我们知道差分数组是给diff[s]+1,给diff[e+1]-1,那为什么可以直接pushup那?那是因为树状数组中遍历你上面的数组是必然遍历不到你的,这点你不用担心,所以不用担心差分连续加导致出错。
1 | #include <iostream> |
维护一个长度为 n 的数组,支持两类操作:
1)单点加上一个值。
2)查询区间 [l,r] 的元素和。
似乎这题也可以用树状数组解决
https://zh.wikipedia.org/wiki/二補數
lowbit()原理详见这里
视频教程
区间和我们实际上是用两前缀和相减得到的
1 | #include <iostream> |
给定两个长度为 n 的 01 字符串 a、b,以及 m 次区间操作。每次操作可以选择是否交换区间 [l,r] 内 a 与 b 对应位置的字符。目标是经过若干选择后,使最终得到的 a 的字典序尽可能小,输出最小的结果字符串。
https://class.luogu.com.cn/classroom/LGR197
比赛的时候暴力法打了20分,record:
https://www.luogu.com.cn/record/179510631
前面暴力没搞对是发现是有个双重循环写错了
1 | #include <iostream> |
1 | #include <iostream> |
1 | 41 |