数学
文章平均质量分 72
even_bao
这个作者很懒,什么都没留下…
展开
-
【POJ 1061】 青蛙的约会
【题目链接】 点击打开链接【算法】 列出同余方程,然后用exgcd求解【代码】 #include <algorithm> #include <bitset> #include <cctype> #include <cerrno> #include <clocale> #include ...原创 2018-02-14 20:58:54 · 321 阅读 · 0 评论 -
【BZOJ 2818】 GCD
【题目链接】 点击打开链接【算法】 线性筛出不大于N的所有素数,枚举gcd(x,y)(设为p),问题转化为求(x,y)=p的个数 设x=x'p, y=y'p,那么有(x,y)=1且1≤x,y≤N/p 转化为求(x,y)=1且1≤x,y≤n的个数 求(x,y)=1且1≤x,y≤N的个数: 若x...原创 2018-03-30 19:07:36 · 213 阅读 · 0 评论 -
【SDOI2012】 Longgue的问题
【题目链接】 点击打开链接【算法】 gcd(i,n)是n的约数 不妨设gcd(i,n) = d 考虑枚举d和gcd(i,n) = d有多少个 gcd(i,n) = d gcd(i/d,n/d) = 1 因为i<=n,所以i/d<=n/d ...原创 2018-03-20 21:30:25 · 235 阅读 · 0 评论 -
【POJ 2478】 Farey Sequence
【题目链接】 点击打开链接【算法】 不难看出,ans = phi(2) + phi(3) + .... + phi(n-1) + phi(n) 线性筛筛出欧拉函数,预处理前缀和,即可【代码】 #include <algorithm> #include <bitset> #include <...原创 2018-04-01 19:24:41 · 113 阅读 · 0 评论 -
【POJ 2407】 Relatives
【题目链接】 点击打开链接【算法】 欧拉函数【代码】 #include <algorithm> #include <bitset> #include <cctype> #include <cerrno> #include <clocale> #include <cmath>...原创 2018-04-01 19:27:16 · 209 阅读 · 0 评论 -
【BZOJ 3884】 上帝与集合的正确用法
【题目链接】 点击打开链接【算法】 通过欧拉拓展定理,列出递推公式 【代码】 #include<bits/stdc++.h> using namespace std; typedef long long ll; ll T,N; map<ll,ll> M; template <typename T>...原创 2018-03-28 18:39:29 · 262 阅读 · 0 评论 -
【NOIP2017Day1T1】 小凯的疑惑
【题目链接】 点击打开链接【算法】 px + qy不能表示的最大整数为 pq - p - q 证明见这篇博客,过程很详细,推荐阅读 : https://blog.csdn.net/qwerty1125/article/details/78661916【代码】 var a,b : int64; begi...原创 2018-03-28 21:43:50 · 716 阅读 · 0 评论 -
【HAOI2007】反素数
【题目链接】 点击打开链接【算法】 稍加分析可知,问题等价于“求1到n中,因子个数最多的数,若有多个,求最小的” 那么我们该怎么求这个数呢? 约数个数定理 : x = p1^a1p2^a2p3^a3...pn^an 则x的约数个数为 : (a1 + 1)(a2 + 1)(a3 + 1) ... (an + ...原创 2018-04-30 20:12:32 · 124 阅读 · 0 评论 -
【Usaco2008 Dec】Patting Heads
【题目链接】 点击打开链接【算法】 我们知道,每个编号为a[i]都要被编号是a[i]的约数的牛拍一次头(除了它自己),因此,只需用类似于筛法的方式统计答案, 即可【代码】 #include<bits/stdc++.h> using namespace std; #define MAXN 100010 #defin...原创 2018-04-30 20:56:37 · 165 阅读 · 0 评论 -
【HNOI 2008】 越狱
【题目链接】 点击打开链接【算法】 显然,越狱情况数 = 总情况数 - 不能越狱的情况数 很容易发现,总情况数 = M^N 不能越狱的情况数怎么求呢? 我们发现,不能越狱的情况,其实就是第一个人任选一种宗教,后面n-1个人,每个人都选 一种与前面一个人不同的宗教,所以第一个人有M种选法,后N-1个人,每个人都...原创 2018-05-01 22:38:06 · 177 阅读 · 0 评论 -
【HAOI 2008】 硬币购物
【题目链接】 点击打开链接【算法】 此题是一道好题! 首先,我们发现 : 付款方法数 = 不受限制的方法数 - 受限制的方法数 那么,我们怎么求呢? 我们用dp求出不受限制的方法数(f[i]表示买i元的东西,不受硬币限制,有多少种方案),只需用01背包的 方法就可以了,实现非常简单 ...原创 2018-05-06 22:41:44 · 323 阅读 · 0 评论 -
5月19日省中提高组题解
【Problem A】 Square【题意】 给一个n * n的01矩阵,要求一个最大的全1正方形 N <= 1000 【题解】 朴素的做法是先求二维前缀和,然后暴力找最大的正方形子矩阵,时间复杂度 : O(n^3) 期望得分 : 80 考虑优化,我们发现如果有边长为n的正方形,就一定有边长为(n - 1)的正方形,因此,可以先二分边长d,...原创 2018-05-25 22:28:14 · 171 阅读 · 0 评论 -
【HDU 5698】 瞬间移动
【题目链接】 点击打开链接【算法】 用f[i][j]表示走到(i,j)这个位置有多少种方案,因为走到(i,j)这个位置,上一步一定在它左上角的矩形中,所以, f(i,j) = sigma( f(x,y) ) ( (x,y)在左上角的矩形中) 我们尝试将它画出来,发现是斜着的杨辉三角 然后,通过找规律,我们...原创 2018-05-27 22:40:16 · 380 阅读 · 0 评论 -
6月16日省中集训题解
Problem A Pailindrome【题目大意】 求在k进制下n位回文数的和,结果用十进制输出 n <= 10^18 k <= 10^6 对于20%的数据,n <= 16,k <= 20 对于50%的数据,n <= 10^4,k <= 10^3 ...原创 2018-06-17 18:07:21 · 271 阅读 · 0 评论 -
【Sdoi2008】沙拉公主的困惑
【题目链接】 点击打开链接【算法】 gcd(a,b)=gcd(a mod b, b),又m!|n! 则有ans=(n!/m!)·ϕ(m!) 由ϕ(n)=n(1-1/p1)(1-1/p2)...(1-1/pk) ans=n!(1-1/p1)(1-1/p2)...(1-1/pk) 这里p1......原创 2018-03-23 22:33:37 · 223 阅读 · 0 评论 -
【Codeforces 582A】 GCD Table
【题目链接】 点击打开链接【算法】 G中最大的数一定也是a中最大的数。 G中次大的数一定也是a中次大的数。 第三、第四可能是由最大和次大的gcd产生的 那么就不难想到下面的算法: 1. 令p为G中最大的数。在G中删除p,a中加入p。 2 . 对于a中的所有其他数(设为q),在G中...原创 2018-03-13 20:23:58 · 425 阅读 · 0 评论 -
【BZOJ 2721】 樱花
【题目链接】 点击打开链接【算法】 令n!=z,因为1 / x + 1 / y = 1 / z,所以x,y>z,不妨令y = z + d 则1 / x + 1 / (z + d) = 1 / z 1 / x = 1 / z - 1 / (z + d) 1 / x = d / (z + d)...原创 2018-03-19 20:31:05 · 226 阅读 · 0 评论 -
【扬中集训Day6T1】 白日梦
【题目描述】 白日梦(daydream.c/cpp/pas)时间限制: 1 s 空间限制: 256 MB题目描述 SR需要相当大的睡眠量 某日,他做了一个奇怪的梦,他梦见自己成为了怪物猎人,为了狩猎,他要去一个岛上住N+1天(编号为0到N)。这个岛位于太平洋中心,每天要么是晴天,要么刮台风。他到达岛的第0天是晴天。然后对于第i天,假如是晴天,那么有P(0<p&...原创 2018-02-14 22:28:19 · 361 阅读 · 0 评论 -
【2017省中集训DAY1T1】 小X的质数
【题目链接】 点击打开链接【算法】 如果一个数是小X喜欢的数,那么有两种可能: 1.这个数是质数 2.这个数除以它的最小质因子是一个质数 所以我们可以用线性筛+前缀和的方式预处理,询问的时候O(1)计算就可以了【代码】 #include<bits/stdc++.h> using namesp...原创 2018-02-15 15:52:59 · 310 阅读 · 0 评论 -
线性筛选素数
【题目链接】点击打开链接【算法】线性筛模板【代码】#include<bits/stdc++.h> using namespace std; #define MAXQ 10000 #define MAXN 20000010 typedef long long ll; ll Q,x; bool NotPrime[MAXN+10]; vector<ll> p; inline ...原创 2018-02-03 14:09:06 · 262 阅读 · 0 评论 -
【NOIP16提高组】换教室
【题目链接】 点击打开链接 【算法】 概率DP 先跑一遍floyed,求出每个教室之间的最短路径,存在数组dist[][]中,时间复杂度O(V^3) 设计状态,f[i][j][k]表示当前选到第i个教室,已经选了j个教室,当前这个教室选不选(0..1) 那么,状态转移方程是什么呢? 假设当...原创 2018-02-15 14:37:09 · 462 阅读 · 0 评论 -
【Educational Codeforces Round 38 (Rated for Div. 2)】 Problem A-D 题解
【比赛链接】 点击打开链接【题解】Problem A Word Correction【字符串】不用多说了吧,字符串的基本操作Problem B Run for your prize【贪心】我们可以将这个数轴一分为二,小于等于500000的由第一个人领,否则由第二个人领Problem C Constructing tests【贪心】【数学】首先我们发现 : N^2 - (N /...原创 2018-02-19 18:37:55 · 234 阅读 · 0 评论 -
【Codeforces 947A】 Primal Sport
【题目链接】 点击打开链接【算法】 不难看出,x1的范围是[x2-P(x2)+1,x2],x0的范围是[x1-P(x1)+1,x1] 我们可以先做一遍线性筛,然后暴力就可以了【代码】 #include<bits/stdc++.h> using namespace std; const int MAXN = 1e6;...原创 2018-03-14 22:17:11 · 202 阅读 · 0 评论 -
【NOIP2016】 组合数问题
【题目链接】 点击打开链接【算法】 杨辉三角 + 二维前缀和 O(1)计算答案【代码】 #include<bits/stdc++.h> using namespace std; #define MAXNM 2010 int i,j,n,m,tc,k; int s[MAXNM+10][MAXNM+10],c[MAXNM+...原创 2018-02-22 12:46:34 · 199 阅读 · 0 评论 -
【Codeforces 762A】 k-th divisor
【题目链接】 点击打开链接【算法】 我们知道,一个数的因子是成对出现的,一半小于等于sqrt(N),一半大于sqrt(N),因此,我们可以从 2..sqrt(N)枚举因子【代码】 #include<bits/stdc++.h> using namespace std; #define MAX 3000000 typ...原创 2018-03-11 18:32:06 · 263 阅读 · 0 评论 -
【Codeforces 776B】Sherlock and his girlfriend
【题目链接】 点击打开链接【算法】 将所有质数染成1,合数染成2即可【代码】 #include<bits/stdc++.h> using namespace std; #define MAXN 100000 int i,N,x; bool b1,b2; int b[MAXN+10]; template <typename T&...原创 2018-03-11 19:13:12 · 256 阅读 · 0 评论 -
【Codeforces 664A】 Complicated GCD
【题目链接】 点击打开链接【算法】 gcd(a,a+1) = 1 所以当a = b时,答案为a,否则为1【代码】 #include<bits/stdc++.h> using namespace std; string a,b; int main() { cin >> a >> ...原创 2018-03-11 19:24:19 · 246 阅读 · 0 评论 -
【Codeforces 757B】 Bash's big day
【题目链接】 点击打开链接【算法】 若gcd(s1,s2,s3....sk) > 1, 则说明 : 一定存在一个整数d满足d|s1,d|s2,d|s3....,d|sk 因为我们要使|s|尽可能大,所以d是一个质数 对每个数进行质因数分解即可【代码】 #include<bits/std...原创 2018-03-11 19:52:03 · 223 阅读 · 0 评论 -
【Codeforces 632D】 Longest Subsequence
【题目链接】 点击打开链接【算法】 设取的所有数都是k的约数,则这些数的lcm必然不大于k。 对于[1, m]中的每个数,统计a中有多少个数是它的约数即可。【代码】 #include<bits/stdc++.h> using namespace std; typedef long long ll; const ll MAXN = ...原创 2018-03-11 20:57:08 · 143 阅读 · 0 评论 -
【扬中集训DAY1T1】 微信群
【题目链接】 点击打开链接【算法】 对问题稍加分析后,发现其实要求的就是 : C(N,K) + C(N,K+1) + C(N,K+2) + ... + C(N,N) 因为N最大10^9,K最大10^5,很显然,我们不可能通过暴力或杨辉三角等来解决此题 我们发现 : C(N,K) + C(N,K+1) ...原创 2018-02-22 12:31:59 · 476 阅读 · 0 评论 -
【SDOI2009】SuperGCD
【题目链接】 点击打开链接【算法】 1.关于求最大公约数的算法 若使用辗转相除法,那么显然会超时 不妨这样思考 : 要求gcd(a,b), 若a为偶数,b为偶数,则gcd(a,b) = 2 * gcd(a/2,b/2) 若a为偶数,b为奇数,则gcd(a,b) = gcd...原创 2018-03-18 20:46:51 · 380 阅读 · 0 评论 -
【POJ 1845】 Sumdiv
【题目链接】 点击打开链接【算法】 不妨先将A分解质因数 A = p1^q1p2^p2p3^p3..pn^qn 那么,A^B = p1^q1Bp2^q2B...pn^qnB 根据约数和定理,A^B的约数和就是 : (p1^0 + p1^1 + .. p1^q1B)(p2^0 + p2^1 + ... ...原创 2018-06-27 12:15:29 · 242 阅读 · 0 评论