gcd 12716 uva
花式求GCD
title: 花式求GCD banner_img: https://cdn.studyinglover.com/pic/2023/08/a5e39db5abf0853e6c456728df8bd971.jpg date: 2023-8-2 18:46:00 tags: - 算法 花式求GCD 今天学 ......
Sumsets(UVA10125)整数集合
备课的时候发现了这道题,对于初识哈希来说并不算一道很简单的题。在查阅林厚从老师的示例代码与往届OI选手的博客后,大致理解了本题的思路。 相关标签: Hash 跳转至本题 Description 给定一个整数集合S,求一个最大的d,满足a+b+c=d,其中a,b,c,d∈S Input 多组数据,每组 ......
Mother bear [UVA10945]
蒟蒻的首篇题解——Mother bear 题目大意:一只笨熊只可以理解回文的句子,要你判断句子去掉标点符号、空格后是否回文。 思路: 1、利用 getline() 读入整行字符串,并且处理成只有小写/大写字母和数字的字符串。(样例处理结果对照详见①~②分割线内) 2、读取到一半必定会出现倒着的(针对 ......
AtCoder Regular Contest 144 E GCD of Path Weights
洛谷传送门 AtCoder 传送门 喵喵题。 考虑若所有点权都已确定,如何求 \(1\) 到 \(n\) 所有路径权值和的 \(\gcd\)。 考虑如何 check 一个 \(x\) 是否合法。\(x\) 合法的充要条件是,把不能从 \(1\) 到达的点和不能到达 \(n\) 的点扔掉后,存在一组 ......
UVA1396 Most Distant Point from the Sea 题解
Link UVA1396 Most Distant Point from the Sea Question 在大海的中央,有一个凸 \(n\) 边形的小岛,求出岛上离海边最远的一个点到海边的距离 Solution 二分答案,然后去验证是否有一个点,距离海的距离大于 \(mid\) 如何验证? 把每条 ......
ARC144E GCD of Path Weights
Description 给定 \(n\) 个点,\(m\) 条边的有向图,图中的任意一条有向边满足 边起点的编号小于边终点的编号。每个点有点权,但其中有些点的点权未知。 你需要找到一种给未知点权值的方案,使得 所有 \(1\to n\) 的路径点权和的最大公因数最大,或者告知答案可以无限大。输出这个 ......
【区间 dp】UVA1331 最大面积最小的三角剖分 Minimax Triangulation 题解
UVA1331 区间 dp。 有一个很经典的问题:给定一个凸多边形,求它的最优三角剖分,对每个三角形规定一个权函数 \(f(i,j,k)\),求所有剖分方案中最大的权值。 发现这个东西不好直接入手。但是这个东西与矩阵最优链乘是相似的。考虑区间 dp。因为随意的转移是难以维护的,维护区间信息就等于强制 ......
UVA11526 H(n)
题意 求 \(\sum_{i = 1}^{n} \lfloor \frac{n}{i} \rfloor\) Sol 整除分块。 考虑 \(1 \to n\) 里面固然有很多算重的。 考虑去掉重复计算的东西,不难发现一个块内最大的数显然为 \(\lfloor \frac{n}{\lfloor \fra ......
牛客小白月赛81 F 小辰刚学gcd
LInk 首先我们可以注意到,两个数的gcd要不是它们当中较小的那一个要不是它本身。 所以对于一个特定的 \(r\),\(gcd_{i=p}^r,1<=p<=r\)来说,答案不会超过32种。 并且因为gcd的性质,答案一定是成块且递减的。 所以我们可以直接记录下对于每一个\(r\),答案都有哪些,从 ......
UVA10652 Board Wrapping 题解
Link UVA10652 Board Wrapping Question 给出 \(N\) 个矩形,求面积最小的凸多边形能包住所有矩形 求 矩形面积占凸多边形面积的百分比 Solution 把矩形的四个顶点拿出来,就可以转化成凸包裸题了 Code #include<bits/stdc++.h> u ......
UVA 11178 Morley's Theorem 题解
计算几何 Link UVA 11178 Morley's Theorem Question Morley 定理是这样的,作三角形 ABC 每个内角的三等分线,相交成三角形 DEF,则 DEF 是等边三角形 给出 \(A,B,C\) 坐标,求 \(D,E,F\) 坐标 Solution 其实是一道计算 ......
gcd 的性质及其证明
引言 gcd 有目前几条性质: \(a \cdot b = lcm(a,b) \cdot gcd(a,b)\) \(gcd(a,b) = gcd(b,a-b)\) \(gcd(a,b) = gcd(b,a+b)\) \(gcd(a,b) = gcd(b,a \% b)\) 性质1 \(a \cdot ......
UVA11282 题解
题意简述 Kelly 寄出去 \(n\) 封邀请函,但她希望只有小于等于 \(m\) 个人收到他们自己的邀请函(即有至少 \(n-m\) 个人收到了别人的邀请函)。 思路形成 容易发现,这道题是一个典型的错排题,我们只需要分别求出 \(n-m\) 个元素到 \(n\) 个元素的错排即可。 接下来为错 ......
GCD Inside: GCD 数据结构
1 OS_object OS_object由下面宏OS_OBJECT_DEC_BASE扩展而来: // 1. os/object.h OS_OBJECT_DECL_BASE(object, NSObject); // 2. os/object.h #define OS_OBJECT_DECL_BAS ......
GCD Inside: GCD 宏
1 __OBJC__ __OBJC__宏的定义在 GCD 源码中找不到,它定义在 LLVM 的源码中: // initPreprocessor.cpp static void InitializeStandardPredefinedMacros(const TargetInfo &TI, const ......
UVA1223 Editor
题目传送门 给出一个字符串 \(s\),求它最长的至少出现两次的子串的长度。 多组数据,\(|s|\le 5000\)。 不难发现答案有单调性,考虑对字符串哈希并二分,从左往右扫,用哈希表记录当前该长度每种哈希值是否出现过,出现过则可行。 时间复杂度为 \(\mathcal{O}(\sum |s|\ ......
UVA1328题解
前情提要 本题解重在使大家理解。 本题需要 KMP,相信阅读本篇的大佬都会吧。 没学过也没关系,点这里。这是一篇我喜欢的讲解,不喜勿喷。 分析 看见本题的第一感就是会与 KMP 中的 $next$ 数组有关。 我们通过下面证明可以得出:满足 $i \bmod len = 0$,且 $S[1 \sim ......
(EX)GCD
(EX)GCD 1、给定两正整数m,n 2、选取其中较小的数,假定为m 3、若n%m非0,即存在余数,将n和m中较大的数n替换为余数,返回步骤2 4、若n%m为0,则最大公约数为m #include <stdio.h> int main() { int data1, data2; int data; ......
UVA1485 Permutation Counting
传送门 description 一个长度为 \(n\) 的排列 \(a\),其权值为满足 \(a_i>i\) 的位置的数量。 求权值恰为 \(k\) 的长度为 \(n\) 的排列的方案数。 \(n,k\leq 1000\) solution 设 \(f_{i,j}\) 表示考虑前 \(i\) 个数, ......
[UVA12683] Odd and Even Zeroes
Description 给出 \(n\),求出 \(0!, 1!, 2! \ldots, n!\) 中有几个末尾有偶数个 \(0\)。 \(1\le n\le 10^{18}\)。 Solution 根据基本结论,一个数末尾 \(0\) 的个数等于该数有几个因数 \(5\)。而一个数的阶乘末尾有几个 ......
ARC126C - Maximize GCD(取模转化减法)
答案大于max{ai}可以直接计算 主要考虑小于的情况 直接计算gcd很困难,不妨枚举x|gcd 那么对于ai来说 假设 x(k-1)<ai<=xk,那么 ai就需要xk-ai次操作,那么我们对于一个x,只需枚举k计算区间数的个数即可算出需要的操作数。 复杂度O(nlnn) 这种套路就是取模转化成减 ......
题解 UVA437
题解 UVA437 每种方块都可以将 \(x\times y,x\times z,y\times z\) 的面放在水平面上,所以每块都有 \(3\) 种状态,每次从剩余所有 \(n-1\) 个块的 \(3\) 种状态中选取能放置在此方块上方的方块,(即选取水平面矩形对应的边小于当前水平面边权),并且 ......
洛谷 P2568 GCD
题意:给定 \(n\) 求 \(\displaystyle{\sum_{i=1}^n{\sum_{j=1}^n{\left[(i,j)\in prime\right]}}}\) 其中 \(prime\) 为素数集合。 \(n < 10^7\) 解:原式等于 \[\displaystyle{\sum_ ......
救济金发放(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 ......
UVA12046 题解
前言: 有些虚高,建议降蓝。感觉比 CF55D 要简单。 题目大意: 定义一个数为好数,满足以下要求: 每个数位都能整除原数。 每个数位都小于等于 \(6\)。 求长度为 \(n\) 的好数有多少个。 思路: 首先,\(0\) 整除任何数都没有意义,可以不枚举。其次,要满足条件二,所以每个数位可以只 ......
UVA1366 Martian Mining 题解
这个题可以用动态规划解决。 令\(sbe_{i,j}\) 为第 \(j\) 列 \(1\) 至 \(i\) 个格子 \(BE\) 矿总和,令\(snw_{i,j}\) 为第 \(i\) 行 \(1\) 至 \(j\) 个格子 \(NEW\) 矿总和。 \(dp_{i,j,0}\) 表示为以第(\(i ......
【位运算】UVA12716 GCD等于XOR GCD XOR 题解
UVA12716 一道挺有意思的位运算的题。 \(\gcd(a,b)\) 与 \(a\oplus b\) 本来是没有什么联系的,也不好直接转化。 那么就需要一个中间数进行转化,一般来说会是一个临界值,否则不好找答案。 先观察 \(\gcd(a,b),a\leqslant b\),可得 \(\gcd( ......
Madoka and The Best University (cf E)( 枚举一个其中一个元素,欧拉函数,gcd)
#include<iostream> #include<cstring> using namespace std; const int Maxn=1e7; int phi[Maxn];//记录数的约数个数(欧拉函数) bool vis[Maxn];//记录数字是否访问 int prime[Maxn] ......
UVA1471 防线 Defense Lines 题解
传送门 首先可以将题意大概可以简化为:取两端不重复的连续子序列,组成一个最长的连续递增子序列。 我们先 dp 预处理出以 \(i\) 为结尾的连续递增子序列长度 \(dpr_{i}\)。 同样预处理出以 \(i\) 为开头的连续递增子序列长度 \(dpl_{i}\)。 考虑对于每个 \(dpr_{i ......