
数论
奔跑的蜗new
这个作者很懒,什么都没留下…
展开
-
素数筛, 扩展欧几里得,欧拉函数模板
素数筛void sieve(int n) { int m = (int)sqrt(n+0.5); memset(vis, 0, sizeof(vis)); for (int i = 2; i <= m; i++) if (!vis[i]) for (int j = i*i; j <= n; j+=i) vis[j] = 1;}生成素数表int gen_pri...原创 2018-07-23 11:39:54 · 185 阅读 · 0 评论 -
lightOJ1341(唯一分解定理)
前面学的好多知识都忘了,现在决定复习一下了 问有几种边长为整数的矩形面积等于a,且矩形的短边不小于b用唯一分解定理求出a的因子对数,在暴力求出1-b内的a的因子个数,相减一下就好了 #include <cstdio>#include <cmath>#include <cstring>#include <algorithm>...原创 2018-07-23 19:02:31 · 1067 阅读 · 1 评论 -
LightOj1282(n^k前三位)
求n^k的前三位和后三位原博客#include <cstdio>#include <cmath>long long pow_mod(long long a, long long b){ long long ans = 1; while (b > 0) { if (b & 1) ans = ans * a % 1000; a ...原创 2018-07-24 09:49:01 · 211 阅读 · 0 评论 -
LightOJ1197(大区间素数打表)
求a-b内素数个数,a,b在int范围内,但是b-a <= 100000先打好素数表,在用素数筛法把a-b区间的非素数给筛掉#include <cstdio>#include <cmath>#include <cstring>#include <algorithm>using namespace std;typedef l...原创 2018-07-24 16:14:36 · 731 阅读 · 0 评论 -
CF982E(很神奇的exgcd)
n*m的球桌的(x,y)点上有一个球,给球任意八个方向的初速度问球能否进洞,并把洞口坐标输出主要是很难想到补边,以及用exgcd求出的交点坐标不一定是第一个交点,甚至有可能是另一个方向的交点,这个有点难处理#include <cstdio>#include <cstring>#include <cmath>#include <algor...原创 2018-08-15 15:51:41 · 1399 阅读 · 0 评论 -
fjut3467(gcd+dp)
题目链接求一个序列最长不互质子序列第一层循环遍历序列,第二层遍历该数的因子,转移方程为f[i] = max(f[i], pre[prime[j]])f[i]表示到i位时的最长子序列长度,prime[j]是a[i]的质因子,pre[prime[j]]表示上一个公约数含有prime[i]的数的最长子序列长度这里需要提前打表打出每个数的因子,我一开始只能想到On根号n的打表,其实这里可以...原创 2018-08-20 16:26:55 · 425 阅读 · 0 评论 -
codeforces505B (思维)
(a1,b2) (a2, b2)....这样的数对有n对,问是否存在一个数,使得这个数是每个数对中至少一个数的因子。 我一开始贪心被hack了。。后来又想枚举一个数的所有因子,a[i]太大了放弃。。比赛结束后看别人代码才知道只需要枚举质因子就行了。。而int内的数的质因子不超过十个。。#include <cstdio>#include <cstring>#...原创 2018-08-20 16:32:29 · 271 阅读 · 0 评论