数学
Bug原产地
这个作者很懒,什么都没留下…
展开
-
数学题集
codeforces 1493Dcodeforces 1516D原创 2021-05-24 21:13:04 · 216 阅读 · 0 评论 -
最长树链 ( dfs + 质因数分解 )
题目链接解题报告:我们不妨枚举最长树链 gcdgcdgcd , 那么该条树链上所有的点的权值可表示成 k∗gcdk*gcdk∗gcd 同样也可表示成 k∗gcd′(gcdk*gcd'(gcdk∗gcd′(gcd%gcd′==0)gcd'==0)gcd′==0) ,因此我们可以用质因子对这些点分类。对属于同一类质因子的点跑最长链,不断更新最长链即可。 每个点被访问的次数就是其质因子种类数。代码展示:#include<bits/stdc++.h>#define LL long long原创 2020-09-24 20:15:49 · 326 阅读 · 2 评论 -
HDU 5726 GCD ( 线段树 + map )
题目链接大致题意:给你长度为 nnn 的数列,mmm 次询问,每次询问给定两个数 l,rl,rl,r ,求区间 GCD=gcd(a[l],a[l+1],.....,a[r]),GCD=gcd(a[l],a[l+1],.....,a[r]),GCD=gcd(a[l],a[l+1],.....,a[r]),并给出原数列有多少个区间的 gcd=GCDgcd=GCDgcd=GCD解题报告:求区间gcdgcdgcd有方法:线段树 ,RMQ,ST表该题关键是如何预处理求出所有区间的gcdgcdgcd呢??原创 2020-09-18 15:21:47 · 120 阅读 · 0 评论 -
操作数 (数论 :前n项的前n项和)
题目链接解题报告:这题思维难度较高。#include<bits/stdc++.h>#define LL long long#define pii pair<int,int>#define mem(a,b) memset(a,b,sizeof(a))using namespace std;const int maxn=1e5+5;const int inf=0x3f3f3f3f;const LL MOD=1e9+7;int n,k;LL p[maxn],f原创 2020-06-25 18:29:59 · 172 阅读 · 0 评论 -
Educational Codeforces Round 89 (Rated for Div. 2)D. Two Divisors (GCD)
题目链接大致题意:给你 n 个数,对于每个数a_i,问能否找到它的两个因子(d1,d2)满足:d1>1&&d2>1&&gcd(d1+d2,a_i)==1,否则输出-1。解题报告:gcd的一些基础知识:gcd(x,y)=gcd(x+y,y)=gcd(x-y,y)若gcd(x,y)=1,则有 gcd(x,k*y)=gcd(x,k)若gcd(x,y)=1,则有 gcd(x+y,x*y)=1证明第三点:前提gcd(x,y)=1,gcd(x,y)=gc原创 2020-06-14 21:11:54 · 122 阅读 · 0 评论 -
牛客小白月赛12 D ( 数论 )
题目链接解题报告:不会呀先上别人的题解,日后再补。原创 2020-06-01 17:56:11 · 146 阅读 · 0 评论 -
牛客算法周周练8 C ( 线段树 + 裴蜀定理 )
题目链接解题报告:我们用一颗线段树维护差分数组,同时也维护 区间和 ,区间最大值,区间gcd 。对于操作1:只需让 {l}+x,{r+1}-=x。对于操作2:本身维护的就是差分数组,直接去max。对于操作3:gcd({l}区间和,{l+1,r} 区间gcd)。gcd(a,b)= gcd(a-b,b) =>> gcd(a,b,c,d)=gcd(a,b-a,c-b,d-c);#define first f#define second s#define ll long lo原创 2020-05-29 15:40:02 · 214 阅读 · 0 评论 -
因式分解
因数分解#include<bits/stdc++.h>#define ll long long#define pii pair<int,int>#define mem(a,b) memset(a,b,sizeof(a))using namespace std;const int maxn=1e5+5;int sum_prime=0,cnt;bool is_...原创 2020-04-21 13:37:38 · 133 阅读 · 0 评论 -
Codeforces Round #320 (Div. 2) C. A Problem about Polyline ( 数学 )
题目链接解题报告:考虑一个周期的话,若(a,b)在其上必然满足 x >= b。很明显折线会经过 (a-b,0)(a+b,0)两点,令 c=a±b,y=c/(2*x);ax=c/(2*y)>=b ==>> y<=c/(2*b) ==>> y_max=c/(2*b)向下取整最后去min。#define first f#define ...原创 2020-04-03 11:37:48 · 112 阅读 · 0 评论