![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数学相关---质数与约数
汪
小松萘
厉害的人可真多啊
展开
-
CodeForces - 1333F Kate and imperfection (贪心,GCD)
???? ???? ???? 题意:1到n 的Ii 值定义为:从该数组中选择i个数字,两两之间求gcd的最大值,让这个最大值最小。 因为求的是两个数gcd的最小的最大值,所以我们先尽可能的拿素数,素数拿完以后,再拿一个数,必然有至少一对不互质,所以我们要尽量使答案变小,即小的先拿,最后就可以得到从小到大输出的结论。 int mx[MAXN]; signed main() { int n;cin>&g...原创 2020-04-14 11:31:08 · 242 阅读 · 0 评论 -
CodeForces - 1081E Missing Numbers (平方数,构造)
???????? ???????? ???????? 假设我们已经构造出了前2i - 2项,目前构造第 2i - 1项,而2i项已知,我们新插入的2i-1项要与他们满足如下关系 #define int ll int v[MX]; signed main() { int n;cin>>n; n>>=1; memset(v,-1,sizeof(v)); rpp(i,n) c...原创 2020-04-12 21:33:23 · 182 阅读 · 0 评论 -
CodeForces - 1089F Fractions (同余方程,互质数)
???????? ???????? ???????? 第二个样例给了一点思路 #define int ll inline void solve() { int n;cin>>n; int flag=0; for(int i=2;i*i<=n;++i) { if(flag) break; if(n%i==0&&__gcd(i,n/...原创 2020-03-30 13:50:21 · 183 阅读 · 0 评论 -
CodeForces - 1114C Trailing Loves (or L'oeufs?) (质因子,阶乘分解)
???? ???? ???? 关于阶乘分解 void solve() { ll n, b;cin >> n >> b; //处理出b的所有素因子并记录下次数x,检查该素因子在n!中的幂次y //对所有素因子取一个最小值 vector<pair<ll,ll> > prime; for (ll i = 2; i * i <=...原创 2020-03-06 20:00:15 · 99 阅读 · 0 评论 -
HDU - 4630 No Pain No Game(离线,树状数组)
????♂️ ????♂️ ????♂️ 题意:一个长为n的数组,m次查询,询问(l,r)中两个数字之间GCD(l,r中任意一对,只要GCD最大即可) (1)处理出每个数字的约数,GCD一定是在这个区间中出现两次即以上的最大的那个约数 (2)对于查询按照l排序之后,我们再从后往前更新最大约数,如果这个约数在该位置之后出现过,我们就在他出现的后一个位置更新他(查询时查询r) (3)杭电数据好像有误,如 1 1 ...原创 2020-02-26 10:47:13 · 169 阅读 · 0 评论 -
CodeForces - 1133D Zero Quantity Maximization(精度,GCD)
???? ???? ???? 就是直接拿double会有精度问题,所以我们存下-b/a的最简形式 int a[MAXN],b[MAXN]; map<pair<int,int>,int>mp; int gcd(int x,int y){return (y==0?x:gcd(y,x%y));} void solve() { int n;cin>>n; rpp(i,n)...原创 2020-02-22 16:31:39 · 160 阅读 · 0 评论 -
2020牛客寒假算法基础集训营6 E - 立方数(质因子,思维)
???? ???? ???? 很好玩的一道题 int prime[MAXN],cnt; bool st[MAXN];//为假,是素数 void get_prime(int n) { cnt=0; for(int i = 2; i<= n; ++i) { if(!st[i]) prime[cnt++] = i; for(int j=0;prime[j]*...原创 2020-02-16 15:22:11 · 238 阅读 · 4 评论 -
CodeForces - 1295D Same GCDs (欧拉函数,GCD性质)
???? ???? ???? inline ll eular(ll n) { ll ans=n; for(int i=2; 1ll*i*i<= n; i++) { if(n%i==0) { ans-=ans/i; while(n%i==0) n/=i; } } if(n&...原创 2020-02-13 17:42:31 · 199 阅读 · 2 评论 -
UVa 11256 - Repetitive Multiple(循环节)
???? ???? ???? #define int ll ll gcd(ll a,ll b){return b==0?a : gcd(b,a%b);} char s[111]; int mul[111]; signed main() { mul[0]=1; rpp(i,9) mul[i]=mul[i-1]*10; int T;cin>>T; while(T--) ...原创 2020-02-12 22:05:28 · 107 阅读 · 0 评论 -
AcWing 199. 余数之和 (取模运算,公式化简)
???? ???? ???? signed main() { int n,k; cin>>n>>k; ll ans=1ll*n*k; for(int l =1;l<=n;) { if(k/l==0) break; int r = min((k/(k/l)),n); ans -= 1ll*(k / l) *...原创 2020-02-05 16:24:12 · 374 阅读 · 0 评论 -
AcWing 198. 反素数 (质因子,约数性质)
???? ???? ???? int ps[10] = {2,3,5,7,11,13,17,19,23,29};//前十个素数 int sum = 0,minx,n; void dfs(int u,int pre,int p ,int s)//现在搜到哪个质因子,前一个质因子有多少,计算出的x为多少,约数个数为多少 { if(s>sum||(s==sum && p < mi...原创 2020-02-03 10:44:52 · 181 阅读 · 0 评论 -
AcWing 197. 阶乘分解 (线性筛)
???? ???? ???? signed main() { int n;cin>>n; get_prime(n); rep(i,cnt) { int p = prime[i]; int t = n,c= 0; while(t) { c+=(t/p); t/=...原创 2020-02-02 21:45:39 · 196 阅读 · 0 评论 -
AcWing 196. 质数距离 (线性筛)
???? ???? ???? #define int ll int prime[MAXN],cnt; bool st[MAXN];//为假,是素数 void get_prime(int n) { memset(st,false,sizeof(st)); cnt=0; for(int i = 2; i<= n; ++i) { if(!st[i]) prime[c...原创 2020-02-02 11:11:47 · 152 阅读 · 0 评论