[LOJ3083] [GXOI2019] 与或和】的更多相关文章

题目链接 LOJ:https://loj.ac/problem/3083 洛谷:https://www.luogu.org/problemnew/show/P5300 Solution 逐位考虑,可以发现问题就是求一个\(\rm 01\)矩阵的全\(\rm 0\)子矩形个数. 那么我们可以用一个上升的单调栈来求这个,总复杂度\(O(n^2\log v)\). #include<bits/stdc++.h> using namespace std; void read(int &x) {…
题目链接: [GXOI/GZOI2019]与或和 既然求的是二进制运算的和,那么我们按位考虑,这样就将矩阵变成了一个$01$矩阵. 对于或运算,就是求有多少个子矩形中有$1$. 直接求不好办,考虑有多少个矩形只有$0$. 我们统计以每个$0$为矩形右下角的矩形有多少个. 对于第$i$行的每一列维护出从这一行开始往上有多少个连续的$0$. 现在问题就变成了对于第$i$行的每一列,之前有多少个格子能作为矩形的左上角和它匹配. 用单调栈维护一个单调递增的序列对每行分别统计答案即可. 对于与运算,就是将…
题目链接 LOJ:https://loj.ac/problem/3086 洛谷:https://www.luogu.org/problemnew/show/P5303 Solution 显然不考虑\(1\times 1\)的矩形就是斐波那契数列,设为\(g\),则\(g_n=g_{n-1}+g_{n-2}\). 设考虑的方案数为\(f\),那么可以枚举放哪里得到一个暴力式子: \[ \begin{align}f_n&=2\sum_{i=1}^{n}\sum_{j=i+2}^{n}g_{i-1}\…
陆陆续续做完了-- 与或和(单调栈) 这是一道一眼题-- 看到位运算,按位考虑贡献.对于每一位,将矩阵中的元素变为"当前元素的这一位是否为\(1\)",那么原矩阵变为\(01\)矩阵.在\(01\)矩阵中能够对\(AND\)产生贡献的是全\(1\)的矩阵,能够对\(OR\)产生贡献的是存在\(1\)的矩阵,那么我们需要求全\(1\)和全\(0\)矩阵,单调栈做一下就可以了. 代码 宝牌一大堆(DP) 这是一道暴力题-- 国士无双可以直接判,七对子用贪心判一下,对于\(3 \times…
Day-1 晚上一直在出自己做的模拟赛的T1,真的快要死掉了. 分类讨论几十种情况. 窝还是找了Bluesky大佬一起来验题,她瞬间就A掉了这一道题目...自闭了.. 诶,我还是太弱了. 之前教练组织一场比赛,开题之后发现是GXOI/GZOI2019的新题,顺手切了两道,打了一个T1的暴力230到手. 感觉自己还是比较垃圾. 滚去睡觉,..(¦3[▓▓] 晚安 Day 0 早上 依旧一个一个非常正常的早晨. 窝背着书包拉着行李箱来到了HG,结果被保安拦下来,看窝比较可疑.毕竟现在还是上学时间,还…
1146C Tree Diameter 题意 交互题.有一棵 \(n(n\le 100)\) 个点的树,你可以进行不超过 \(9\) 次询问,每次询问两个点集中两个不在同一点集的点的最大距离.求树的直径. 题解 和 GXOI2019旅行者 基本类似,二进制分组,对于每一位,编号当前位为 \(0\) 的分到一组,当前位为 \(1\) 的分到另一组.最大询问次数为 \(\log 100 = 7\) code #include<cstdio> int v1[105],v2[105]; int mai…