题解computational geometry p9702

【竞赛图】【DP】ARC163D Sum of SCC 题解

ARC163D 发现这个竞赛图一定能被分为两个集合 \(A\),\(B\)。满足 \(\forall u\in A,v\in B\),均有 \(u\to v\in E\)。答案就是划分这两个集合的方案数。 证明: 首先,竞赛图缩完点后一定是一条链,对强连通分量进行标号,满足编号小的强连通分量指向编号 ......
题解 163D ARC 163 Sum

「题解」Codeforces Round 883 (Div. 3)

A. Escalator Conversations Problem [题目](Rudolph and Cut the Rope) Sol & Code 绳子长度大于钉子高度的要剪 #include <bits/stdc++.h> typedef long long ll; int min(int ......
题解 Codeforces Round 883 Div

「题解」Codeforces Round 888 (Div. 3)

A. Escalator Conversations Problem 题目 Sol & Code 签到 #include <bits/stdc++.h> typedef long long ll; int min(int a, int b) { return a < b ? a : b; } int ......
题解 Codeforces Round 888 Div

「题解」Codeforces Round 891 (Div. 3)

A. Array Coloring Problem 题目 Sol & Code 只有数列的和为偶数时才符合要求,即有任意个偶数,偶数个奇数。 将这些数分成两部分,发现两部分初始值 \(0\) 为偶数,偶数不会影响奇偶性,故需要偶数个奇数。 #include <bits/stdc++.h> #defi ......
题解 Codeforces Round 891 Div

P9712 「QFOI R1」贴贴 の 题解

这道题比较典型。 大概就是你先输出solution-,之后再处理其他的。之后遍历字符串,如果发现是大写,就给转成小写,之后输出,如果发现是减号,就输出字符串,都不是就直接输出该字符串的第 \(i\) 个字符。 #include <iostream> #include <string> using n ......
题解 P9712 9712 QFOI

【基环树 | 题解】P5022 [NOIP2018 提高组] 旅行

前言 一日知基环树弱,固补题。 关于基环树 基环树定义 一个环,环上每个点都有一颗以该点为根的树,如下图为一棵基环树 关于基环树常规思路 通常来说基环树常规思路是先处理环上树的结果,后通过树的结果来处理换上结果。 具体处理方式依照题目来定。 然而只是通常来说 因为基环树的问题灵活性强且就算没专门学过 ......
题解 P5022 5022 2018 NOIP

CF1249(Div. 3) 题解(A to D)

\(\texttt{E F}\) 忘(不)记(会)写了。 A Yet Another Dividing into Teams 题解 题目大意 有一个长度为 \(n\) 的序列 \(a_1,a_2,\cdots,a_n\),将他们分为若干组,使得每一组没有两个数的差为 \(1\),使分的组数尽可能少。 ......
题解 1249 Div CF to

Luogu CF1133B 题解

这道题其实很简单 要让两数和为 \(k\) 的倍数,需要满足以下两条件之一: 两数都是 \(k\) 的倍数 两数的余数和为 \(k\) 因此,我们可以先统计出余数 再按上述条件算出共有多少组,即可得到答案 注意: 当 \(k\) 为偶数时,余数为 \(k/2\) 的数要两两配对,不要多算 这里统计的 ......
题解 Luogu 1133B 1133 CF

Luogu CF755B 题解

