gcd 12716 uva
UVA11380 题解
题意 一个 \(n\times m\) 的区域内,有以下 \(5\) 种地形: ~:无法通行。 .:只能通行 \(1\) 次。 @:可以通行 \(+\infty\) 次。 *:初始有一个人的 .。 #:安全位置,可以通行 \(+\infty\) 次,但至多能容纳 \(p\) 个人。 人每次可以走到相 ......
UVA12125 题解
题意 二维平面内有 \(n\) 个冰块,给出冰块的坐标,冰块上的企鹅数和最大跳出次数,企鹅可以在冰块间跳跃,每次跳跃的距离不能超过 \(d\),问哪些冰块可以让所有企鹅跳到上面? 思路 网络流,由于每个冰块有跳出次数限制,所以把一个冰块拆成入点和出点,入点向出点连一条流量为最大跳出次数的边,由源点向 ......
UVA11380 题解
题意 一个 \(n\times m\) 的区域内,有以下 \(5\) 种地形: ~:无法通行。 .:只能通行 \(1\) 次。 @:可以通行 \(+\infty\) 次。 *:初始有一个人的 .。 #:安全位置,可以通行 \(+\infty\) 次,但至多能容纳 \(p\) 个人。 人每次可以走到相 ......
UVA12125 题解
题意 二维平面内有 \(n\) 个冰块,给出冰块的坐标,冰块上的企鹅数和最大跳出次数,企鹅可以在冰块间跳跃,每次跳跃的距离不能超过 \(d\),问哪些冰块可以让所有企鹅跳到上面? 思路 网络流,由于每个冰块有跳出次数限制,所以把一个冰块拆成入点和出点,入点向出点连一条流量为最大跳出次数的边,由源点向 ......
UVA13023 Text Processor
洛谷传送门 区间本质不同子串个数。 考虑类比区间数颜色。扫描线扫询问的 \(r = i\),然后对于一个 \(i\) 的后缀 \(S[j : i]\),我们把它上一次出现时的左端点位置 \(-1\),现在的左端点位置(即 \(j\))\(+1\)。那么查询就是 \([l, r]\) 的区间和。 考虑 ......
UVA12170 轻松爬山 Easy Climb 题解
UVA12170 7 月份的题了,补一补。场上写挂了一点还是很遗憾的。 容易想到 dp。 但是由于值域非常大,直接 dp 是不行的。但是 \(n\) 非常小,容易想到离散化。 但是离散化后是不能直接加减的。有用的数值初看是有 \(\mathcal{O}(n^2d)\) 的,即 \(h_i + kd( ......
UVA10364 题解
题意简述 给定 \(n\) 根木棍,第 \(i\) 根的长度为 \(a_{i}\),求能否使用全部木棍拼成一个正方形。 题目分析 这道题和 P1120 很像,都考察了对于 DFS 的剪枝优化。 具体地,我们有以下几个剪枝策略 计算出每根木棍的长度之和,记为 \(sum\),若 \(sum \bmod ......
CF1806F GCD Master 题解
题目链接 Easy version Hard version 题目解法 参考 DeaphetS 的题解 很有意思的题,感觉 \(F1\) 不到 \(*2900\),\(F2\) 超过 \(*2900\) F1 简化题目中的操作:把 \(n\) 个数放到 \(n-k\) 组中,求 \(\max(\su ......
天平 Not so Mobile uva839
原题链接 一道需要把题目理解透彻的题目。一开始,我也是对题目大意似懂非懂。 这里有一个注意点:当父天平一端的子天平平衡时,该父天平一端的weight应该为子天平重量(这将影响父天平平衡的比较!!) 其次,这道题目虽然是树的题目,但并不需要去构建数的结构,这也提醒我们,一道数据结构题目并不一定一定要用 ......
CF1900D Small GCD 题解
原题链接:CF1900D,题意不多赘述。 首先可以将 \(a\) 数组排序,并且枚举中间的那个数 \(a_i\)。那么答案就是 \(\sum_{j=1}^{i-1} \gcd(a_j,a_i)\times (n-i)\)。重点在于求前面的 \(\gcd\)。可以用欧拉反演,但是也可以不用,因为我不会 ......
树 Tree uva548
原题链接 高中信息题就有给你中序遍历和后序遍历让你求前序遍历的题目。这道题就是根据这两个遍历创建出对应的树,然后根据DFS(深度优先搜索)去求出最小路径。 主要代码: #include<bits/stdc++.h> using namespace std; const int Max=10000+1 ......
树的层次遍历 Trees on the level uva122
原题链接 这道题可以说基本涵盖了树的大部分知识点——树的创建,树的生成,树的删除,树的BFS(宽度优先搜索)。个人认为是学习树时很具有价值的一道题目。 题目意思很好理解,讨论区的题解写的也比本人优秀太多了,这里就不具体分析了。 ......
小球下落 Dropping Balls (uva679)
原题链接:小球下落 Dropping Balls - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 刚开始学习数据结构中的树。看到这题时第一想法肯定时暴力模拟,由于题目条件给出 1<I<600000,所以最大运算量约为20*6e5=1.2e6.好像也能解(这里就不给出代码了)。 但是 ......
CF1900D Small GCD
Link 这是一个需要欧拉反演的题目 首先,可以知道只和数字之间的大小有关,数列的顺序无关,那么就可以首先排一个序方便解决该问题。 根据欧拉函数的性质,知道\(n=\sum_{d|n}\phi{(n)}\) 那么我们每次先确定中间的数\(a_j\),然后根据公式,得他它得贡献是\(\sum_{i=1 ......
UVA1658 Admiral 题解
Link UVA1658 Admiral Question 给出一个图,找出 \(1 \sim n\) 的两条,使得路径和最小 Solution 可以把点拆开,把除了 \(1\) 和 \(n\) 的点 \(i\) ,拆成 \(i\) 和 \(i'\) ,\(i\) 到 \(i'\) 连一条费用为 \ ......
uva10391 复合词 Compound Words
原题链接 复合词 Compound Words - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 这道题我的第一想法是二重循环遍历所有组合,但结合120000的数据量知晓此方法肯定超时。 那么解法二:先用map存储所有的单词,再遍历所有的单词(假如为S),对S进行分解得到Sa和Sb, ......
uva400 Unix Is命令 Unix ls
原题链接:Unix Is命令 Unix ls - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 一道格式略微复杂的题目。 首先是注意点: 1、关于列的个数,已知一行共有60个字符,最右边一列有M个字符,其余列有M+2个字符。则列数为(60-M)/(M+2)+1,接着行数也就易得。 2 ......
无序对的$gcd$
\(N\)为上确界,\(n\)为\(a\)数组元素个数,\(D\)为约数个数。 方法一 \(1.\)求出\(d\),\(d[i]\)表示\(i\)的所有约数(有序)。 时间复杂度:\(O(NlogN)\) vector<int> d[N + 1]; for (int i = 1; i <= N; i ......
UVA1395 Slim Span 题解
Link UVA1395 Slim Span Question 求所有生成树中最大边权与最小边权差最小的,输出他们的差值 Solution 因为 \(n \le 100\) 非常小,先把边从小到大排序,那么生成树的边肯定是排序后上的边连续的一块 所以,可以枚举连续一块的起点 \(L\),\(R\) ......
UVA753 A Plug for UNIX 题解
Link UVA753 A Plug for UNIX Question 有 \(n\) 个插座,\(m\) 个设备和 \(k\) 种转换器,每种转换器有无限多个。转换器可以插着转换器用,每个插座或插头的类型可能不同,求最少剩多少个不匹配的设备 Sulotion 先考虑转换器连用的情况,用边表 \( ......
uva101The Blocks Problem
原题链接The Blocks Problem - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 一道模拟题。(水题) 但模拟过程很有意思,怎么样才能用最短的代码完成所有操作,使代码更简洁是很考验技术的。 #include<bits/stdc++.h> using namespace ......
uva12096集合栈计算机 The SetStack Computer
洛谷链接集合栈计算机 The SetStack Computer - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 一道典型的以栈为背景的数据结构题。题目简单但是程序却并不简单(个人观点)。普及组的难度有点低了感觉。 个人认为这道题目可以帮助自己熟悉或者说更好的掌握STL的使用以及妙 ......
CodeForces 1900D Small GCD
洛谷传送门 CF 传送门 不是很懂官方题解在干嘛。 设 \(g_x\) 为满足 \(x \mid \gcd(a_i, a_j, a_k)\) 且 \(i, j, k\) 两两不同的所有无序三元组的 \(f(a_i, a_j, a_k)\) 之和。则很容易容斥求出 \(h_x\) 为 \(x = \g ......
uva253骰子涂色
首先,两个骰子等价意味着每个对立面都一一对应。 原题链接:骰子涂色 Cube painting - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 这里我采用了map<pair<char,char>,int>的方法。我感觉相交于题解的桶记录更加的巧妙(骚),而且代码也简洁了一点。 主要 ......
CF1900D - Small GCD 题解
1900D - Small GCD 给定序列 \(A\),定义 \(f(a, b, c)\) 为 \(a, b, c\) 中最小的次小的数的 \(\gcd\),求: \[\sum_{i = 1}^n \sum_{j = i + 1}^n \sum_{k = j + 1}^n f(a_i, a_j, ......
刷题:容斥原理 最大公约数gcd
2023.11.28 cf上的1900D 容斥原理 先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后再把计数时重复计算的数目排斥出去,使得计算的结果既无遗漏又无重复,这种计数的方法称为容斥原理。 本题思路 由本题数据不难看出暴力枚举肯定超时。 先对数组排序,再在其中找出gcd值为 ......
Codeforces Round 911 (Div. 2) D. Small GCD
题目链接:https://codeforces.com/contest/1900/problem/D 对于已经排序好的数组 \(a\),我们需要计算: \[\sum_{i=1}^n\sum_{j=i+1}^n gcd(a_i, a_j) * (n - j) \]由于 \(\sum_{d|n} \ph ......
UVA11275 3D Triangles 题解
Link UVA11275 3D Triangles Question 给你三维空间中的两个三角形,请判断它们是否有公共点。 Solution 如果在三维空间中相交,那么,肯定有一个三角形的某一条边穿过了另外一个三角形 Code #include<bits/stdc++.h> using names ......
CF1900 D Small GCD 题解
Link CF1900 D Small GCD Question 定义 \(f(x,y,z)=\gcd(a,b)\) ,其中 \(a,b\) 为 \(x,y,z\) 中较小的那两个数 给出数组 \(a\),求 \[\sum\limits_{i=1}^n \sum\limits_{j=i+1}^n \ ......
D. Small GCD
D. Small GCD Let $a$, $b$, and $c$ be integers. We define function $f(a, b, c)$ as follows: Order the numbers $a$, $b$, $c$ in such a way that $a \le ......