UR #3 核聚变反应强度( gcd )】的更多相关文章

题目描述 给出一个长度为 $n$ 的数列 $a$ ,求 $a_1$ 分别与 $a_1...a_n$ 的次大公约数.不存在则输出-1. 输入 第一行一个正整数 $n$ . 第二行 $n$ 个用空格隔开的正整数,第 $i$ 个为 $a_i$ . $n\le 10^5,a_i\le 10^{12}$ 输出 一行 $n$ 个用空格隔开的整数,第 $i$ 个表示 $\text{sgcd}(a_1,a_i)$ . 样例输入 412450 1 2 450 样例输出 6225 -1 1 75 题解 数论 次大公…
次大公约数就是gcd再除以其最小质因子(如果有的话).可以发现要求的sgcd 的前身gcd都是a1的约数,所以把a1质因数分解直接做就行了. #include<bits/stdc++.h> #define ll long long using namespace std; const int maxn=100005; unordered_map<ll,ll> mmp; ll gcd(ll x,ll y){ return y?gcd(y,x%y):x;} int n,c[233],n…
[UOJ#48][UR #3]核聚变反应强度(质因数分解) 题面 UOJ 题解 答案一定是\(gcd\)除掉\(gcd\)的最小质因子. 而\(gcd\)的最小值因子一定是\(a_1\)的质因子. 所以预处理出\(a_1\)的质因子,个数不会超过\(\log(a)\)个,然后就可以直接暴力了. 时间复杂度\(O(n\log(a)+\sqrt a)\) #include<iostream> #include<cstdio> #include<algorithm> usin…
[UR #3]核聚变反应强度 Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://uoj.ac/problem/48 Description 著名核物理专家 Picks 提出了核聚变特征值这一重要概念. 核聚变特征值分别为 x 和 y 的两个原子进行核聚变,能产生数值为 sgcd(x,y) 的核聚变反应强度. 其中, sgcd(x,y) 表示 x 和 y 的次大公约数,即能同时整除 x,y 的正整数中第二大的数.如果次大公约数不存在则说明无法核…
题目大意:给你一串数$a_i$,求$sgcd(a_1,a_i)$,$sgcd(x,y)$表示$x,y$的次大公约数,若没有,则为$-1$ 题解:即求最大公约数的最大约数,把$a_1$分解质因数,求出最大公约数,在判断是否可以被整除就行了 卡点:无 C++ Code: #include <cstdio> #include <vector> #define maxn 100010 std::vector<long long> v; int n, sz; long long…
QUQ 思路 求出a1的所有约数,与a1.ai放入同一数组: 求出gcd(a1,ai): 枚举约数,得出ans; 代码实现 #include<cmath> #include<cstdio> #define LL long long ; int n; LL v[maxn],s[maxn],ans,vs; inline LL gcd(LL x,LL y){return x%y?gcd(y,x%y):y;} int main(){ scanf("%d",&n)…
枚举/二分 C题太神窝看不懂…… 核聚变反应强度 QwQ很容易发现次小的公约数一定是gcd的一个约数,然后……我就傻逼地去每次算出a[1],a[i]的gcd,然后枚举约数……这复杂度……哦呵呵... 正解是先找到a[1]的所有质因数啊……然后在刚刚那个算法的“枚举gcd的约数”的时候直接枚举这些质因数就好了…… //UOJ Round3 A #include<vector> #include<cstdio> #include<cstring> #include<c…
\(\mathcal{Morning}\) \(Task1\)高精度\(\times\)高精度 哦呵呵--真是喜闻乐见啊,我发现这一部分比较有意思于是就打算整理下来233.窝萌现在有一个整数\(A = \sum \limits _{i=0}^{\lfloor log_{10}A \rfloor}{a_i \times 10^i}\) 和另一个整数\(B = \sum \limits _{i=0}^{\lfloor log_{10}B \rfloor}{b_i \times 10^i}\) 那么对…
题目描述 求一个给定的圆$ (x^2+y^2=r^2) $,在圆周上有多少个点的坐标是整数. 输入格式 \(r\) 输出格式 整点个数 输入输出样例 输入 4 输出 4 说明/提示 \(n\le 2000 000 000\) 思路 题目的所求可以转化为 问题的所求可以转化为\(y^{2}=r^2-x^2\)(其中\(x,y,r\)均为正整数). 即\(y^2=(r-x)(r+x)\)(其中\(r,x,y\)均为正整数) 不妨设\((r-x)=d\times u------① (r+x)=d\ti…
#33. [UR #2]树上GCD 有一棵$n$个结点的有根树$T$.结点编号为$1…n$,其中根结点为$1$. 树上每条边的长度为$1$.我们用$d(x,y)$表示结点$x,y$在树上的距离,$LCA(x,y)$表示$x,y$的最近公共祖先(即树中最深的既是$v$的祖先也是$u$的祖先的结点). 对于两个结点$u,v(u≠v)(u≠v)$,令$a=LCA(u,v)$,定义$f(u,v)=gcd(d(u,a),d(v,a))$. 其中$gcd(x,y)$表示$x,y$的最大公约数,特别地,$gc…