这题其实不难。 两人最佳的方案就是先说对方会的词。 不难证明,设先手会说 \(n\) 个单词,后手会说 \(m\) 个单词, 若 \(n>m\),则先手胜,若 \(n<m\),则后手胜。 那如果 \(n=m\) 呢? 假设两人都会说的单词数为 \(k\), 那么一番推理发现,当两人说了 \(k-1\ ......
题解 Luogu 755B 755 CF

Luogu P7627 题解

这题其实不难 但如果用暴力,肯定过不了 所以我们得想另一种办法 我们发现,只有 \(1\) 异或 \(0\) 的值为 \(1\) 例如: \(1\) , \(0\) , \(1\) 两两异或的和为 2 其实就是每个 \(0\) 与每一个 \(1\) 异或时,\(sum\) 要加 \(1\) 所以,我 ......
题解 Luogu P7627 7627

Luogu P8651 题解

这是让我最崩溃的一道橙题了。 整整 11 次提交才 AC。 这道题有几个要点必须注意: 判断日期是否合理。 按顺序输出。 判断重复的日期。 首先,我们来看怎么判断日期是否合理。 我们知道大月有 \(31\) 天,小月有 \(30\) 天,二月看平年闰年。 所以,我们可以写出这样的代码: bool c ......
题解 Luogu P8651 8651

Luogu CF1174C 题解

这道题其实不难。 \(\gcd(i,j)=1\),其实就是 \(i\) 与 \(j\) 互质。 如果 \(i\) 与 \(j\) 不互质,那么我们一定要让 \(a_i\) 与 \(a_j\) 相同,只有这样,才能使 \(a\) 序列中的最大值最小化。 所以,我们可以使用埃氏筛法,当筛到质数时,给它和 ......
题解 Luogu 1174C 1174 CF

Luogu CF1469B 题解

这道题其实并不难。 题目大意是这样的:已知两个序列 \(r\) 和 \(b\),求出合并后的最大前缀和。 很好发现:答案就是 \(r\) 和 \(b\) 各自的最大前缀和之和。 但要注意:\(r\) 和 \(b\) 可以什么都不取,因此 \(maxa\) 和 \(maxb\) 初始要赋值为 \(0\ ......
题解 Luogu 1469B 1469 CF

DP提高专项1题解

主要讲一下每一题的做法以及思考方式。 感觉难度薇 \(T1-T3-T2\) 。但是都不算难。 \(T1\) 题目描述 Jimmy 最近迷上了一款叫做方块消除的游戏。游戏规则如下:\(n\) 个带颜色方格排成一列,相同颜色的方块连成一个区域(如果两个相邻方块颜色相同,则这两个方块属于同一区域)。为简化 ......
题解 专项

Luogu CF1174C 题解

这道题其实不难。 \(\gcd(i,j)=1\),其实就是 \(i\) 与 \(j\) 互质。 如果 \(i\) 与 \(j\) 不互质,那么我们一定要让 \(a_i\) 与 \(a_j\) 相同,只有这样,才能使 \(a\) 序列中的最大值最小化。 所以,我们可以使用埃氏筛法,当筛到质数时,给它和 ......
题解 Luogu 1174C 1174 CF

CodeForces 814E An unavoidable detour for home 题解

更好的阅读体验 题意 题目链接 (洛谷翻译) 给出 \(n\) 个点,和每个点的度 \(d_i\) 让你构造出一张无向图满足以下两条性质: 点 \(1\) 到点 \(i\) 仅有 唯一 一条最短路。 点 \(1\) 到点 \(i\) 的最短路长度大于等于点 \(1\) 到点 \(i-1\) 的最短路 ......
题解 unavoidable CodeForces detour 814E

CF400C 题解

这道题其实不难,只是一道非常简单的模拟题。 我们发现,每顺时针转动 \(4\) 次、镜面对称 \(2\) 次、逆时针旋转 \(4\) 次,就变回原来的样子了。 所以,在操作前,我们可以让 \(x\gets x\bmod4\),\(y\gets y\bmod2\),\(z\gets z\bmod4\) ......
题解 400C 400 CF

[题解] CF474E Pillars

题意 给定长度为 \(n\) 的序列 \(a\) 和常数 \(d\),输出一个最长的 \(a\) 的子序列,使得相邻两项的差的绝对值大于等于 \(d\)。 \(n\le10^5\) 题解 数据结构优化 DP 的板子题了吧。 首先,这道题看上去就很 LIS,我们尝试着用类似 LIS 的思路去做。 设 ......
题解 Pillars 474E 474 CF

题解 accoders::NOI 5510【飞翔的胖鸟(fly)】

题解 accoders::NOI 5510【飞翔的胖鸟(fly)】 problem 求 \(f(x)=\frac{ah}{\sin(x)}+bx\) 在 \((0,\frac\pi 2]\) 上的最小值。 solution \(\sin'(x)=cos(x); \cos'(x)=-\sin(x)\) ......
题解 accoders 5510 NOI fly

题解 accoders::NOI 5508【漂亮大厨(cook)】

题解 accoders::NOI 5508【漂亮大厨(cook)】 part 1 区间加 \(x\),区间询问有多少个数字 \(\leq y\)。\(n,m\leq 10^5,x\leq 200,y\leq 10^7\)。 考虑 P5356 [Ynoi2017] 由乃打扑克 的做法,分块,块内按照值 ......
题解 accoders 5508 cook NOI

P9019 [USACO23JAN] Tractor Paths P 题解

Description 有 \(n\) 个区间,第 \(i\) 个区间为 \([l_i,r_i]\)。保证 \(l_1<l_2<\cdots<l_n\) 且 \(r_1<r_2<\cdots<r_n\)。其中一部分区间是特殊的,输入会给定。 如果第 \(i\) 个区间和第 \(j\) 个区间相交,那 ......
题解 Tractor P9019 USACO Paths

题解 P9701【[GDCPC2023] Classic Problem】

题如其名,确实挺经典的。 我们称边权在输入中给定的边为特殊边,其它边为平凡边。称特殊边涉及到的点为特殊点,其它点为平凡点。 显然,对于连续的若干平凡点 \([l,r]\),他们内部的最优连边方式就是连成一条链,花费 \(r-l\) 的代价。我们先把这样的代价加到答案中,然后将极长连续平凡点缩成一个点 ......
题解 Classic Problem P9701 GDCPC

[SHOI2009] 会场预约 题解

LG 任意时刻每个点最多被一条线段覆盖 暴力删每条线段是对的 插入 \([l,r]\) 时需要删除的线段要么被 \([l,r]\) 包含,要么覆盖 \(l\) 或 \(r\) 性质非常强所以做法非常多 一种比较神奇的:对于两条线段 \([l_{1},r_{1}],[l_{2},r_{2}]\),定义 ......
题解 会场 SHOI 2009

题解 accoders::NOI 5511【漂亮轰炸(bomb)】

题解 accoders::NOI 5511【漂亮轰炸(bomb)】 http://47.92.197.167:5283/contest/406/problem/4 BZOJ3252 是弱化版。 problem 一棵树,边带权。\(Q\) 次询问,给定 \(k\) 和一个首都点,选择 \(k\) 条路 ......
题解 accoders 5511 bomb NOI

题解 P9695【[GDCPC2023] Traveling in Cells】

显然,询问的答案即为 \(x\) 所在的极长的满足颜色均在 \(\mathbb{A}\) 内的连续段的权值和。如果我们能维护对颜色的单点修改,以及求出某个位置所在极长连续段的左右端点 \(l,r\),只需要树状数组即可求出答案。 一个朴素的想法是对每种颜色开一棵线段树,单点修改是平凡的,极长连续段左 ......
题解 Traveling P9695 GDCPC Cells

10月杂题题解

CF814E 其实是对这篇 题解 的一些理解。 Part 1 不难发现最终图大致长这样: 考虑一棵最短路树,以结点 1 为根,往下每一层有若干个结点,表示最短路距离相同的一些编号连续的结点。 其中每一层内部可以自由连边。 除了每层内部的连边和树边,其余边不合法。 Part 2 考虑第 \(i\) 层 ......
题解

题解 P9702【[GDCPC2023] Computational Geometry】

这题一看就不是计算几何,考虑区间 DP。 设凸多边形的 \(n\) 个顶点依次为 \(P_1,P_2,\cdots,P_n\)。 设 \(f_{i,j}\) 在 \(i < j\) 时表示 \(P_i,P_{i+1},\cdots,P_{j-1},P_j\) 组成的多边形的直径的平方,在 \(i > ......
题解 Computational Geometry P9702 GDCPC

题解 P9697【[GDCPC2023] Canvas】

好题。 后面的操作会覆盖前面的操作,这东西不好处理,我们不妨时光倒流,将问题转化为一个位置一旦被填了数,就再也不会变了。如果解决了这个问题,只需将操作序列倒过来,就得到了原问题的解。 显然,所有 \(x_i=y_i=2\) 的操作会最先被执行,所有 \(x_i=y_i=1\) 的操作会最后被执行。只 ......
题解 Canvas P9697 GDCPC 9697

高橋君 题解

AtCoder 天下一プログラマーコンテスト2014 本戦 高橋君 题意 给定 \(n, k\),求 \[\sum\limits_{i = 0}^{k}\dbinom{n}{i} \]多测,\(1 \le n, k, T \le 10^5\)。 题解 可以考虑使用莫队求解,下文讲述如何移动指针。 \ ......
题解

[题解]AT_abc234_g [ABC234G] Divide a Sequence

思路 定义 \(dp_i\) 表示将前 \(i\) 个分为若干段的价值总和。容易得到状态转移方程: \[dp_i = \sum_{j = 1}^{i - 1}{dp_j \times (\max_{k = j + 1}^{i}\{a_k\} - \min_{k = j + 1}^{i}\{a_k\} ......
题解 234 Sequence AT_abc Divide