
数论
文章平均质量分 60
csu_xiji
这个作者很懒,什么都没留下…
展开
-
力扣 447. 回旋镖的数量 哈希 数学
https://leetcode-cn.com/problems/number-of-boomerangs/思路:考虑枚举点iii,如果我们知道其他所有点到点iii的距离,那么可以计算出每个距离对应的点对数量xxx,显然它对答案的贡献为x∗(x−1)x*(x-1)x∗(x−1)——从xxx个元素中有顺序的选出2个元素。通过哈希表可以把时间复杂度降低到O(n2)O(n^2)O(n2)。不过计数方式有很多种,也可以考虑在统计点对数量的时候计算。class Solution {public: in原创 2021-09-15 01:10:28 · 222 阅读 · 0 评论 -
力扣 1994. 好子集的数目 数学 状压dp
https://leetcode-cn.com/problems/the-number-of-good-subsets/思路一:纯数学暴力解法。首先我们知道一个合数一定可以表示为若干个素数的乘积,因为要求素数不能相同,因此子集中的合数一定不能表示成两个相同素数的乘积。注意到元素的取值范围为[1,30][1,30][1,30],据此我们可以排除一些合数。然后把相同的数合并到一起(记录出现的次数),那么就只剩下大概20个元素了。此时可以暴力枚举选择的情况,然后对选择的数做因数分解统计每个质因子出现的次数,如原创 2021-09-09 00:52:57 · 308 阅读 · 0 评论 -
力扣 470. 用 Rand7() 实现 Rand10() 思维
https://leetcode-cn.com/problems/implement-rand10-using-rand7/思路:有意思的题目。直接用加法、乘法、取模得到的结果是不对的,原因是通过运算得到的结果可能有多种组合形式,就拿加法而言,2=1+12=1+12=1+1,但是3=1+2=2+13=1+2=2+13=1+2=2+1,显然每个数字出现的概率是不一样的,当然我们可以使用出现概率相同的数字来计算,这样也可以保证正确性。不过还有一种更加简单的方法,我们认为每次随机取得的数都是独立的,那么经过两原创 2021-09-06 00:58:49 · 184 阅读 · 0 评论 -
力扣 233. 数字 1 的个数 数学 计数
https://leetcode-cn.com/problems/number-of-digit-one/思路:答案就是nnn的每一位(个位、十位、百位…)上出现的1的数量的总和。那么对于任意一个数字abcdeabcdeabcde,假设计算ccc位上的1,且有high=ab,cur=c,low=de,digit=102high=ab,cur=c,low=de,digit=10^2high=ab,cur=c,low=de,digit=102,现在开始分类讨论ccc的取值:c=0c=0c=0,为了让这一原创 2021-08-14 01:46:22 · 148 阅读 · 0 评论 -
PIPIOJ 1413: 士兵排阵Ⅲ 带权中位数问题
http://pipioj.online/problem.php?id=1413思路:带权中位数问题,详细证明参见百度百科。先给出结论:∑i=1n∣xi−x∣∗wi\sum_{i=1}^{n}|x_i-x|*w_i∑i=1n∣xi−x∣∗wi的最小值当且仅当x=x(∑i=1nwi)/2x=x_{(\sum_{i=1}^nw_i)/2}x=x(∑i=1nwi)/2(此处不细致考虑下标问题)时取得。这里给出我自己的理解(非严谨证明),我们知道∑i=1n∣xi−x∣\sum_{i=1}^{n}|x原创 2021-03-06 17:28:17 · 187 阅读 · 3 评论 -
PIPIOJ 1378: 士兵排阵Ⅱ 数学(中位数性质)
http://pipioj.online/problem.php?id=1378思路:和这道题一模一样。#include<bits/stdc++.h>#define INF 0x3f3f3f3fusing namespace std;typedef long long ll;const int maxn=5e5+5;int n,x[maxn],y[maxn];int main(){ scanf("%d",&n); for(int i=1;i<原创 2021-03-06 16:20:46 · 157 阅读 · 0 评论 -
PIPIOJ 1018: 士兵排阵 贪心 数学
http://pipioj.online/problem.php?id=1018思路:和这道题很像。既然已知当x=a[mid]x=a[mid]x=a[mid]时,∑i=1n∣ai−x∣\sum_{i=1}^n|a_i-x|∑i=1n∣ai−x∣取得最小值,那么将所有士兵移动到同一行的纵坐标就确定了。现在考虑横坐标,假设最终结果中第一个士兵的横坐标为ttt,那么根据贪心策略,我们肯定希望最小的xix_ixi移动到ttt,第二小的xix_ixi移动到t+1t+1t+1……那么对横坐标进行排序后,我们原创 2021-03-06 01:57:58 · 393 阅读 · 0 评论 -
CSUOJ 2323 疯狂的企鹅II 贪心 思维
http://acm.csu.edu.cn:20080/csuoj/problemset/problem?pid=2323思路:首先明确一点,行和列可以分开计算,没有影响。先考虑把所有企鹅移动到同一行的情况,因为棋盘的长宽和企鹅数量相等,且同一个格子只能有一个企鹅,所以这些企鹅应该各自独占一列,为了让步数尽量小,把横坐标排序后,第iii只企鹅应该移动到横坐标为iii的位置,对应的贡献为abs(xi−i)abs(x_i-i)abs(xi−i);接下来考虑把它们移动到同一行的问题,结论是把纵坐标从小到大排原创 2021-03-06 00:55:52 · 204 阅读 · 0 评论 -
力扣 96. 不同的二叉搜索树 dp/卡特兰数
思路一:dpdpdp,设dp[i]dp[i]dp[i]表示任意iii个不相等的节点所能组成的二叉搜索树的个数。因为在二叉搜索树中,我们并不关心某个节点的值,而是关心它们之间的大小关系,所以节点1、21、21、2能组成的二叉搜索树的个数和节点1、31、31、3能组成的二叉搜索树的个数是相等的。那么对于以1…n1…n1…n为节点的二叉搜索树,我们可以枚举根节点iii:当根节点为iii时,左子树有i−1i-1i−1个节点,右子树有n−in-in−i个节点,所以有:dp[i]=∑j=1idp[j−1]∗dp[i−.原创 2020-07-08 00:43:33 · 229 阅读 · 0 评论 -
codeforces 1327D Infinite Path 图论+思维
https://vjudge.net/problem/CodeForces-1327D题目大意:大概就是说找一个最小的kkk,对序列ppp进行转换之后,存在一个起始位置iii使得c[i]=c[p[i]]=c[p[p[i]]]……c[i]=c[p[i]]=c[p[p[i]]]……c[i]=c[p[i]]=c[p[p[i]]]……(一条无限长的路径)。思路:首先有一个结论就是,对于一个nnn的全...原创 2020-04-06 14:52:26 · 290 阅读 · 0 评论 -
codeforces 1294C Product of Three Numbers 简单数学因数分解
https://vjudge.net/problem/CodeForces-1294C题目大意:给一个数nnn,问能否找到三个数a、b、ca、b、ca、b、c使得a∗b∗c=na*b*c=na∗b∗c=n且2<=a,b,c2<=a,b,c2<=a,b,c。思路:把nnn因数分解,看能否凑出三个不同的满足限制的数即可。#include<bits/stdc++.h>...原创 2020-03-12 12:40:07 · 173 阅读 · 0 评论 -
uva 11426 GCD - Extreme (II) 欧拉函数
https://vjudge.net/problem/UVA%20-%2011426题目大意:如上图所示,就是让你求那个式子的结果。思路:不妨引入一个新函数fff,且有f(n)=∑i=1n−1gcd(n,i)f(n)=\sum_{i=1}^{n-1}gcd(n,i)f(n)=∑i=1n−1gcd(n,i),那么对于任意给定的数nnn,答案就是∑i=2nf(i)\sum_{i=2}^{n}f...原创 2020-03-09 12:12:26 · 179 阅读 · 0 评论 -
HDU 2138 How many prime numbers 拉宾米勒素性测试
https://vjudge.net/problem/Hdu-2138题目大意:多组数据,每组数据给nnn个数,输出其中素数的个数。思路:拉宾米勒素性测试。#include<bits/stdc++.h>using namespace std;typedef long long ll;int prime[12]={2,3,5,7,11,13,17,19,23,29,31,3...原创 2020-03-08 21:20:25 · 272 阅读 · 0 评论 -
hihocoder 1287 数论一·Miller-Rabin质数测试
https://vjudge.net/problem/HihoCoder-1287#include<bits/stdc++.h>using namespace std;typedef long long ll;int prime[12]={2,3,5,7,11,13,17,19,23,29,31,37};ll fmul(ll a,ll b,ll p){ ret...原创 2020-03-08 21:13:06 · 162 阅读 · 0 评论 -
codeforces 1295D Same GCDs 数论 欧拉函数
https://vjudge.net/problem/CodeForces-1295D题目大意:给定n、mn、mn、m,对于任意x(0<=x<m)x(0<=x<m)x(0<=x<m),问gcd(a,m)=gcd(a+x,m)gcd(a,m)=gcd(a+x,m)gcd(a,m)=gcd(a+x,m)的xxx的个数。思路:#include<bits/...原创 2020-01-30 20:26:40 · 400 阅读 · 0 评论 -
codeforces 1030D Vasya and Triangle 简单数论
https://codeforces.com/problemset/problem/1030/D题目大意:给出三个整数n、m、kn、m、kn、m、k,问是否能找到三个点(x1,y1),(x2,y2),(x_1,y_1),(x_2,y_2),(x1,y1),(x2,y2),(x3,y3)(x_3,y_3)(x3,y3)满足0<=xi<=n&0<=yi<...原创 2020-01-19 14:57:44 · 162 阅读 · 0 评论 -
洛谷 P5431 【模板】乘法逆元2
https://www.luogu.com.cn/problem/P5431思路:设A=∏i=1naiA=\prod_{i=1}^{n}a_iA=∏i=1nai,设inv∗A=1%pinv*A=1\%pinv∗A=1%p,那么aia_iai的乘法逆元就等于inv∗∏j=1i−1ai∗∏j=i+1naiinv*\prod_{j=1}^{i-1}a_i*\prod_{j=i+1}^na_ii...原创 2020-01-13 13:21:04 · 424 阅读 · 0 评论 -
洛谷 P3811 【模板】乘法逆元 线性求逆元
https://www.luogu.com.cn/problem/P3811#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=3e6+5;int n,p;int inv[maxn]; //inv[i] 表示 i 模 p 的乘法逆元void work()//求...原创 2020-01-13 12:26:45 · 224 阅读 · 0 评论 -
ACM数论板子
推荐博客:[总结]数论和组合计数类数学相关(定理&证明&板子)[总结]其他杂项数学相关(定理&证明&板子)总结]多项式类数学相关(定理&证明&板子)[探究] OI中各种初级数论算法相关板子:gcdgcdgcdint gcd(int a, int b) { return b == 0 ? a : gcd(b, a%b);} ...原创 2020-01-13 18:59:54 · 1227 阅读 · 0 评论 -
洛谷 P1044 栈 卡特兰数
https://www.luogu.org/problem/P1044题目大意:进栈序列为1−n1-n1−n,有多少种不同的出栈序列。思路:卡特兰数。#include<bits/stdc++.h>#define INF 0x3f3f3f3fusing namespace std;typedef long long ll;ll f[30];int main(){ ...原创 2019-10-23 16:31:16 · 199 阅读 · 0 评论 -
洛谷 P1754 球迷购票问题 递推 卡特兰数
https://www.luogu.org/problem/P1754题目背景盛况空前的足球赛即将举行。球赛门票售票处排起了球迷购票长龙。按售票处规定,每位购票者限购一张门票,且每张票售价为50元。在排成长龙的球迷中有N个人手持面值50元的钱币,另有N个人手持面值100元的钱币。假设售票处在开始售票时没有零钱。试问这2N个球迷有多少种排队方式可使售票处不致出现找不出钱的尴尬局面。题目描述...原创 2019-10-23 16:21:15 · 311 阅读 · 0 评论 -
codeforces gym101981 Prime Game 欧拉筛+因数分解
https://codeforces.com/gym/101981题目大意:思路:考虑位置ppp(下标从111开始)上的一个质因数的对答案的贡献,列出所有的区间,不难发现包含位置ppp的区间有:(n−p+1)∗p(n-p+1)*p(n−p+1)∗p个,现在考虑如何去重,假设该质因数上一次出现的位置是qqq,那么同时包含位置q、pq、pq、p的区间有:(n−p+1)∗q(n-p+1)*q(n−...原创 2019-10-09 17:11:39 · 1091 阅读 · 0 评论 -
hihocoder 1298 欧拉函数
https://hihocoder.com/problemset/problem/1298描述小Hi和小Ho有时候会用密码写信来互相联系,他们用了一个很大的数当做密钥。小Hi和小Ho约定了一个区间[L,R],每次小Hi和小Ho会选择其中的一个数作为密钥。小Hi:小Ho,这次我们选[L,R]中的一个数K。小Ho:恩,小Hi,这个K是多少啊? 小Hi:这个K嘛,不如这一次小Ho...原创 2019-01-29 19:27:37 · 309 阅读 · 0 评论 -
HDU 1023 大数卡特兰数
http://acm.hdu.edu.cn/showproblem.php?pid=1023As we all know the Train Problem I, the boss of the Ignatius Train Station want to know if all the trains come in strict-increasing order, how many orde...原创 2019-03-06 00:22:52 · 195 阅读 · 0 评论 -
codeforces gym102059 Fractions 简单数学
https://codeforces.com/gym/102059/problem/H题目大意:给出A、B、C、DA、B、C、DA、B、C、D(范围在[1,1012][1,10^{12}][1,1012]),xxx满足A<=x<=BA<=x<=BA<=x<=B,yyy满足C<=y<=DC<=y<=DC<=y<=D,求出满足在...原创 2019-10-04 15:28:47 · 193 阅读 · 0 评论 -
CSU 2259 King's Colors 二项式反演
http://acm.csu.edu.cn:20080/csuoj/problemset/problem?pid=2259DescriptionFar, far away, there is the mystical Kingdom of Trees (more formally, "Royal Commonwealth of Connected Undirected Simple Acy...原创 2019-05-15 18:08:29 · 464 阅读 · 0 评论 -
HDU 6441 费马大定理+本原勾股数
http://acm.hdu.edu.cn/showproblem.php?pid=6441people in USSS love math very much, and there is a famous math problem .give you two integers n ,a ,you are required to find 2 integers b ,c such that ...原创 2019-01-29 21:06:01 · 298 阅读 · 0 评论 -
CodeForces 735D 哥德巴赫猜想
http://codeforces.com/problemset/problem/735/DMr. Funt now lives in a country with a very specific tax laws. The total income of mr. Funt during this year is equal to n (n ≥ 2) burles and the amount...原创 2019-01-29 20:42:03 · 270 阅读 · 0 评论 -
HYSBZ - 2818 欧拉筛
https://www.lydsy.com/JudgeOnline/problem.php?id=2818给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对. Input一个整数NOutput如题Sample Input4Sample Output4Hint hint对于样例(2,2),(2,4),(...原创 2019-01-29 20:19:51 · 156 阅读 · 0 评论 -
FZU 1759 欧拉降幂
http://acm.fzu.edu.cn/problem.php?pid=1759Given A,B,C, You should quickly calculate the result of A^B mod C. (1<=A,C<=1000000000,1<=B<=10^1000000).InputThere are multiply testcases. ...原创 2019-01-29 19:48:40 · 312 阅读 · 0 评论 -
HDU 2973 威尔逊定理
http://acm.hdu.edu.cn/showproblem.php?pid=2973The math department has been having problems lately. Due to immense amount of unsolicited automated programs which were crawling across their pages, the...原创 2019-01-29 19:17:56 · 205 阅读 · 0 评论 -
HDU 5391 威尔逊定理
http://acm.hdu.edu.cn/showproblem.php?pid=5391Tina Town is a friendly place. People there care about each other.Tina has a ball called zball. Zball is magic. It grows larger every day. On the first...原创 2019-01-29 19:04:35 · 244 阅读 · 0 评论 -
直线、V形线、Z形线划分平面问题
求n条线(直线、V形、Z形)划分平面可得到的最大平面数。(1)直线划分平面:当n=0时,f(0)=1;当n=1时,f(1)=2;当n=2时,f(2)=4,此时多了一个交点;当n=3时,f(3)=7,此时多了两个交点;……当划第n条线的时候,最优的情况一定是这条直线跟其他的直线均有交点,共n-1个交点,可贡献n个面,因此f(n)=f(n-1)+n。由这个递推公式可得到通项:f(n)=n(n+...原创 2019-01-22 21:18:43 · 919 阅读 · 0 评论 -
CodeForces 1100C NN and the Optical Illusion 数学
http://codeforces.com/problemset/problem/1100/CNN is an experienced internet user and that means he spends a lot of time on the social media. Once he found the following image on the Net, which aske...原创 2019-01-27 12:26:06 · 760 阅读 · 0 评论 -
CodeForces 1076B Divisor Subtraction 思维
http://codeforces.com/problemset/problem/1076/BYou are given an integer number nn. The following algorithm is applied to it:if n=0, then end algorithm; find the smallest prime divisor dd of n; s...原创 2019-01-27 11:58:54 · 297 阅读 · 0 评论 -
洛谷 P1403 [1,n]所有数的约数个数之和
https://www.luogu.org/problemnew/show/P1403题目描述科学家们在Samuel星球上的探险得到了丰富的能源储备,这使得空间站中大型计算机“Samuel II”的长时间运算成为了可能。由于在去年一年的辛苦工作取得了不错的成绩,小联被允许用“Samuel II”进行数学研究。小联最近在研究和约数有关的问题,他统计每个正数N的约数的个数,并以f(N)来表...原创 2019-02-15 20:54:32 · 1792 阅读 · 0 评论 -
洛谷 1029
https://www.luogu.org/problemnew/show/P1029题目描述输入2个正整数x0,y0(2≤x0<100000,2≤y0<=1000000)求出满足下列条件的P,Q的个数条件: P,Q是正整数 要求P,Q以x0为最大公约数,以y0为最小公倍数. 试求:满足条件的所有可能的2个正整数的个数.输入输出格式输入格式:...原创 2019-02-15 21:24:37 · 505 阅读 · 0 评论 -
洛谷 P1217 回文素数
https://www.luogu.org/problemnew/show/P1217题目描述因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数。写一个程序来找出范围[a,b](5 <= a < b <= 100,000,000)( 一亿)间的所有回文质数;输入输出格式输入格式: 第 1 行: 二个整数 a ...原创 2019-02-10 17:12:12 · 621 阅读 · 0 评论 -
CSU 2145 卷积
http://acm.csu.edu.cn:20080/csuoj/problemset/problem?pid=2145DescriptionInput共2行。 第一行包含两个正整数N,K。 下面一行N个非负整数,第i个数表示f_i。 1≤N≤10,000,1≤K≤10,0≤f_i≤100,000Output共一行,第i个数表示g_i mod 1000000009。S...原创 2019-05-15 16:26:23 · 322 阅读 · 0 评论 -
洛谷P1582 __builtin_popcount 的用法 贪心
https://www.luogu.org/problemnew/show/P1582题目描述一天,CC买了N个容量可以认为是无限大的瓶子,开始时每个瓶子里有1升水。接着~~CC发现瓶子实在太多了,于是他决定保留不超过K个瓶子。每次他选择两个当前含水量相同的瓶子,把一个瓶子的水全部倒进另一个里,然后把空瓶丢弃。(不能丢弃有水的瓶子)显然在某些情况下CC无法达到目标,比如N=3,K=1。...原创 2019-03-29 11:34:41 · 548 阅读 · 0 评论