数论
文章平均质量分 57
lao_kai_ybqy
这个作者很懒,什么都没留下…
展开
-
完全图(二分,图论)
完全图题目链接在图论的数学领域,完全图是一个简单的无向图,其中每对不同的顶点之间都恰连有一条边相连。————百度百科现在给定一个包含 n 个顶点的完全图,你可以删掉图中的一些边,但是删掉的边不能超过m 条,请问删去边之后的图最多能有几个连通分量?输入描述:第一行包含一个数字 {T}T,表示测试数据组数接下来 T 行,每行两个正整数n,m,中间用空格隔开输出描述:输出 T 行,每行一个整数表示答案输入25 15 5输出12备注:1≤T≤10000,1≤n,m≤1018算法分原创 2021-03-17 21:44:04 · 3411 阅读 · 0 评论 -
奇怪的背包问题增加了(贪心,数论)
奇怪的背包问题增加了题目链接算法分析代码实现#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>#define x first#define y secondusing namespace std;const int maxn=1e5+5;typedef pair<int ,int > PII;int vis[maxn];int原创 2021-03-17 17:51:16 · 85 阅读 · 0 评论 -
垒骰子(矩阵快速幂)
垒骰子题目链接赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥!我们先来规范一下骰子:1 的对面是 4,2 的对面是 5,3 的对面是 6。假设有 m 组互斥现象,每组中的那两个数字的面紧贴在一起,骰子就不能稳定的垒起来。atm想计算一下有多少种不同的可能的垒骰子方式。两种垒骰子方式相同,当且仅当这两种方式中对应高度的骰子的对应数字的朝向都相同。由于方案数可能过多,请输出模 109+原创 2021-03-15 17:21:57 · 226 阅读 · 0 评论 -
组合数问题(组合数,二维前缀和)
组合数问题题目链接数据范围n,m≤2000,2≤k≤21,t≤104输入样例:1 23 3输出样例:1算法分析这是一道组合数的问题,由于有多组数据,我们可以先处理组合数的问题,运用递推C[i][j]=C[i-1][j]+C[i-1][j-1] 来求出每一个组合数的数量如果说可以整除k的话我们存储组合数的时候就直接储存余数,然后再处理前缀和的时候我们将余数为0的点初值赋为1,然后二维前缀和进行加和.求出nm之前余数为0的点的总和.代码实现#include<iostream原创 2021-03-07 22:49:06 · 81 阅读 · 0 评论 -
最大比例(数论,简化分数)
最大比例题目链接X星球的某个大奖赛设了 M 级奖励。每个级别的奖金是一个正整数。并且,相邻的两个级别间的比例是个固定值。也就是说:所有级别的奖金数构成了一个等比数列。比如:16,24,36,54,其等比值为:3/2。现在,我们随机调查了一些获奖者的奖金数。请你据此推算可能的最大的等比值。输入格式第一行为数字 N ,表示接下的一行包含 N 个正整数。第二行 N 个正整数 Xi,用空格分开,每个整数表示调查到的某人的奖金数额。输出格式一个形如 A/B 的分数,要求 A、B 互质,表示可原创 2021-03-03 16:21:39 · 120 阅读 · 1 评论 -
五指山(扩展欧几里得)
五指山题目链接大圣在佛祖的手掌中。我们假设佛祖的手掌是一个圆圈,圆圈的长为 n,逆时针记为:0,1,2,…,n−1,而大圣每次飞的距离为 d。现在大圣所在的位置记为 x,而大圣想去的地方在 y。要你告诉大圣至少要飞多少次才能到达目的地。注意:孙悟空的筋斗云只沿着逆时针方向翻。输入格式有多组测试数据。第一行是一个正整数 T,表示测试数据的组数;每组测试数据包括一行,四个非负整数,分别为如来手掌圆圈的长度 n,筋斗所能飞的距离 d,大圣的初始位置 x 和大圣想去的地方 y。输出格式对于每原创 2021-03-02 23:31:11 · 142 阅读 · 0 评论 -
聪明的燕姿(约数和,爆搜)
聪明的燕姿题目链接城市中人们总是拿着号码牌,不停寻找,不断匹配,可是谁也不知道自己等的那个人是谁。可是燕姿不一样,燕姿知道自己等的人是谁,因为燕姿数学学得好!燕姿发现了一个神奇的算法:假设自己的号码牌上写着数字 S,那么自己等的人手上的号码牌数字的所有正约数之和必定等于 S。所以燕姿总是拿着号码牌在地铁和人海找数字(喂!这样真的靠谱吗)。可是她忙着唱《绿光》,想拜托你写一个程序能够快速地找到所有自己等的人。输入格式输入包含 k 组数据。对于每组数据,输入包含一个号码牌 S。输出格式对于原创 2021-03-02 21:40:01 · 234 阅读 · 0 评论 -
X的因子链(欧拉筛法,组合数)
X的因子链题目链接输入正整数 X,求 X 的大于 1 的因子组成的满足任意前一项都能整除后一项的严格递增序列的最大长度,以及满足最大长度的序列的个数。输入格式输入包含多组数据,每组数据占一行,包含一个正整数表示 X。输出格式对于每组数据,输出序列的最大长度以及满足最大长度的序列的个数。每个结果占一行。数据范围1≤X≤220输入样例:23410100输出样例:1 11 12 12 24 6算法分析一个数能分解成质因子乘积的形式,而每乘一个就是递增的,所以我们只需要原创 2021-03-02 16:42:52 · 179 阅读 · 0 评论 -
程序设计:蒜头君的数轴(gcd前缀和)
程序设计:蒜头君的数轴题目链接今天蒜头君拿到了一个数轴,上边有 nn 个点,但是蒜头君嫌这根数轴不够优美,想要通过加一些点让它变优美,所谓优美是指考虑相邻两个点的距离,最多只有一对点的距离与其它的不同。蒜头君想知道,他最少需要加多少个点使这个数轴变优美。输入格式输入第一行为一个整数 n(1≤n≤105 ),表示数轴上的点数。第二行为 n 个不重复的整数 x1,x2,…,xn(-109<= xi<=109) 表示这些点的坐标,点坐标乱序排列。输出格式输出一行,为一个整数,表示蒜头君原创 2021-02-26 16:14:24 · 162 阅读 · 0 评论 -
波动数列(数论推导,dp)
波动数列题目链接观察这个数列:1 3 0 2 -1 1 -2 …这个数列中后一项总是比前一项增加2或者减少3,且每一项都为整数。栋栋对这种数列很好奇,他想知道长度为 n 和为 s 而且后一项总是比前一项增加 a 或者减少 b 的整数数列可能有多少种呢?输入格式共一行,包含四个整数 n,s,a,b,含义如前面所述。输出格式共一行,包含一个整数,表示满足条件的方案数。由于这个数很大,请输出方案数除以 100000007 的余数。数据范围1≤n≤1000,−109≤s≤109,1≤a,原创 2021-02-24 11:51:11 · 261 阅读 · 0 评论 -
四平方和(二分,模拟)
四平方和题目链接四平方和定理,又称为拉格朗日定理:每个正整数都可以表示为至多 4 个正整数的平方和。如果把 0 包括进去,就正好可以表示为 4 个数的平方和。比如:5=02+02+12+227=12+12+12+22对于一个给定的正整数,可能存在多种平方和的表示法。要求你对 4 个数排序:0≤a≤b≤c≤d并对所有的可能表示法按 a,b,c,d 为联合主键升序排列,最后输出第一个表示法。输入格式输入一个正整数 N。输出格式输出4个非负整数,按从小到大排序,中间用空格分开。数据原创 2021-02-23 16:53:00 · 86 阅读 · 0 评论 -
买不到的数目(数论)
买不到的数目题目链接小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买 10 颗糖。你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17。大于17的任何数字都可以用4和7组合出来。本题的要求就是在已知两个包装的数量时,求最大不能组合出的数字。输入格式两个正整数 n,m,表示每种包装中糖的颗数。输出格式一个正整数,表示最大不能买到的糖数。数据范围原创 2021-02-22 16:29:48 · 134 阅读 · 0 评论 -
计算系数(组合数)
计算系数给定一个多项式(ax+by)k,请求出多项式展开后xnym项的系数。输入格式共一行,包含 5 个整数,分别为 a,b,k,n,m,每两个整数之间用一个空格隔开。输出格式输出共 1 行,包含一个整数,表示所求的系数,这个系数可能很大,输出对10007 取模后的结果。数据范围0≤n,m≤k≤1000,n+m=k,0≤a,b≤106输入样例:1 1 3 1 2输出样例:3算法分析考察组合数的问题xnym 的系数是 Ckn anbm.Ckn=k! / n! *(k-n)!.代原创 2021-02-18 23:20:01 · 2205 阅读 · 0 评论 -
组合数模板(四种情况)
组合数的性质从n个不同元素中,任取m(m≤n)个元素并成一组,叫做从n个不同元素中取出m个元素的一个组合;从n个不同元素中取出m(m≤n)个元素的所有组合的个数,叫做从n个不同元素中取出m个元素的组合数。C(m,n)=n! / ( (n-m)! * m! ) (m≤n)C(m,n)= C(n-m,n)C(m,n)=C(m-1,n-1)+C(m-1,n)C(m,n原创 2021-02-21 22:07:12 · 508 阅读 · 1 评论 -
牛客小白月赛1 I(逆元,卡特兰数)
あなたの蛙が帰っています题目链接这道题是考卡特兰数的题目描述输入描述:第一行一个数 T ,表示蛙蛙有 T 组询问。接下去 T 行,每行一个正整数 N, 表示目的地的个数(入栈元素个数)。1≤T≤2001≤N≤10^5输出描述输出共 TT 行,每行一个答案,格式形如Case #1: 3 ,具体可见样例。答案可能较大,请对 998244353 取模后输出。输入样式33924输出样式Case #1: 3Case #2: 3432Case #3: 508887030算法分析原创 2020-11-29 17:12:01 · 168 阅读 · 0 评论 -
素数判定
素数判定题目链接: 点这里.对于表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括x,y)(-39<=x<y<=50),判定该表达式的值是否都为素数。Input输入数据有多组,每组占一行,由两个整数x,y组成,当x=0,y=0时,表示输入结束,该行不做处理。Output对于每个给定范围内的取值,如果表达式的值都为素数,则输出"OK",否则请输出“Sorry”,每组输出占一行。Sample Input0 10 0Sample OutputOK题目分析素数原创 2020-07-21 16:40:17 · 703 阅读 · 0 评论 -
二分法模板
二分法模板分三部分 判断函数,二分函数,主函数;定义数据位置。。。。。。判定函数bool judge(int mid){ int a//定义初值 if(满足题意) return true; else return false;}二分函数int solve(){ int l,r,mid;//根据题目定初值 while(l<r) { mid=(l+r)/2;//根据题意改变,有时为mid=(l+r+1)/2 if(judge(mid)) l=mid;//根据原创 2020-07-15 23:16:19 · 194 阅读 · 0 评论 -
Pie
PieMy birthday is coming up and traditionally I’m serving pie. Not just one pie, no, I have a number N of them, of various tastes and of various sizes. F of my friends are coming to my party and each of them gets a piece of pie. This should be one piece o原创 2020-07-15 23:04:06 · 130 阅读 · 0 评论 -
区间求和
数组区间求和给定a1……an一共N个整数,有M次查询,每次需要查询区间【L,R】的和。题目描述第一行包含两个数:N,M第二行输入N个整数接下来的M行,每行有两个整数,L R,中间用空格隔开,数据保证L<=R1<=N,M<=1e5,-1e5<=ai<=1e5输出共M行,即每次查询的区间和示例输入:5 31 2 3 4 51 33 34 5输出:639题目分析这个要考虑的是时间复杂度,我开始用的是双重循环,查询一次循环一次,然后循环套循环,原创 2020-07-09 23:15:12 · 3260 阅读 · 2 评论 -
牛牛和牛可乐的赌约(逆元)
牛牛和牛可乐的赌约题目链接逆元的入门题#include<iostream>#include<cstdio>#include<string>#include<math.h>using namespace std;typedef long long ll;const int mod=1e9+7;ll ksm(ll a,ll b){ ll res=1; if(b==0) return 0; while(b原创 2020-12-11 11:17:39 · 137 阅读 · 0 评论 -
二分法求零点
二分法求函数的零点题目链接先来个简单的题目有函数:f(x) = x5 - 15 * x4+ 85 * x3- 225 * x2+ 274 * x - 121已知 f(1.5) > 0 , f(2.4) < 0 且方程 f(x) = 0 在区间 [1.5,2.4] 有且只有一个根,请用二分法求出该根。输出该方程在区间[1.5,2.4]中的根。要求四舍五入到小数点后6位。就是用f的函数求值来判断是否到达零点.#include<iostream>#include<原创 2020-12-11 10:20:50 · 1850 阅读 · 0 评论 -
二分 查找最接近的元素
查找最接近的元素题目链接在一个非降序列中,查找与给定值最接近的元素。输入:第一行包含一个整数n,为非降序列长度。1 <= n <= 100000。第二行包含n个整数,为非降序列各元素。所有元素的大小均在0-1,000,000,000之间。第三行包含一个整数m,为要询问的给定值个数。1 <= m <= 10000。接下来m行,每行一个整数,为要询问最接近元素的给定值。所有给定值的大小均在0-1,000,000,000之间。输出:m行,每行一个整数,为最接近相应给定值的原创 2020-12-11 09:33:15 · 646 阅读 · 0 评论 -
进制转换(任意进制转换)
牛客小白月赛20 F进制转换算法分析详细分析进制转换代码实现#include<iostream>#include<cstring>#include<math.h>#include<vector>#include<string>using namespace std;string n;int s,k;vector<int > a,res;int main(){ cin>>n; ci原创 2021-01-16 19:37:49 · 124 阅读 · 0 评论 -
数的范围(二分模板)
数的范围题目链接给定一个按照升序排列的长度为n的整数数组,以及 q 个查询。对于每个查询,返回一个元素k的起始位置和终止位置(位置从0开始计数)。如果数组中不存在该元素,则返回“-1 -1”。输入格式第一行包含整数n和q,表示数组长度和询问个数。第二行包含n个整数(均在1~10000范围内),表示完整数组。接下来q行,每行包含一个整数k,表示一个询问元素。输出格式共q行,每行包含两个整数,表示所求元素的起始位置和终止位置。如果数组中不存在该元素,则返回“-1 -1”。数据范围1≤n原创 2021-02-06 13:00:54 · 75 阅读 · 0 评论 -
均分纸牌(贪心)
均分纸牌题目链接有N堆纸牌,编号分别为 1,2,…,N。每堆上有若干张,但纸牌总数必为 N 的倍数。可以在任一堆上取若干张纸牌,然后移动。移牌规则为:在编号为 1 的堆上取的纸牌,只能移到编号为 2 的堆上;在编号为 N 的堆上取的纸牌,只能移到编号为 N−1 的堆上;其他堆上取的纸牌,可以移到相邻左边或右边的堆上。现在要求找出一种移动方法,用最少的移动次数使每堆上纸牌数都一样多。例如 N=4,4 堆纸牌数分别为:(9,8,17,6)。移动 3 次可达到目的:从第三堆取四张牌放入第四堆,各原创 2021-02-05 18:12:13 · 164 阅读 · 0 评论 -
美素数
美素数原题链接小明对数的研究比较热爱,一谈到数,脑子里就涌现出好多数的问题,今天,小明想考考你对素数的认识。 问题是这样的:一个十进制数,如果是素数,而且它的各位数字和也是素数,则称之为“美素数”,如29,本身是素数,而且2+9 = 11也是素数,所以它是美素数。 给定一个区间,你能计算出这个区间内有多少个美素数吗?Input第一行输入一个正整数T,表示总共有T组数据(T <= 10000)。接下来共T行,每行输入两个整数L,R(1<= L <= R <= 10原创 2020-07-21 16:27:37 · 196 阅读 · 0 评论 -
素数筛
素数筛将每个素数都放进一个数组中,如果题目多次输入,就要用素数筛来直接一次判断const int maxn=1e7;int pri[maxn];int num[maxn];void Prime(){ int t=0;//用来计数 memset(num,0,sizeof(num); memset(pri,0,sizeof(pri); for (int i=2;i<=maxn;i++) { if (!num[i]) {原创 2020-07-20 15:08:31 · 73 阅读 · 0 评论 -
货仓选址(最短距离和)
货仓选址在一条数轴上有 N 家商店,它们的坐标分别为 A1~AN。现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。输入格式第一行输入整数N。第二行N个整数A1~AN。输出格式输出一个整数,表示距离之和的最小值。数据范围1≤N≤100000,0≤Ai≤40000输入样例:46 2 9 1输出样例:12算法分析数轴上一个点到其他点距离之和最小问题,这个点就是中位数具体证明过程代原创 2021-02-05 18:17:35 · 824 阅读 · 0 评论 -
糖果传递(数学推导)
糖果传递有n个小朋友坐成一圈,每人有a[i]个糖果。每人只能给左右两人传递糖果。每人每次传递一个糖果代价为1。求使所有人获得均等糖果的最小代价。输入格式第一行输入一个正整数n,表示小朋友的个数。接下来n行,每行一个整数a[i],表示第i个小朋友初始得到的糖果的颗数。输出格式输出一个整数,表示最小代价。数据范围1≤n≤1000000,0≤a[i]≤2×109,数据保证一定有解。输入样例:41254输出样例:4算法分析这是利用数学推导的一道题,我们先找到之间的关系,原创 2021-02-05 17:50:21 · 857 阅读 · 0 评论 -
Audio(到达三点距离相等的点)
牛客小白月赛21 A算法分析到达三点距离相等为三角形的外心,这篇是原理求三角形外心代码实现#include<iostream>#include<math.h>using namespace std;int main(){ double x[4],y[4]; for(int i=1;i<=3;i++) cin>>x[i]>>y[i]; double A1,A2,B1,B2,C1,C2; d原创 2021-01-17 22:19:24 · 269 阅读 · 0 评论 -
球的表面积(数论题)
牛客小白月赛20 C 球的表面积题目链接算法分析这题是个纯数论题,首先我们知道外离和内含的状态是好求的,难点在相交,相交需要减去两个互相融入的部分,以相交面为切面那么第一个球融入第二个球的部分就是球冠.球冠是指一个球面被平面所截后剩下的曲面。截得的圆面是底,垂直于圆面的直径被截得的部分是高。然后还需要知道球冠的表面积怎么求是2* π * r1 * h1h1等于r1*(1-cos∠1);角公式2abcos∠1=a* a+ b* b-c* cc为∠1对的边.所以就是cos∠1=(r1*原创 2021-01-15 23:06:33 · 252 阅读 · 0 评论