cf-div 860 div cf
Pinely Round 3 (Div. 1 + Div. 2)
A 构造题,分两种情况考虑 上下都行,左右选一个 左右都行,上下选一个 void solve() { int n; cin >> n; vector<pair<int, int> > a(n); for(auto &t : a) cin >> t.x >> t.y; sort(a.begin(), ......
Pinely Round 3 (Div. 1 + Div. 2) A~D
A. Distinct Buttons // #include <bits/stdc++.h> #include <iostream> #include <string> #include <cstring> #include <vector> #include <algorithm> #inclu ......
Pinely Round 3 (Div. 1 + Div. 2)
\(A.Distinct Buttons\) https://codeforces.com/contest/1909/submission/238508091 \(B.Make Almost Equal With Mod\) https://codeforces.com/contest/1909/s ......
CF1621G Weighted Increasing Subsequences
CF1621G Weighted Increasing Subsequences 你有一个长度为 \(n\) 的序列,定义 \(a\) 的一个长度为 \(k\) 的子序列为 \(a_{i_1},a_{i_2},\dots,a_{i_k}\)。由此,我们不难发现,\(a\) 的一个长度为 \(k\) ......
CF983E
题目传送门 解题思路:倍增+树剖+树状数组 对于每次询问,我们可以看成是两个点都不断往上跳(如果一个点是另一个点的祖先则是只有一个跳),有一个很明显的贪心策略:每次都跳到能跳到的深度最小的点。然而一次一次往上跳可能被极端数据卡掉,所以要用倍增维护跳 \(2^i\) 次能跳到哪里。 然而两个点都跳到他 ......
CF1140G
居然差一点场切了。 首先可以将两棵树上对应的点看作一个点的两个不同状态考虑一个类似最短路的东西:设 \(dis_{i,j,0/1,0/1}\) 为树上 \(0/1\) 状态的 \(i\) 点到 \(0/1\) 状态的最短路。考虑怎样维护这个值。 由于是树上路径问题,容易发现设 \(k\) 为树上 \ ......
CF1536E
很强的题。 结论:每个非 \(0\) 点的值一定是它到最近的 \(0\) 的距离。 证明:记该点值为 \(x\),上文距离为 \(d\)。考虑反证。 若 \(x>d\)。 考虑该点到 \(0\) 的最短路。记路径上的点到该点的距离为 \(d'\),值为 \(x'\)。则 \(x'\) 最小能取到 \ ......
CF1768F
dp+根号分治,配得上省选题的难度。 一眼 dp,虽然暴力肯定过不了,但是把朴素转移先列出来绝对没坏处。 \[dp_i=\min\limits_{1\leq j<i}(dp_j+\min\limits_{j\leq k\leq i}a_k\times v) \]这个东西很难用 DS 维护,有 \(\ ......
CF850C
学习 SG 基础题。 首先发现每个质数之间是独立的,于是分成了若干个子游戏。 考虑如何计算每个子游戏的 SG 值。一开始没搞懂为什么可以状压,看了大佬代码才明白:对于一个质数 \(p\),\(p^k\) 对答案是否有影响,只和这个 \(k\) 是否出现有关。所以将 \(k\) 的出现状态情况成二进制 ......
CF1444C
可撤销并查集好题。 首先考虑如果已经确定选哪两组,该怎么判断。发现是一个二分图判定的问题,拓展域并查集即可。 那如果要求出所有可能的两组的答案怎么办。首先,如果两组中至少有一组,在只加入组内边时就已经不可能是二分图了,这种情况就显然是不行的。 否则,可以考虑预先加入所有组内的连边,枚举每一种出现过的 ......
CF870F
感觉完全没有 *2700? 看到题,猜测 \(\max dis\) 不会很大,于是按照路径种类分类讨论一下路径 \((i,j)\)。下设 \(f_i\) 为最小质因数,并且更下面的情况不包括上面的情况。 \(\gcd(i,j)>1\) 这种显然 \(dis=1\),数量则为 \(\sum\limit ......
CF1866K
李超线段树二次离线。 容易发现,将和某个点 \(x\) 相邻的边权翻若干倍后,直径所在位置有两种可能:经过或不经过该点。不经过可以跑一次直接求,否则还要分类讨论一下。 \(\operatorname{deg}_x=1\) 那么它会作为直径的一个端点。 否则 直径会从一条边进,另一条边出。 前者是简单 ......
CF119D
还是一道很综合的 string 练手题。 先来分析一下,将 \(B\) 按照答案分成三段,三段与 \(A\) 都有什么关系。 第一段:\(A\) 的一个子串。 第二段:\(A\) 的一段后缀翻转。 第三段:\(A\) 的一段前缀翻转。 我们大概率是要枚举其中一个的,其中第三段都能用 \(A,B\) ......
CF1217F
强制在线是诈骗,还是很有意思的。 首先,如果没有强制在线就是一个 SGT 分治板子。强制在线看起来做不了,但是发现 \(lastans=0/1\)。这启示我们不同的加边可能性不会太多。考虑先记录两种加边可能。 容易发现,如果当前时刻 \(j\) 可能操作 \((u,v)\),上一次可能的时刻是 \( ......
CF119D
还是一道很综合的 string 练手题。 先来分析一下,将 \(B\) 按照答案分成三段,三段与 \(A\) 都有什么关系。 第一段:\(A\) 的一个子串。 第二段:\(A\) 的一段后缀翻转。 第三段:\(A\) 的一段前缀翻转。 我们大概率是要枚举其中一个的,其中第三段都能用 \(A,B\) ......
CF1178H
cdqz 两道题都很有意思啊!顺便是第一篇 *3500 题解。 先考虑第一问。 显然有单调性,所以可以二分。cdqz 这是二分专题吗 Lemma 1:所有操作都在 \(0\) 和 \(t\) 时刻进行。 Proof:这是若干个一次函数,最大或最小值都会在端点处取得。所以是显然的。 接下来你就要使你在 ......
CF1055F Tree and XOR
这道题代码虽然比较短,但花了我整整一天才过,太菜了 这是 CF241B 的加强版,但是有点不同,因为 CF241B 后半部分求前 \(k\) 大的和没法优化了,而这道题能把前面的求第 \(k\) 小时间复杂度优化到单 log ,但是需要注意这道题开 trie 完全开不下,所以肯定没法 trie 上二 ......
CF1883G2 Dances (Hard Version)
Problem - D2 - Codeforces Dances (Hard Version) - 洛谷 Hint1: 对于 \(C[i]\) 的答案上界和下界分别是多少? Hint1.1: 记 \(C[i]_1\) 时的答案 \(ans\),答案范围显然是 \([ans,ans+1]\) Hint ......
CF1889C2 Doremy's Drying Plan (Hard Version)
Problem - C2 - Codeforces Doremy's Drying Plan (Hard Version) - 洛谷 很好的一道 \(dp\) 题,无论是 \(dp\) 状态还是优化都很思维 我们设 \(dp_{i,j}\) 表示考虑了前 \(i\) 个城市,第 \(i\) 个城市干 ......
CF1761E Make It Connected记录
题目链接:https://codeforces.com/contest/1761/problem/E 题意简述 以邻接矩阵的形式给你一张无向图。你可以执行如下操作: 选定节点 \(u\)。对所有其它节点 \(v\),翻转 \(u\) 与 \(v\) 的连边状态。 给出一种花费操作最少的方案,使图连通 ......
codeforces比赛(1):codeforces 916_div3
我的第一篇博客,虽然发布的都是非常简单的算法题,也没人看。我希望未来当我算法水平提高一个档次来看或许会有新的感受。这次cf比赛第一次写出来div3的D题,并且还剩余1小时,非常开心,一定继续保持下去。 ......
CF1726G A Certain Magical Party
CF1726G A Certain Magical Party 聚会上有 \(n\) 个人,第 \(i\) 个人有一个开心指数 \(a_i\) 。 每个人都有一种确定的个性,这种个性可以用一个二进制整数 \(b\) 来表示。如果 \(b=0\) ,那么意味着如果他将一个故事讲给一个开心指数比他低的人 ......
CF241B Friends
异或粽子的加强版,时间复杂度是 \(O(n log^2 w)\) ,其中 \(w\) 是值域 \(2^{30}\) ,原来的是和 \(k\) 有关的,相当于是 CF241B 的代码通过不了异或粽子,异或粽子的代码通过不了 CF241B(雾 先考虑一个整体的思路,求前 \(k\) 大,先需要求第 \( ......
CF1881F Minimum Maximum Distance 题解
因为白点对 \(f_i\) 没有贡献,所以可以重构出一棵原树的子树,使得所有的叶子都为标记点且标记点数量不变(没有删去标记点)。因为没有标记被删去且结构不变,所以这棵树的答案与原树答案相同。 现在,对于所有节点,到它距离最大的标记点一定在叶子上。那么问题就变为:求出树上任意一点到所有叶子节点的最大距 ......
Codeforces Round 651 (Div. 2)C. Number Game(数学思维数论)
C. Number Game 我们考虑那些状态是必胜态 我的回合时n为奇数(除1外),直接除以n则必胜 下面偶数的情况稍复杂 偶数我们能进行的操作只有除以一个奇数,需要考虑怎么把当前状态变为对手的必败态 偶数一定含2的因子,\(n=2^k*q,q为奇数\) 当\(k=1时如果q\)是一个质数那么只能 ......
动态给div赋值高,使页面高度100%
import { ref, onMounted, onUnmounted, computed, nextTick } from 'vue' const boxRef = ref() const searchBoxRef = ref() const tableBoxHeight = ref(0) co ......
在div之前画一条连接线
<html> <head> <style> div.boxItem { display: inline-block; border: 1px solid black; padding: 1em; margin-right: 5em; position: relative } .boxItem:bef ......
Codeforces Round 638 (Div. 2)B. Phoenix and Beauty
B. Phoenix and Beauty 这道题目学到的东西: 从给出的数据范围观察,得到一些有用信息(峰哥教的) 考虑无解的情况‘ 其实这题考虑怎么操作是比较难的,如果能想出来满足条件的结果就比较好了(我在说什么我自己也不知道,算了直接看下面的图吧) 假设\(k=3\),下面是我们得到的结果数列 ......
CF1912H Hypercatapult Commute记录
题目链接:https://codeforces.com/problemset/problem/1912/H 题意 有 \(n\) 个城市,\(m\) 个人。第 \(i\) 人想从城市 \(a_i\) 移动到 \(b_i\)。每个城市每天可以使用至多一次传送胶囊,可以将任意数目的人从该城市传送到任意一 ......
[CF17E] Palisection 题解
[CF17E] Palisection 题解 思路 直接统计相交的字符串很难数,考虑正难则反。 用总共的回文串对数减去相离的回文串个数。 设总共有 \(tot\) 个回文串,用 manacher 跑出来每个位置的最大回文半径后,使用差分的技巧保存两个数组: \(f_i\) 表示以 \(i\) 为开头 ......