数学
文章平均质量分 66
Joey丶sunk
古今成大事者 不惟有超世之才 亦必有坚忍不拔之志
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HDU - 5902 GCD is Funny 思维+数学推导+gcd
题意:黑板上有n个数,任意选择其中三个,把其中两个的gcd加入到黑板上,之前的三个数删去;问最后剩下的两个数(相同)可能是什么,会有很多种情况思路:首先我们可以想到的是任意两个数求gcd,然后后面每一次都用这两个数的gcd,最后就会剩下这个数了;但是这样还不够,有可能我们求完gcd的这个数会和其他的数产生新的gcd,例如:30,42,14,15;所以答案就是n个数一些子集的gc...原创 2019-04-06 12:47:32 · 515 阅读 · 1 评论 -
LightOJ - 1234 Harmonic Number 分块打表的方法
题意:略思路:分块打表的方式(还可以用调和级数的规律算)1e8 的表有点大,没法直接打表 ( a[i] 表示 1/i 的前 i 项和)所以没隔100个数往表中存一次,这样表的大小只有 1e6,多出来的直接枚举就好了#include#include#include#include#include#include#include#inclu原创 2017-11-30 17:22:27 · 277 阅读 · 0 评论 -
LightOJ - 1220 Mysterious Bacteria 唯一分解定理
题意:给定 n, 求满足条件 x ^p = n 的最大的p的值;思路:还是考虑n的素因子,对n进行唯一分解以后(pi 为素因子, ni为个数) 得到 (p1 ^n1) * (p2 ^n2) * (p3 ^n3)...... = n;要是n为正数的话,直接对 n1,n2,n3.....求 gcd 后就是 最大的p;如果n为负数的话,要先对(-n)唯一分解,求得p,原创 2017-11-30 16:27:50 · 360 阅读 · 0 评论 -
LightOJ - 1236 Pairs Forming LCM 唯一分解定理与LCM
题意:略思路:由 唯一分解定理和 lcm 的关系,推出每个素因子的出现的可能种数,所有质因子之间种类数是相互乘的#include#include#include#include#include#include#include#include#include#include#include#define PI acos(-1.0)#define原创 2017-11-30 13:57:49 · 306 阅读 · 0 评论 -
LightOJ - 1138 Trailing Zeroes (III) N!中包含因子x的个数
题意:问是否存在N,其阶乘结果尾是否恰好有n个0;思路:很容易想到,就是要找n的阶乘含有因子10的个数,也就是找因子 2, 5 的个数,又因为 2 的个数多于 5,我们只需要查找5的个数就好了这里包含了 求n的阶乘含有因子5的个数 的方法#include#include#include#include#include#include#include#inc原创 2017-11-15 21:51:46 · 248 阅读 · 0 评论 -
LightOJ - 1109 False Ordering 因子个数
水数学#include#include#include#include#include#include#include#include#include#include#include#define PI acos(-1.0)#define in freopen("in.txt", "r", stdin)#define out freopen("out.txt"原创 2017-11-15 20:23:13 · 249 阅读 · 0 评论 -
LightOJ - 1245 Harmonic Number (II) (思路讲解)
题意:略思路:对于这个题我先想到的是找到给定的 n 的因子,相邻两个因子 i, j 之间的数,用n除以这个数得到的是 n/j 的到的数,事实上这样想是错的但是也能提醒我们,某一段数,用n除完后,得到的结果是一样的;建议读者手动把 24 所有的数 用24除完以后得到的数写出来会发现一个规律:我们还是枚举 1~sqrt(n);对于1 和 2:n/1 = 24,原创 2017-11-20 21:29:18 · 481 阅读 · 0 评论 -
LightOJ - 1259 Goldbach`s Conjecture 素数打表+暴力(我见过的最快的打表姿势)
题意:给定n,找到两个素数,想加得到n,问有多少中方法;思路:筛法打个素数表,枚举小于等于(n/2)的所有素数prim[ i ],判(n - prim[ i ])是不是素数#include#include#include#include#include#include#include#include#include#include#include#de原创 2017-11-20 20:23:44 · 310 阅读 · 0 评论 -
LightOJ - 1213 Fantasy of a Summation 推快速幂
题意:略思路:根据给定的循环推出每个元素出现的次数,是一个快速幂,,后面就简单了,,带详细更新#include#include#include#include#include#include#include#include#include#include#include#define PI acos(-1.0)#define in f原创 2017-11-29 18:21:34 · 256 阅读 · 0 评论 -
CodeForces - 615D Multipliers 组合数学-素因子与因子
题意:给你n个素数,有重复,把这n个数乘起来得到 N,然后找到他所有的因子,把这些因子再乘起来,对 1e9+7 取模思路:我们可以知道N的所有因子都是由给定的n个素数其中的一些相乘得到,所以我们又可以想到 答案就是n的所有子集相乘取模的结果,但是也难以实现继续想,可以推出每个素数pi 给N的所有因子的贡献,也就是其中有多少个pi,根据排列组合可以推一下#incl原创 2017-11-21 20:37:15 · 361 阅读 · 0 评论 -
LightOJ - 1215 Finding LCM 推关系(lcm和因子关系)
题意:对于 a, b, c, 以及它们的最小公倍数 L, 给定 a,b,L 求 最小的 c思路:我们知道 L = lcm( lcm(a,b), c );我们首先求得 a b 的 lcm1,然后根据 lcm1 和 L 的关系求 c ,手推一下会发现:c 存在的条件是 L 是 lcm1 的倍数; 然后就是求 c ,我们可以理解为,t = L / lcm1 这一部分是 c 提供原创 2017-11-16 20:19:53 · 488 阅读 · 0 评论 -
Codeforces Round #447 (Div. 2) B. Ralph And His Magic Field 推规律+证明
题意:略; 这个题我是没推出来,想了好久也没想明白,看了题解才会做的,而且我对这个题的想法跟题解一点关系都没有,也就是说思路根本不存在;那就证明一下这个题的正确性吧理解:首先是不存在的这种情况,我们知道,要是 n , m 奇偶性不同,并且 k = -1 是的情况是不存在的因为: 假设 n 为偶数,m 为奇数,对于每一行合法的话,那么每一行有且只能有奇数个-1,那么-1的原创 2017-11-22 22:51:21 · 259 阅读 · 0 评论 -
Codeforces E. Binary Numbers AND Sum 规律
CF: *1700题意:给定两个很大的二进制数a,b,长度最大2e5,答案每次加上 a&b (位运算),然后b右移一位,直到为0;问最后答案是多少思路:先把两个串都翻转,下标从1开始,便于描述规律:b这个数每次右移一位,所以现在可以看作这个串往左移动,所以b中的第i位如果为1 ,那他跟a串中的前i个数会进行i次&运算,所以可以从这个角度来考虑b中的每个1...原创 2018-11-07 10:59:44 · 282 阅读 · 0 评论 -
Codeforces Round #512 E - Vasya and Good Sequences 思路+dp+暴力详解
题意:给定一段长度最大为 3e5的序列,每个数的二进制位的1和0可以互换,即二进制1的个数相同的数可以互换,问有多少个连续的子序列(子区间),在可以使用上述互换的条件下,能够达到区间异或和为0思路:有前面的互换我们可以知道,对于给定的每个a[i] 我们只需要考虑其二进制位有几个1就OK了;可是我想的是这个连续自序列必须满足“可以划分成相等的两部分”,后来想到(正解):只要和...原创 2018-09-25 19:45:59 · 365 阅读 · 3 评论 -
Codeforces Round #480 (Div. 2) D - Perfect Groups 数论+暴力
题意:首先对于一个序列X,设一个值为ans1,ans1表示把这个序列划分成的最小组数,使得每一组中任意两个数相乘是平方数对与本题:给定原序列A,对于A的任意一个连续子序列X,都有一个ans1,问A序列所有子序列的ans1都有多少个;输出ans[i],表示ans1为i的子序列的个数;思路:首先对于每个数,如果它有 平方数因子,那可以直接除掉,因为不影响,也为了方便后面计算ans1;O(n*max(a...原创 2018-05-10 07:42:36 · 557 阅读 · 0 评论 -
SGU - 444 Headstrong Student 模拟+循环节
题意:求 a / b 的小数点后的循环节的开始点和循环节长度至于整数,循环节长度为0,开始位置就是整除完了的后一位思路:直接模拟,出现重复的余数,说明出现了循环节,如果被整除了的话直接输出本来看错数据大小了,用的 map 记录余数的位置,748ms 卡过,后来发现只有1e6 的数据,用数组记录就好了;#include#include#include#i原创 2017-11-27 20:07:37 · 245 阅读 · 0 评论 -
Codeforces Round #448 (Div. 2) B. XK Segments 排序+二分
题意:问某种 i-j 对的个数; i-j 对满足枚举 i j ,当 ai 思路:我们可以知道,朴素算法就是枚举 ij 这里明显超时,我们要注意到这里的限制条件: ai 排序后,对每个 a[i] ,我们就会想,另一个满足条件边界是啥? 然后解法就来了,我们根据 恰好k个 x的倍数,然后可以知道满足条件的右边界的大小范围这样的话 可用lower_bound (lo原创 2017-11-27 18:04:54 · 531 阅读 · 2 评论 -
SGU - 443 Everlasting...? 素因子分解
题意:略思路:打素数表,素因子分解#include#include#include#include#include#include#include#include#include#include#include#define PI acos(-1.0)#define in freopen("in.txt", "r", stdin)#define o原创 2017-11-27 16:11:38 · 290 阅读 · 0 评论 -
HYSBZ - 1303 中位数图 伪前缀和,区间问题
题意:给定 1-n 的排列,找到以 b 为中位数的区间(奇数长度)个数;思路:这个区间要包含 b,可能是b及其左边的一段区间,或者b及其右边的一段区间,或者左右两边的区间组合;开始没有看见 1-n 的排列组合,以为是任意的数,那样不容易搞,后来发现1-n这个排列以后就很简单了,这是这个区间满足b是中位数这个条件的话,那大于他的数的个数等于小于他的数到个数;左右两边分别计数,原创 2017-11-24 22:24:58 · 388 阅读 · 0 评论 -
ZOJ - 3955 Saddle Point 每个值对答案的贡献
题意:给定n*m的 矩阵,选择一行或者若干行,一列或者若干列,构成新的矩阵,问这个矩阵中,满足某个元素是本行最小本列最大的这个性质的所有元素的个数思路:题中说了,所有的矩阵的可能性 有 (2^n - 1) * (2^m - 1)中,显然没法枚举;所以 我们考虑某一个元素,会在那个矩阵中出现,也就是算这个元素满足上面性质时 对答案的贡献值是多少;这样我们可以找到一个值原创 2017-12-03 20:06:07 · 298 阅读 · 0 评论 -
LightOJ - 1278 Sum of Consecutive Integers 素质因子
题意:求连续的一段数字和是给定的n 的组合种数思路:自己推一下就可以知道, n 的奇数因子都能提供一个组合方式那样就转化为求 n 的素质因子的组合方式#include#include#include#include#include#include#include#include#include#include#include#define PI a原创 2017-11-14 22:51:39 · 351 阅读 · 0 评论 -
LightOJ - 1197 Help Hanzo 较大数的区间素数筛法
题意:给定 a,b ,求 [a, b] 之间素数的个数,思路:由于a,b比较大,直接暴力判素数也不行,我们可能会想到筛法,但是会遇到没法用数组存的问题,这样的话可以用 0 ~ (b-a)大小的数组存;给定了大小 1e6先打素数表,每次把a b之间的非素数筛掉,还有可能的是a-b之间的第一个prim i 的倍数恰好是这个素数要判一下,a 等于 1 的时候也要判一下原创 2017-11-28 22:47:34 · 281 阅读 · 0 评论 -
LightOJ - 1163 Bank Robbery 简单数学公式
题意:原来有个数A,去掉他的最后一位 x 后,得到 AA,然后 A - AA = B;给定 B ,要求 A;思路:根据条件可以得到:A - (A / 10)= B; 这个 A/10 是计算机算法,推出: A * 10 - (A / 10)* 10 = B * 10;并且: A - (A / 10)* 10 = x;最后推得: A * 10原创 2017-11-28 20:18:56 · 316 阅读 · 0 评论 -
51Nod - 1021 石子归并 区间DP入门-分析
题意:合并相邻石子,使花费最小思路:相邻的这个条件,决定了是区间相关的最优问题,事实上这是个区间DP的入门题区间DP 枚举区间长度,对于本区间获得最优解,当分析更大的区间时,可由这个区间推出#include#include#include#include#include#include#include#include#include#include#原创 2017-11-09 15:08:41 · 361 阅读 · 0 评论 -
HDU - 5902 GCD is Funny 数论(GCD相关)
思路:首先这个题我们可能想到的就是任意两个数的 gcd ,但是这样还不够,可能会有 已经得出的gcd 跟其他的数产生新的 gcd,所以,这个题的答案就是 n 个数所有子集的gcd(上面这些想了好久没能证明== 感谢Q巨 tls 九哥 等大神 瞬间给出我没想出来的反例,当头一棒,叫我清醒,对数学更加喜欢)#include#include#include#include原创 2017-11-09 15:04:32 · 372 阅读 · 0 评论 -
LightOJ - 1035 Intelligent Factorial Factorization 质因子分解
题意:求小于等于 n 的数的所有质因子的个数思路:n只有 100,得100以内的所有数进行质因子分解(打表处理),最后以 优先队列储存然后输出#include#include#include#include#include#include#include#include#include#include#include#define PI acos(-1原创 2017-11-07 15:25:57 · 363 阅读 · 0 评论 -
LightOJ - 1028 Trailing Zeroes (I) 求因子个数
题意:一个数,换用其他进制,末位是0,有多少种方法?思路:可以想到,这个进制数要能 整除n,末位才会是0,所以就是求n的因子个数由于 T 比较大,n 也很大,稍微算下复杂度,对于每个数求解因子的运算,不能找过几万次,比较快的求解因子个数的方法就是对这个数进行质因子分解,可以根据以下代码自己推一下,还有一点要注意的就是 n 小于 1e6的时候就可以判断是否可以退出了,否则会超时原创 2017-11-07 14:45:06 · 286 阅读 · 0 评论 -
LightOJ - 1024 Eid n个数的最小公倍数lcm
题意: 找 n 个数的最小 公倍数思路:n个数的最小公倍数等于 前n-1个数的最小公倍数 和第n个数的最小公倍数每给一个数,求他们的最小公倍数,最后结果就是答案,,求a, b最小公倍数 : lcm = a * b / gcd(a, b); 此题需要高精度 package program;// by lxkimport java.util.*;import原创 2017-11-07 10:51:30 · 406 阅读 · 0 评论 -
SGU - 499 Greatest Greatest Common Divisor 枚举因子(n logn)
题意:给定 n 个数 a [ i ] (2 求解 max( gcd( a [ i ], a [ j ] ) )(i != j)思路:枚举因子 d ,只要找到给定的数列中有大于等于两个书是 d 的倍数,那 d 就满足gcd的条件找到最大的 d;#include#include#include#include#include#include#inc原创 2017-11-06 19:42:57 · 365 阅读 · 0 评论 -
UVALive - 7457 Discrete Logarithm Problem 费马小定理+暴力枚举+快速幂
由 费马小定理可知:a ^ b % m = a ^ ( b % (m-1) ) % m ;(费马小定理:m是质数时 a ^ (m-1) % m = 1)所以对于本题 枚举 a 的 1 - p 次幂对 p 取模,#include #include #include #include #include #include #include #include原创 2017-10-28 18:22:33 · 273 阅读 · 0 评论 -
CodeForces - 850A Five Dimensional Points 数学+暴力
题意:找到所有good点,,这个点 满足的条件是对于其他的任意两点,角度不是锐角思路:我们可以确定如果某个点是 good 点的话,其他的点肯定是 bad 点,还有判断两点是否是 直角或者钝角的时候 可看题解中方法因为不管他是几维坐标,选出来的三个点一定是共平面了,形成的角度也是0 - 180 度,,所以 cos 值 也满足正负的相关关系,#include#in原创 2017-11-09 15:18:01 · 392 阅读 · 0 评论 -
CodeForces - 520C DNA Alignment 推规律
题意:恶心,给定 字符串 S,找到一个串T 使得 那个值最大思路:要使得 这个值最大,我们可以推出来(自己算算),另一个串的所有数字跟 S 串中,出现次数最到的字符一样就是了,,如果S中出现次数最多的字符不止一种,那 另一个串中所有的字符只要是这些出现次数最多的就行了所以串T中 每个位置的选择种数 就是S串中出现次数最多的字符 的种类数,,最后求个快速幂#incl原创 2017-11-09 15:31:59 · 432 阅读 · 0 评论 -
HDU - 4825 Xor Sum 异或+字典树
题意:给定一个集合,然后给定一个数,问集合中跟这个数异或值最大的数是啥思路:异或是位运算,可以看作二进制串来操作,想要异或值最大,,我们可以找到给定数的最优二进制串,然后对集合中数从高位到低位进行匹配,用字典树存集合中的数,叶子结点附加值是这个数,最后由给定的数匹配#include // studing#include#include#include原创 2017-11-09 15:39:42 · 413 阅读 · 0 评论 -
LightOJ - 1098 A New Function 因子贡献
题意:略思路:每一个数直接求肯定是不行的,我们知道前n个数会有好多的重复的因子,我们可以利用算因子的贡献值的方法求得全部的和;算下复杂度的话,我们可以知道 √n 的复杂度是可以接受的;正好,就像求某一个的所有因子一样,我们枚举 2 — sqrt(n),题解中的 t1 就是 i 的倍数的个数,也就是i贡献的个数;还要考虑一个问题就是,某个数 除了 i 这个因子,原创 2017-11-28 15:35:50 · 468 阅读 · 0 评论 -
Codeforces Round #446 (Div. 2) C Pride
推规律#include#include#include#include#include#include#include#include#include#include#include#define PI acos(-1.0)#define in freopen("in.txt", "r", stdin)#define out freopen("out.txt"原创 2017-11-18 11:58:52 · 348 阅读 · 0 评论 -
LightOJ - 1090 Trailing Zeroes (II) 质因子分解
题意:求 a = C(n, r) * ( p^q ) 这个数字末尾有多少个 0 思路:问题可以转化成 a 对10 进行分解,可以分解的次数,即 对2分解 对5分解,两个中的较小值预处理每个 1 - 1e6 的每个数字的对2分解,对5分解的次数,,然后还要保存下前缀和,作为 n的阶乘中分别包含的次数,#include#include#include#i原创 2017-11-13 20:24:22 · 330 阅读 · 0 评论 -
LightOJ - 1077 How Many Points? 最大公约数(线段经过整点个数与gcd 证明)
题意:给定两个整点,求这段线段之间跨过的整点的个数思路:1,再纸上画一下就可以猜到了2,证明一下:设线段的两个端点为 (x1, y1) 和 (x2, y2)我们都知道,要是这个线段经过某个整点(a,b)的话,我令 dx = (a - x1), dy = (b - y1);必定有 dy / dx = (x2 - x1) / (y2 - y1) ①, 因为要满足相同的原创 2017-11-13 19:35:57 · 732 阅读 · 0 评论 -
LightOJ - 1067 Combinations 大组合数取模(费马小定理与逆元)
题意:求组合数 C(n,m)思路:我们知道 C(n,m) = (n!) / (m! * (n-m)!)但是这里的 n m 都很大,而且需要对 mod 取模,所以需要用到 逆元处理分数取模问题求逆元可以用扩展欧几里得算法或者费马小定理(快速幂)算法;这里是用到的是 有费马小定理推出来 运用快速幂:费马小定理: a ^ (m - 1) % ( m ) 恒等于 1 可原创 2017-11-13 18:03:11 · 316 阅读 · 0 评论 -
LightOJ - 1014 Ifter Party 暴力枚举因子
直接枚举 n-m 的因子#include#include#include#include#include#include#include#include#include#include#include#define PI acos(-1.0)#define in freopen("in.txt", "r", stdin)#define out freopen原创 2017-11-02 16:49:30 · 303 阅读 · 0 评论 -
LightOJ - 1045 Digits of Factorial b进制下位数
题意:给定 n 和 b, 求 n的阶乘 在 b 进制下的位数思路:知识点:一个数 n 在 b 进制下在位数: log(b)n 这样的话需要打表预处理,用换底公式自己推一下 #include#include#include#include#include#include#include#include#include#include#include#原创 2017-11-10 19:05:02 · 264 阅读 · 0 评论
分享