divisors 294 uva

UVA1396 Most Distant Point from the Sea 题解

Link UVA1396 Most Distant Point from the Sea Question 在大海的中央,有一个凸 \(n\) 边形的小岛,求出岛上离海边最远的一个点到海边的距离 Solution 二分答案,然后去验证是否有一个点,距离海的距离大于 \(mid\) 如何验证? 把每条 ......
题解 Distant Point 1396 Most

【区间 dp】UVA1331 最大面积最小的三角剖分 Minimax Triangulation 题解

UVA1331 区间 dp。 有一个很经典的问题:给定一个凸多边形,求它的最优三角剖分,对每个三角形规定一个权函数 \(f(i,j,k)\),求所有剖分方案中最大的权值。 发现这个东西不好直接入手。但是这个东西与矩阵最优链乘是相似的。考虑区间 dp。因为随意的转移是难以维护的,维护区间信息就等于强制 ......
题解 区间 Triangulation 面积 Minimax

UVA11526 H(n)

题意 求 \(\sum_{i = 1}^{n} \lfloor \frac{n}{i} \rfloor\) Sol 整除分块。 考虑 \(1 \to n\) 里面固然有很多算重的。 考虑去掉重复计算的东西,不难发现一个块内最大的数显然为 \(\lfloor \frac{n}{\lfloor \fra ......
11526 UVA

UVA10652 Board Wrapping 题解

Link UVA10652 Board Wrapping Question 给出 \(N\) 个矩形,求面积最小的凸多边形能包住所有矩形 求 矩形面积占凸多边形面积的百分比 Solution 把矩形的四个顶点拿出来,就可以转化成凸包裸题了 Code #include<bits/stdc++.h> u ......
题解 Wrapping 10652 Board UVA

cf1864C. Divisor Chain

https://codeforces.com/contest/1864/problem/C 思维越来越僵化了 假如\(n=2^k\),直接每次/2就行。 否则,我们可以考虑如何转化成上面的情况 令\(n=2^k x\),那么我们显然可以转移到\(n=2^k (x-1)\),因为x是奇数,所以2的次幂 ......
Divisor Chain 1864 cf

UVA 11178 Morley's Theorem 题解

计算几何 Link UVA 11178 Morley's Theorem Question Morley 定理是这样的,作三角形 ABC 每个内角的三等分线,相交成三角形 DEF,则 DEF 是等边三角形 给出 \(A,B,C\) 坐标,求 \(D,E,F\) 坐标 Solution 其实是一道计算 ......
题解 Theorem Morley 11178 UVA

UVA11282 题解

题意简述 Kelly 寄出去 \(n\) 封邀请函,但她希望只有小于等于 \(m\) 个人收到他们自己的邀请函(即有至少 \(n-m\) 个人收到了别人的邀请函)。 思路形成 容易发现,这道题是一个典型的错排题,我们只需要分别求出 \(n-m\) 个元素到 \(n\) 个元素的错排即可。 接下来为错 ......
题解 11282 UVA

UVA1223 Editor

题目传送门 给出一个字符串 \(s\),求它最长的至少出现两次的子串的长度。 多组数据,\(|s|\le 5000\)。 不难发现答案有单调性,考虑对字符串哈希并二分,从左往右扫,用哈希表记录当前该长度每种哈希值是否出现过,出现过则可行。 时间复杂度为 \(\mathcal{O}(\sum |s|\ ......
Editor 1223 UVA

UVA1328题解

前情提要 本题解重在使大家理解。 本题需要 KMP,相信阅读本篇的大佬都会吧。 没学过也没关系,点这里。这是一篇我喜欢的讲解,不喜勿喷。 分析 看见本题的第一感就是会与 KMP 中的 $next$ 数组有关。 我们通过下面证明可以得出:满足 $i \bmod len = 0$,且 $S[1 \sim ......
题解 1328 UVA

UVA1485 Permutation Counting

传送门 description 一个长度为 \(n\) 的排列 \(a\),其权值为满足 \(a_i>i\) 的位置的数量。 求权值恰为 \(k\) 的长度为 \(n\) 的排列的方案数。 \(n,k\leq 1000\) solution 设 \(f_{i,j}\) 表示考虑前 \(i\) 个数, ......
Permutation Counting 1485 UVA

[UVA12683] Odd and Even Zeroes

Description 给出 \(n\),求出 \(0!, 1!, 2! \ldots, n!\) 中有几个末尾有偶数个 \(0\)。 \(1\le n\le 10^{18}\)。 Solution 根据基本结论,一个数末尾 \(0\) 的个数等于该数有几个因数 \(5\)。而一个数的阶乘末尾有几个 ......
Zeroes 12683 Even UVA Odd

题解 UVA437

题解 UVA437 每种方块都可以将 \(x\times y,x\times z,y\times z\) 的面放在水平面上,所以每块都有 \(3\) 种状态,每次从剩余所有 \(n-1\) 个块的 \(3\) 种状态中选取能放置在此方块上方的方块,(即选取水平面矩形对应的边小于当前水平面边权),并且 ......
题解 UVA 437

救济金发放(The Dole Queue, UVa 133)

#include<stdio.h> #include<string.h> #define maxn 100 int n,k,m,a[25]; int left, chance; int win, lose; char s[maxn], s2[maxn]; int go(int p, int d, i ......
救济金 Queue Dole The 133

AtCoder Regular Contest 167——B - Product of Divisors

题目很明显,给定 所有因数的积不断除以最多能除几次。 首先,很容易发现,对于每一对因子,都可以对答案得出B的贡献,设A的因子数目为n。 将A进行质因数分解,PBa1,PBa2,PBa3……PBam,那么因数个数就是质因子加一的乘积。 那么因子对数也就是前者一半。答案就是B乘因子对数除以二注意此处除操 ......
Divisors AtCoder Regular Contest Product

Codeforces Round 697 (Div. 3) A. Odd Divisor

给定一个正整数 \(n\) ,询问是否存在一个 \(> 1\) 的奇数因子。 在唯一分解定理下观察 \(n\) ,发现若存在除 \(2\) 以外的质因子,则 \(n\) 存在 \(> 1\) 的奇数因子。 换句话说 \(n\) 不是二次幂形式则存在 \(> 1\) 的奇数因子。 view #incl ......
Codeforces Divisor Round 697 Div

UVA12046 题解

前言: 有些虚高,建议降蓝。感觉比 CF55D 要简单。 题目大意: 定义一个数为好数,满足以下要求: 每个数位都能整除原数。 每个数位都小于等于 \(6\)。 求长度为 \(n\) 的好数有多少个。 思路: 首先,\(0\) 整除任何数都没有意义,可以不枚举。其次,要满足条件二,所以每个数位可以只 ......
题解 12046 UVA

UVA1366 Martian Mining 题解

这个题可以用动态规划解决。 令\(sbe_{i,j}\) 为第 \(j\) 列 \(1\) 至 \(i\) 个格子 \(BE\) 矿总和,令\(snw_{i,j}\) 为第 \(i\) 行 \(1\) 至 \(j\) 个格子 \(NEW\) 矿总和。 \(dp_{i,j,0}\) 表示为以第(\(i ......
题解 Martian Mining 1366 UVA

Codeforces Round 697 (Div. 3) A. Odd Divisor

给一个正整数 \(n\) ,判断 \(n\) 是否存在一个 \(> 1\) 的奇数因子。 只要 \(n\) 的唯一分解下存在除 \(2\) 以外的质因子,则 \(n\) 存在 \(>1\) 的奇数因子。 于是 \(n \neq lowbit(n)\) 则 \(n\) 存在奇数因子。(应用了 \(2^ ......
Codeforces Divisor Round 697 Div

题解 - CF1972E - Divisors and Table

这题正解是虚树,本解法卡常,仅适合不会虚树的。(例如本人) 注意:下文中根节点深度定义为 1 . 第一步: 转化问题 我们把 $ g(x,y,z) $ 拆开,考虑每个质数是哪些点的因子。 包含这个质数的点构成一个点集,我们只需求这个点集 S 的 $ \sum\limits_{x,y,z\in S } ......
题解 Divisors 1972E Table 1972

【位运算】UVA12716 GCD等于XOR GCD XOR 题解

UVA12716 一道挺有意思的位运算的题。 \(\gcd(a,b)\) 与 \(a\oplus b\) 本来是没有什么联系的,也不好直接转化。 那么就需要一个中间数进行转化,一般来说会是一个临界值,否则不好找答案。 先观察 \(\gcd(a,b),a\leqslant b\),可得 \(\gcd( ......
题解 GCD XOR 12716 UVA

UVA1471 防线 Defense Lines 题解

传送门 首先可以将题意大概可以简化为:取两端不重复的连续子序列,组成一个最长的连续递增子序列。 我们先 dp 预处理出以 \(i\) 为结尾的连续递增子序列长度 \(dpr_{i}\)。 同样预处理出以 \(i\) 为开头的连续递增子序列长度 \(dpl_{i}\)。 考虑对于每个 \(dpr_{i ......
题解 防线 Defense Lines 1471

UVA10054 The Necklace 题解

好可恶一道题,怎么没人告诉我输出之间有空行( 思路是先抽象成图,然后跑一边dfs记录边的前后顺序。 对于不能成环的情况,只需要再开个数组记录度数判断奇点即可。 若存在奇点则break掉,剩下的跑dfs、 //produced by miya555 //stupid mistakes:1.多测要清空 ......
题解 Necklace 10054 UVA The

UVA12655 Trucks 题解

题目传送门 前言 中文题目可以看 link 。 前置知识 Kruskal 重构树 | 最近公共祖先 简化题意 给定一个 \(N\) 个点 \(M\) 条边的有向图,共有 \(S\) 次询问,每次询问从 \(L\) 到 \(H\) 所有的路径中最小的权值的最大值(多组数据)。 本题即最大瓶颈路问题。 ......
题解 Trucks 12655 UVA

题解 CF1257G【Divisor Set】

problem 我们说一个集合 \(D\) 是一个好的集合,当不存在集合中的两个不同元素 \(a,b\) 使得 \(a\) 是 \(b\) 的约数。 给定一个超大整数的素数表示形式 \(N = \prod_{i=1}^n{p_i}\),要求从它的所有因子中选择尽可能多的元素组成一个好的集合。 问这个 ......
题解 Divisor 1257G 1257 Set

题解 UVA1537 Picnic Planning

这道题在显然是最小生成树,但是很显然我是不会打最小生成树的。 题意描述 给定一张 \(n\) 个点 \(m\) 条边的无向图,求出无向图的一棵最小生成树,满足一号节点的度数不超过给定的整数 \(s\)。 具体思路 首先,看到这种度数最多为 \(s\) 的题,显然想到 wqs 二分。但是 wqs 二分 ......
题解 Planning Picnic 1537 UVA

acwing 294 计算重复

原题 首先\(conn(conn(s_2,n_2),m) = conn(s_2,n_2 \times m)\),因此我们可以找一个最大的\(m'\)满足\(conn(s_2, m')\)能由\(conn(s_1, n1)\)生成,然后再通过\(m = \lfloor \frac{m'}{n_2} \ ......
acwing 294

题解 UVA1566 John

题目描述 两个人轮流取石子,每人每次可以 \([1,a_i]\) 个石子,最后取完石子的人为负。问最终谁会赢。 具体思路 若堆数为 \(1\) 且该堆数量为 \(1\),先手必败。 若堆数不为 \(1\) 且每堆数量都为 \(1\),若有奇数堆,先手比败,否则,先手必胜。 若堆数不为 \(1\),转 ......
题解 1566 John UVA

洛谷 UVA10714 Ants の 题解

这道题只有一个点比较难想。 大概思路就是先输入个 $t$,表示要跑几轮,后面的照常输入。因为蚂蚁都是一样的,所以两个蚂蚁碰面的时候相互穿过和各自掉头是没有区别的,我们按照前者模拟就好,其余思路暴力求解即可。 #include <iostream> #include <cmath> using nam ......
题解 10714 Ants UVA

洛谷 UVA10852 Less Prime の 题解

这道题更像是结论题,因为他要推一个小结论,才能做出这道题。 大概思路是先打个素数表,存到数组 $a$ 内, $cnt$ 是素数表的最后一个元素的下标。之后循环 $M$ 次去输入 $N$,每次输入 $N$ 之前都要定义两个变量,分别是 $mx$,存 $n - p \cdot x$ 的最大值,$ans$ ......
题解 10852 Prime Less UVA

Sol.UVA10127

题意:给定 \(n\),找到形如 \(1111...1111\) 的数 \(y\),使得 \(y \equiv 1\mod x\),最终输出 \(y\) 的位数。 思路:形如 \(1111...1111\) 的数可以拆分成 \(10...00 \times 1 +10...0 \times 1 + ......
10127 Sol UVA