首页 > GCD
头像 HoshiuZ
发表于 2020-10-21 09:52:44
链接 GCD 思路 显然,除了素数的整数次幂,其余的数的 值均为 。对于一个素数 ,则有 。于是可以考虑在线性筛素数的过程中预处理出 ,这很好预处理,线性筛中记录下每个数 的最小质因数 ,然后对有大于一个质因子的数打上标记。时间复杂度为 。 代码 #include<bits/s 展开全文
头像 javaw
发表于 2020-10-21 16:25:43
原题链接 看到题目的数据,我首先想到了状压dp但是这道题并没有那么复杂假设我们加入一个数字7(111), 包含的数字有110,011,101,100.....显然这些答案都小于原数字,这就是无后向性。但是如果将每一个数字所包含的所有数字都进行标记,会有很多重复转移(111会标记011和001,而01 展开全文
头像 Indra
发表于 2020-10-20 22:11:09
通过化简易知道,题目要求是否中的一个元素,使得为的子集 每次读入时,将的每个子集暴力加入桶中,之后地判断 显然,这样的时间复杂度为 所以我们在的时候进行剪枝,因为当桶中存在值时的子集也存在桶中,此时可以 时间复杂度为 #include<bits/stdc++.h> using names 展开全文
头像 杨希妍
发表于 2020-10-21 07:24:23
对于x质因数分解,如果只有一种质因子a,那x对答案的贡献即为a,否则为1 于是仿O(n log n)筛质数的方法,稍作修改就A了? code: #include<iostream> #include<cstdio> using namespace std; typedef l 展开全文
头像 wzkdh
发表于 2020-10-21 14:23:37
题意: 求一个数 x 除 1 外所有因子的 gcd。 分析: 此题我们可以对数进行分类讨论:一:如果一个数是质数,那么它除1以外的因数就只有他本身,此时因子的gcd也就等于他本身。二:如果一个数是合数,那么他又可以分成两种情况:1.如果他是一个质数的次方数,那么他的除1之外的因子就只有那个质数和他本 展开全文
头像 あおいSakura
发表于 2020-11-11 21:55:42
题目链接:https://ac.nowcoder.com/acm/problem/211962 到主站看:https://blog.csdn.net/weixin_43346722/article/details/109631931 题目 我们定义 除 之外的所有因子 即 除 外所有因子的 展开全文
头像 Fortnight07
发表于 2020-10-23 22:36:54
没思路的话可以先打个表,就能发现:如果 为素数,如果 能表示为 ,且 最小且为素数,除以上情况,。 举个例子第二个情况。比如 ,那么此时 ,因为 是素数,且。 然后可以线筛出 内所有素数,是 个,那么对于每个素数枚举他的幂,如果枚举的幂还没有记录过答案,那么此时这个素数便是这个幂的f值。 展开全文
头像 CallmeChallenger
发表于 2020-11-05 09:12:57
题目链接:https://ac.nowcoder.com/acm/contest/7607/A题意:定义f(x)=gcd(x除1外的所有因子),给定a,b。求f(a)+f(a+1)+...+f(b)题解:对于任意的f(x),若x的质因子有超过一种,那么因为质因子互质,所以f(x)=1.若质因子只有一 展开全文
头像 zrzring
发表于 2020-10-24 11:30:45
考虑数的唯一分解 f(px)=p,f(∏pixi)=1f(p^x) = p, f(\prod p_i^{x_i}) = 1f(px)=p,f(∏pixi​​)=1 #include <iostream> #include <cstdio> #include <cmath 展开全文
头像 zrzring
发表于 2020-10-24 11:31:55
用一个bool数组表示每个数是否能被表示,初始化把Q所有元素设为1,然后跑一个高维前缀和算出所有的子集,类似多源最短路,这个过程可以同时多源进行 #include <iostream> #include <cstdio> #include <cmath> #inc 展开全文

等你来战

查看全部