ACM_数论
长颜草
无话可说
展开
-
EOJ #3461 在哈尔滨的寒风中【规律】
题目链接题目意思给你一个n*m的棋盘,按照象棋中的马走日的方法,计算在这个棋盘中存在多少的对点。解题思路我们可以发现当棋盘的大小达到3*4的时候,棋盘中的每个点都可以走到,那么3 * 4的时候,它们的对点数就是(n * m) * (n * m-1)/2。 当棋盘大小为3*3时,除了中间那个点无法到达以外,其他的点都可以到达,那么对点数就是C82。 当棋盘大小为2*m或者n*2的时候我们就要考虑原创 2017-12-09 16:17:10 · 336 阅读 · 0 评论 -
HDU 6127 Hard challenge
题目链接题目意思平面上有(n)个点,已知每个点的坐标为((x,y)),以及该点的权值为(val),任意两点之间可以连接成一条不经过原点的边,该边的权值是两个端点的权值的乘积。现在要求画一条经过原点的直线,定义这条直线的权值为这条直线穿过的所有线段的值的和,问权值的最大值。解题思路我们将所有的点按照极角排序,分别散落在y轴的左右两侧,y轴左端的点的和为suml,右端的点的和为sumr,则权值和为su原创 2017-08-17 09:24:00 · 587 阅读 · 0 评论 -
HDU 6154 CaoHaha's staff
题目链接题目意思给你一个面积,让你求围成这个面积最少需要几条边,其中边的连线只能是在坐标轴上边长为1的的线或者是两个边长为1 的线的对角线。解题思路这其实就是一个找规律的题,我们列举前几个会发现,增加斜边,每增加一条边面积就能增加1.5,然后根据你所列出的边数跟面积的关系去找规律,其中每次能被4整除的数都能形成一个菱形,那是边数确定面积最大的。代码部分#include <bits/stdc++.h原创 2017-08-19 19:09:32 · 531 阅读 · 0 评论 -
HDU 2212 DFS【思维】
题目链接题目意思定义如果一个数的每位数上的阶乘和等于这个数,那么就称这个数为DFS数。例如145=1!+4!+5!,那么145就是一个DFS数。 现在要你输出区间【1~2147483647】的所有DFS数。解题思路我们可以发现这样的数肯定不会大于100000,那么我们就随意取一个大于100000的数作为上限,遍历1到这个上限的所有数,输出满足条件的数即可。代码部分#include <iostre原创 2017-11-26 20:11:49 · 308 阅读 · 0 评论 -
蓝桥杯 数字游戏【规律】
题目链接题目意思解题思路我们看一下这个样例的数据1、2、4、7、 11、 3、 9、 3、 11、 7、 4、 2、 1、 1、 2、 4。。。三个人那么每隔两个数就是栋栋说的数,那就是1、 7、 9、 7、 1、 4。。。我们可以看出它中间是递增增加的。 【1+(1+2+3)】%k=7 【7+(4+5+6)】%k=9 【9+(7+8+9)】%k=7 那么我...原创 2018-03-28 20:50:20 · 456 阅读 · 0 评论 -
HDU 6168 Numbers
题目链接题目意思给你两个序列A,B,序列B中的数是A中任意两个数的和。现在给出你A,B序列混在一起的数,让你找出A序列输出。解题思路B序列中的数是A中任意两个数的和,那么给定的序列中最小的两个数一定是A序列中的,最大的两个数一定是B序列中的,现在就根据A中的两个数依次找,两数相加的和是B中的,就用map,每次将两数的和在map中除去,剩余的一个加入A中,再一次往后推即可。代码部分#include原创 2017-08-22 19:30:40 · 391 阅读 · 0 评论 -
HDU 6324 Grab The Tree【异或】
题目链接题目意思小Q和小T要玩一个游戏,现在有一颗节点数为N的树,每个节点有一个权值。现在小Q可以选择任意不相邻的节点,小Q选完以后剩余的所有节点都归小T。现在小Q和小T的分数就是所选的所有节点的权异或和,谁的分数高谁就赢了,如果分数相同就是平局。谁赢输出谁,平局输出D。解题思路根据异或的性质Q异或T会等于全部异或和。所以Q只要取异或总和最高为为1的那部分。剩下肯定比他小。但如果全...原创 2018-07-31 11:15:34 · 317 阅读 · 0 评论 -
HDU 6140 Hybrid Crystals
题目链接题目链接搞得好像阅读理解,就是给定一个序列。序列的每个值都有属性,N代表可加可减,L代表只能加,D代表只能减,当然这些都可以用或者不用。给定一个k,问k是否可能用这个序列构成。解题思路这道题就是固定左右的区间,不断地扩展,然后判断k是否在这个区间内就可。 感觉这道题就是阅读理解,给的式子也没啥用,关键竟然能够水过,根本就没有深究,考虑的不够严谨,竟然还有这种操作,表示很心累。代码部分#i原创 2017-08-17 20:08:36 · 451 阅读 · 0 评论 -
PAT L2-009 抢红包【快排】
题目链接题目意思给一个数n表示有n个人现在在玩抢红包游戏。给出每个编号的人发红包的个数,后边给出抢到红包的人的编号和抢到的红包的金额。现在要按照收入金额从高到低递减的顺序输出吗,每个人的编号和收入金额。如果收入金额相同按照抢到的红包个数递减输出,如果还有相同按照个人编号递增输出。解题思路首先题目要求按照金额递减输出,而且如果并列了还要按照抢到的红包个数递减输出,那么我们...原创 2018-03-05 19:21:40 · 709 阅读 · 0 评论 -
STL排序函数
STL提供的Sort算法所有Sort算法介绍所有的sort算法的参数都需要输入一个范围[begin,end)。如果你需要自己定义比较函数,你可以把你定义好的仿函数作为参数传入。每种算法都支持传入比较函数。以下是所有STL_sort算法函数名称: 函数名 功能描述 sort 对给定区间的所有元素进行排序 stable_sort 对给定区间所有元素进行稳定排序 partial_原创 2017-08-12 12:30:57 · 1366 阅读 · 2 评论 -
A + B Problem II
HDU 1002 :*A + B Problem II*Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Problem Description I have a very simple problem for you. Given two integers A原创 2017-07-14 14:22:59 · 436 阅读 · 0 评论 -
矩阵快速幂详解
矩阵快速幂在讲矩阵快速幂之前,先引入整数快速幂的概念。 整数快速幂为了引出矩阵快速幂,以及说明快速幂算法的好处,我们可以先求整数的幂。如果现在要算X^8:则X*X*X*X*X*X*X*X*X 按照寻常思路,一个一个往上边乘,则乘法运算进行7次。用(X*X)*(X*X)*(X*X)*(X*X)这种求法,先进行乘法得X^2,然后对X^2再执行三次乘法,这样去计算则乘法运算执行4次。已经比七次少。所以为了原创 2017-08-01 20:34:07 · 2535 阅读 · 4 评论 -
HDU 5690 All X【快速幂】
题目链接题目意思给你四个数x,m,k,c,分别代表有m个x,现在让m个x对k取模,如果结果等于c就输出Yes,否则输出No。解题思路由于题上给出的m值很大,所以用普通方法直接写的话肯定会超时。现在我们就转换一种方法。如果(10^m-1)/ 9*x是不是就可以代表m个x。那么我们现在让(10^m-1)/ 9 * x对k取模与c进行比较即可。那么我们可以用快速幂来求10^m。代码部分#include原创 2017-11-26 19:53:57 · 215 阅读 · 0 评论 -
HDU 6070 Dirt Ratio
题目链接题目意思给出n个数,求任意区间【left,right】的AC率中最小的那个值。 区间AC率=distinct【left,right】/(right-left+1) distinct的中文意思是唯一的,特殊的,表示区间【left,right】中不同数字的个数解题思路我们求AC率,它无非就是0~1之间的一个数字,因此采用二分答案的方法求解。 现在假设答案为mid,则 distinct【le原创 2017-08-08 10:31:29 · 259 阅读 · 0 评论 -
HDU 4004 The Frog's Games【二分查找】
题目链接题目意思现在有一条宽为L的河流,从河的一岸到另一边有一条直线上有n个石头,现在青蛙从一边往另一边跳,最多跳m步,问你青蛙跳到另一边的最远的一步的距离是多少。解题思路我们将石头之间和石头和河岸的距离存储在数组中,然后用二分查找的方法去查询,在限制的步数中,青蛙能够跳的最远的距离。代码部分#include <iostream>#include &l...原创 2018-03-24 20:45:50 · 196 阅读 · 0 评论 -
STL之binary_search的用处
STL之binary_search概括大家都知道,二分查找是在排序后的基础上来对其进行查找操作。所以在使用bianry_search的时候,需要将要查找的容器进行排序。说明在这里说明两种,一种是对结构体的二分操作,一种是对数组进行二分操作,在操作之前,肯定是需要对结构体进行排序,如何排序,这里就用到了STL里面很实用的sort函数。特别强调:排序的必须是从小到大vector#include <ios原创 2017-08-01 20:39:06 · 1985 阅读 · 2 评论 -
二分查找详解
二分查找算法概括二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后原创 2017-08-01 20:36:53 · 371 阅读 · 0 评论 -
错排
错排:n封信放入n个信封,要求全部放错,共有多少种放法,记n个元素的错排总数为f(n)。现在有n封信和n个信封,如果所有的信都装错了信封,求共有多少种错误方法。当n=1和2时,易知道,假设F(n-1)和F(n-2)已经知道,重点分析下边的情况:1、当有n封信的时候,前边n-1封信或者n-2封信错装。2、前者,对于每一种错装,可以从前n-1封信中任选一封与第n封交换,那么就全部错装了。这种情况共有F(原创 2017-07-23 09:00:05 · 414 阅读 · 0 评论 -
HDU 1465 不容易系列之一
题目链接题目意思给你n个信封和n封信,要求将全部的信全部装错信封,问最多有多少种装法解题思路这是一个典型的错排问题,它用到一个结论F(n)=(n-1)*(F(n-1)+F(n-2))。代码部分#include <iostream>#include <cstdio>using namespace std;long long f[25];void PX(){ f[1]=0,f[2]=1原创 2017-07-23 08:58:29 · 346 阅读 · 0 评论 -
FZU_2205 据说题目很水
题目链接题目意思给你n个点,让你在这n个点之间加边,但是不管咋加都不能形成三个点的直接相通环,让求最大的边数。解题思路开始做这道题的时候以为是找规律题,后来才明白这是一个完全二分图的结论题。要求最大的边数还不能出现三个边的环,我们可以将n个点分成两个顶点集,让两个互不相交的顶点集中的点两两相连,同一集合中的任意点不能相连,得到最大的边数。也就是最大边数=n/2/*(n-n/2)。代码部分#inclu原创 2017-07-23 08:36:47 · 308 阅读 · 0 评论 -
二分图
二分图二分图又称作二部图,是图论中的一种特殊模型。设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G是一个二分图。定义 简而言之,就是顶点集V可分割为两个互不相交的子集,并且图中每条边依附的两个顶点都分属于这两个互不相交的子集,两个子集内的顶点不相邻。辨析区原创 2017-07-23 08:42:42 · 865 阅读 · 0 评论 -
省赛 最小秘钥
时间限制: 1 Sec 内存限制: 128 MB提交: 65 解决: 39[提交][状态][讨论版]题目描述在中国近代史上,暂编***军绝对是一支能打硬仗,大名鼎鼎的行动部队。“一二八”上海抗战,暂编***军就曾打得小日本四易主帅。*月**号,暂编***军计划组成一个行动大队,派出N名队员潜伏在***地,发动一次大规模的巷战行动。每名队员有自己的代号Ai,为了更好的配合原创 2017-05-31 19:10:43 · 295 阅读 · 0 评论 -
蓝桥杯 核桃的数量【最小公倍数】
题目链接题目意思给你三个数,让你求这三个数的最小公倍数解题思路用辗转相除法求最大公约数,两数的乘积除两数的最大公约数就得到了最小公倍数。代码部分#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>#include...原创 2018-03-26 20:42:03 · 256 阅读 · 0 评论 -
HDU_【2017 Multi-University Training Contest 1】——1001 Add More Zero
题目链接题目意思题目意思就是给你一个数n让你计算2^n的值,转化为科学计数法是10的几次方,输出这个次方数就行。解题思路这就是一个数学公式就可以解决了。求log10(2^m-1)向下取整。代码部分#include <iostream>#include <stdio.h>#include <math.h>using namespace std;int main(){ int m,k,t=原创 2017-07-25 20:15:32 · 323 阅读 · 0 评论 -
HDU 6124 Euler theorem
题目链接题目意思有两个数a,b,计算a mod b。现在忘记了b,只知道a,问你可能的结果有多少种。解题思路这就是一道规律题,我们观察可以发现我们取模的结果要不是正好除尽为0,或者比他大余它本身,还有就是余下的不同个数,但是你会发现不管是什么数,它的结果总是自身的一半加上一或者二。因为奇数的时候要加上它自身的一半那个数和它自身那个数。偶数的时候直接加上它自身就够了。代码部分#include <io原创 2017-08-15 19:23:57 · 462 阅读 · 0 评论 -
HDU 6105 Gameia
题目链接题目意思Bob和Alice玩游戏,要将一颗没有颜色的树进行涂色。Alice先走,图白色,Bob图黑色,并且可以将与它直接相连的点染成黑色,不管这点以前是空白的还是白色的。由于Bob是VIP玩家,可以随时在游戏中切断一条边。解题思路只有当n为偶数且Bob可以根据他的特权将这棵树切成两两相连的时候,才可以获得胜利,否则都是Alice赢。代码部分#include <bits/stdc++.h>u原创 2017-08-11 11:01:47 · 359 阅读 · 0 评论 -
HDU 6129 Just do it
题目链接题目意思给你一个包含n个数的序列A和一个数m,序列B中的数是序列A经过异或得到的,比如:b[i]=a[1]^a[2]^…..^a[i]。现在让你求经过m次异或后,序列B的值。解题思路我们写下其前五项的值可以发现我们设定ans【i】【j】表示进行到第i次,第j个位子的答案的话,ans【i】【j】有推导式:ans【i】【j】=ans【i-1】【j】^ans【i】【j-1】; 从图中我们可以看原创 2017-08-16 10:49:52 · 1543 阅读 · 14 评论 -
HDU 6305 RMQ Similar Sequence【笛卡尔树】
题目链接题目意思定义RMQ(A,l,r)为:序列A中,满足A[i] = max(A[l],A[l+1],…,A[r])的最大的i。如果对于任意(l,r)都满足RMQ(A,l,r)=RMQ(B,l,r)则为A和B是RMQ Similar。现在出A序列,B串中每个元素服从于[0,1]上相互独立的均匀分布。问满足与A是RMQ Similar的所有B序列中所有数之和的期望。例如1,3,2和...原创 2018-07-30 10:06:43 · 244 阅读 · 0 评论 -
HDU 1719 Friend
题目链接题目意思(1)、定义1和2是朋友数 (2)、假设a和b是朋友数,那么a*b+a+b也是朋友数 满足上述两个条件的数为朋友数。 现在给你n个数,让你判断这n个数是不是朋友数。解题思路假设c=a*b+a+b。那么根据(a+1)(b+1)=a * b+a+b+1,可知c+1如果能够被a+1和b+1除尽,那么c+1就是朋友数。又由于1和2是给定的朋友数,那么如果c+1除以2或者3等于1就可以原创 2017-11-19 20:46:34 · 194 阅读 · 0 评论 -
蓝桥杯 带分数【数位分离+排列组合】
题目链接题目意思解题思路 首先介绍一个排列组合的一个函数next_permutation(),用这个函数可以直接算排列组合。 数位分离:给你一串数字,我们将这个数串去不断地%10,/10去将其分离开。这道题我们算出1~9的所有排列组合数,然后去将不同的排列组合数按照题意分离判断能不能得到结果和n相同。 直接看代码吧!代码部分#include <iostr...原创 2018-03-28 20:35:01 · 458 阅读 · 0 评论 -
HDU 6090 Rikka with Graph
题目链接题目意思给你一个包含n个点m条边的无向图,现在要求这个无向图的最小权值。无向图的权值等于每对点经过的边的条数,如果两点之间没有路径,那么权值就等于n。解题思路这是一道思路题,我们很容易找到规律,可以分成三种情况。包含n个顶点的无向图最多有n*(n-1)/2条边。当m大于n*(n-1)/2时,是一种情况,那时我们直接让m等于n*(n-1)/2;此外,当m小于(n-1)时,就会有孤立的点,这是就原创 2017-08-08 20:07:38 · 305 阅读 · 0 评论 -
HDU 6097 Mindis
题目链接题目意思在圆内有两点P,Q,满足OP=OQ。现在要在圆上找一点D,使得DP+DQ最短。解题思路我们可以分为两种情况来讨论: 1、OP = OQ = r 的情况。这是最短的距离应该就是PQ的连线距离了。 2、OP = OQ < 的情况。这时我们引进一个反演点的知识。反演点:已知圆O的半径为R,从圆心O出发任作一射线,在射线上任取两点M,N。若OM=m,ON=n,且mn=R^2,则称点M,N原创 2017-08-14 15:55:54 · 435 阅读 · 0 评论 -
网易2018校招 相反数【数位分离】
题目链接题目意思解题思路我们利用数位分离将数字反转加上原来的数字即可。代码部分#include <iostream>#include <string.h>#include <stdio.h>#include <cstring>#include <algorithm>using namespace ...原创 2018-03-28 21:04:13 · 291 阅读 · 0 评论 -
HDU 6130 Kolakoski
题目链接题目意思给你一个Kolakosiki 序列1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1,2,2,1……这个序列由1和2组成,相邻的相等的可以划分在一起,1,22,11,2,1,22,1,22,11,2,11,22,1……. 其中第i个模块的长度就是其中的数的个数。如对于上边的序列a[1]=1,a[2]=2,a[3]=2,a[4]=1……现在问你第n个数为什么。解题思路原创 2017-08-15 19:38:40 · 1703 阅读 · 0 评论 -
蓝桥杯 买不到的数目【扩展欧几里得】
题目链接题目意思将糖果分成一包a个和一包b个的规格,一包糖果不可以拆开购买,然后让你求最大的买不到的数量。解题思路 这个用到了扩展欧几里得,至于这个扩展欧几里得是个什么东东,我也没搞太明白。就用那个公式就可以直接解决这道题。。。。没办法代码部分#include <iostream>#include <stdio.h>#include <...原创 2018-03-26 20:46:22 · 298 阅读 · 0 评论 -
HDU_6069 Counting Divisors
题目链接题目意思给你三个数L,R,K让你求满足下面公式的答案 解题思路由题意我们可以知道L,R最大为1e12,所以我们可以用筛法筛选sqrt(1e12)之内的所有素数。 有数论中的结论我们知道,任何一个正整数x,都可以分解成若干个素数幂的积。 则 x = (p1^m1)* (p2^m2)* (p3^m3)* …..* (pn^mn); 其中p1,p2,p3…pn都是素数,m1,m2,m3原创 2017-08-05 11:13:10 · 278 阅读 · 0 评论 -
同余定理
数论中的重要概念。给定一个正整数m,如果两个整数a和b满足(a-b)能够被m整除,即(a-b)/m得到一个整数,那么就称整数a与b对模m同余,记作a≡b(mod m)。同余符号两个整数a、b,若它们除以整数m所得的余数相等,则称a与b对模m同余或a同余于b模m。记作a≡b(mod m)【定义】 设m是大于1的正整数,a、b是整数,如果m|(a-b),则称a与b关于模m同余,记作a≡b(mod m)。原创 2017-08-19 10:32:53 · 766 阅读 · 0 评论 -
莫比乌斯反演
莫比乌斯反演莫比乌斯反演是数论数学中很重要的内容,可以用于解决很多组合数学的问题。莫比乌斯函数莫比乌斯函数,数论函数,由德国数学家和天文学家莫比乌斯提出。梅滕斯首先使用μ(n)作为莫比乌斯函数的记号。莫比乌斯函数是指以下的函数:在这里,λ(n)是刘维尔函数莫比乌斯函数是一个数论函数,它同时也是一个积极函数(μ(ab) =μ(a)μ(b), a,b互质 )当n不等于1时,n的所有因子的莫比乌斯函数值的原创 2017-08-03 20:52:23 · 780 阅读 · 0 评论