随笔分类 - 题解
摘要:S-2涂色问题 CF1260C —— 双倍经验 一眼瞪出结论(当然细节挂了) 就比较$k$和$\frac +1$的大小 $k=0$的时候显然是“NO” ——我忘了 而且可能不互质,所以要搞个gcd ——模了几个样例才想起来 #include <cstdio> #include <cstring> #
阅读全文
摘要:CF1060E Sergey and Subway 统计边的贡献 先不考虑题中的重连边,显然求得就是树上任意两点距离和,按边计贡献,$dfs$一遍搞个$siz$就行 然后对于重连边,显然是偶数距离的会都重复计算,所以都要除以二,答案就是 偶数距离的/2+奇数距离的 然后可以方便先计算树上任意两点距离
阅读全文
摘要:题目描述 给定一个 $n*m$的 01 矩阵, 求包含 $[l,r]$个 1的子矩形个数。 输入格式 第一行,两个正整数 n,m。 接下来 n行每一个长度为 m的 01 串,表示给定的矩阵。 接下来 一行, 两个自然数 l,r。 Solution 首先暴力枚举显然不可取 注意到,n非常小,可以考虑一
阅读全文
摘要:能量收集 贪心题 就两种操作,收集能量/ 回血 (防护也是回血) 能收集能量就先疯狂收集,最后如果耐久不够了,找之前的耗损耐久最大的一天补回来。(大根堆维护) #include <queue> #include <cstdio> #include <cstring> #include <iostre
阅读全文
摘要:CF242E XOR on Segment 区间异或不好直接维护,于是我们考虑将所有数二进制分解。 我们把每一位单独提出来做,那么对于每一位,异或要么不变,要么取反,而位与位之间的操作是独立的!建一棵线段树维护每一位的信息,那么只要维护: 1.区间取反(0变1,1变0) 2.区间求和 即可。这个利用
阅读全文
摘要:二分答案 差分序列,前缀和一下就是原数组,然后如果这个数小于mid,那就让 这个位置后连续w个都+1(注意边界是n+1),显然加上不会影响答案 #include <queue> #include <cstdio> #include <cstring> #include <iostream> #inc
阅读全文
摘要:https://www.luogu.com.cn/problem/UVA1521 \(gcd=1\) 的话,排除了x中所有因子及其倍数(除了1) $ gcd>1 $的话,范围变成了gcd的整数倍 显然,下面那个缩小得更快,但题目问的是“ 最坏情况下 ”,所以是用上面那个,显然$ p=1 $,肯定 \
阅读全文
摘要:建图 知道 \([l,r_1]\) 奇偶性和 \([l,r_2]\) 奇偶性,必然知道 $[r_1+1,r_2]$的奇偶性这很像是图上连边, \((u,v) (v,w) --> (u,w)\) 但这里有个+1,我们考虑去掉,那么就是每条边$[l,r]\(都连边\)(l-1,r)$然后全图跑最小生成树
阅读全文
摘要:起床困难综合症 从高到低拆位考虑,贪心,如果这一位0换1,肯定要,1换1也是要,然后一开始用全0和全1 的搞一下 #include <cstdio> #include <iostream> #include <algorithm> using namespace std; typedef long
阅读全文
摘要:小a的强迫症 其实很简单 就是每个颜色i在前面的所有珠子中选 num[i]-1个位置,\(C(\sum num[i] ~-1,num[i]-1)\) #include <iostream> #include <cstdio> using namespace std; #define int long
阅读全文
摘要:Promotion Counting P 首先离散化 我们可以从大到小排序, 对于每一个节点,我们需要统计它的子树中比它大的节点的个数 然后建一棵权值树状数组,在递归子树之前先把大于他的减掉,递归完子树后再把新的答案加回来 #include <cstdio> #include <iostream>
阅读全文
摘要:CF869C The Intriguing Obsession 考虑不合法的情况: 1.一个岛连接的两个岛颜色相同。 2.相同颜色的岛之间连接 我们发现第三种颜色不会影响前两种颜色之间的连接,于是我们可以把问题分成3部分, AB,AC,BC,最后相乘。 那么两种颜色之间连接方案数就是下面的公式了:
阅读全文
摘要:https://www.luogu.com.cn/problem/T120293 Description 一共有n张卡牌,每张卡牌上有一个数Ai,每次可以从中选出k张卡牌。一种选取方案的幸运数为这k张卡牌上数的异或和。马克想知道所有选取方案的幸运数之和除以998244353的余数。 Solution
阅读全文
摘要:题目:给定一棵 N 个点的无向树,边有边权,求树上任意两点间的距离和,答案对 1e9+7 取模。 题解:依题可知,这道题所求即Σi=1n−1Σj=i+1ndist(i,j),枚举树上任意两点并计算距离的复杂度要达到 O(n2logn),时间难以承受。 可以换一种方式思考,由于任意两点的距离都是答案贡
阅读全文
摘要:等差子序列 等差序列只要找三个数就行 x,y,z 想法枚举中间数y O(n) , 公差 d O(n) 看看y-d和y+d是不是在y的同侧(预处理每个数的pos) 这样就O (n^2) 了 优化枚举d的复杂度 我们可以搞个0/1数组,在y左边的设为1,右边的设为0 然后我们查以 y 为中心的是不是个回
阅读全文
摘要:Solution 把原来的pos排序,二分时间 t ,然后更新成新的pos’ ,再排序比较二者顺序是否完全相同。 疑难:对k不会处理 60 pts std: 其实就差一点想到正解。。。我们对新的pos’ 求出最长上升子序列LIS , 然后 若序列长度>=n-k 就可行 (n^2暴力枚举任意两个点相撞
阅读全文
摘要:过不了大样例 查不出错。。。可能想错了 wawawa爆零了 #include <cstdio> #include <vector> #include <cstring> #include <iostream> using namespace std; const int N=500005; inli
阅读全文
摘要:量化交易 (Lg题目有问题,会TLE) https://codeforces.com/problemset/problem/865/D CF上AC https://www.cnblogs.com/Yuzao/p/6886194.html 两个操作: 1、第j天买入 2、第i天卖出(j<i) 用一个小
阅读全文
摘要:挺进 题意:给你一颗树,要求断掉一条边,使得剩下两个联通快的直径之和最大 假设我们枚举断哪一条边,在logn时间内求出两个联通快的直径(树剖lca) 不就行了嘛 怎么做呢,我们发现,可以用树的dfs序来维护,我们用一个线段树维护一个区间内的直径的端点和长度 如何合并呢? 我们假设两块的直径端点分别为
阅读全文

浙公网安备 33010602011771号