![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
《算法竞赛进阶指南》
如此生活二十年
这个作者很懒,什么都没留下…
展开
-
a^b
求 a 的b次方对 p 取模的值。输入格式三个整数 a,b,p ,在同一行用空格隔开。输出格式输出一个整数,表示a^b mod p的值。数据范围0≤a,b,p≤109输入样例:3 2 7输出样例:2代码#include<iostream>using namespace std;int main(){long long int ...原创 2019-10-04 13:45:40 · 59 阅读 · 0 评论 -
约数之和
假设现在有两个自然数A和B,S是A^B的所有约数之和。请你求出S mod 9901的值是多少。输入格式在一行中输入用空格隔开的两个整数A和B。输出格式输出一个整数,代表S mod 9901的值。数据范围0≤A,B≤5×107代码:#include<iostream>using namespace std;int r=9901;int ksm(...原创 2019-10-04 13:37:45 · 114 阅读 · 0 评论 -
最高的牛
有 N 头牛站成一行,被编队为1、2、3…N,每头牛的身高都为整数。当且仅当两头牛中间的牛身高都比它们矮时,两头牛方可看到对方。现在,我们只知道其中最高的牛是第 P 头,它的身高是 H ,剩余牛的身高未知。但是,我们还知道这群牛之中存在着 M 对关系,每对关系都指明了某两头牛 A 和 B 可以相互看见。求每头牛的身高的最大可能值是多少。输入格式第一行输入整数N,P,H,M数...原创 2019-10-04 13:39:02 · 143 阅读 · 0 评论 -
激光炸弹
一种新型的激光炸弹,可以摧毁一个边长为 RR 的正方形内的所有的目标。现在地图上有 N个目标,用整数Xi,Y表示目标在地图上的位置,每个目标都有一个价值Wi。激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其爆炸范围,即那个边长为 R 的正方形的边必须和x,y轴平行。若目标位于爆破正方形的边上,该目标不会被摧毁。求一颗炸弹最多能炸掉地图上总价值为多少的目标。输入格式第一...原创 2019-10-04 13:49:34 · 218 阅读 · 0 评论 -
IncDec序列
给定一个长度为 nn 的数列 a1,a2,…,an,每次可以选择一个区间 [l,r],使下标在这个区间内的数都加一或者都减一。求至少需要多少次操作才能使数列中的所有数都一样,并求出在保证最少次数的前提下,最终得到的数列可能有多少种。输入格式第一行输入正整数n。接下来n行,每行输入一个整数,第i+1行的整数代表aiai。输出格式第一行输出最少操作次数。第二行输出最终能得到...原创 2019-10-04 13:41:56 · 145 阅读 · 0 评论 -
费解的开关
你玩过“拉灯”游戏吗?25盏灯排成一个5x5的方形。每一个灯都有一个开关,游戏者可以改变它的状态。每一步,游戏者可以改变某一个灯的状态。游戏者改变一个灯的状态会产生连锁反应:和这个灯上下左右相邻的灯也要相应地改变其状态。我们用数字“1”表示一盏开着的灯,用数字“0”表示关着的灯。下面这种状态1011101101101111000011011在改变了最左上角的灯的状态后将变成...原创 2019-10-04 13:41:23 · 55 阅读 · 0 评论 -
最短Hamilton路径
给定一张 nn 个点的带权无向图,点从 0~n-1 标号,求起点 0 到终点 n-1 的最短Hamilton路径。 Hamilton路径的定义是从 0 到 n-1 不重不漏地经过每个点恰好一次。输入格式第一行输入整数nn。接下来nn行每行nn个整数,其中第ii行第jj个整数表示点ii到jj的距离(记为a[i,j])。对于任意的x,y,z数据保证 a[x,x]=0,a[x,y]=a[...原创 2019-10-04 13:40:57 · 76 阅读 · 0 评论 -
递归实现组合型枚举
从 1~n 这 n 个整数中随机选出 m 个,输出所有可能的选择方案。输入格式两个整数 n,m ,在同一行用空格隔开。输出格式按照从小到大的顺序输出所有方案,每行1个。首先,同一行内的数升序排列,相邻两个数用一个空格隔开。其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面(例如1 3 5 7排在1 3 6 8前面)。数据范围n>0,0≤m≤n...原创 2019-10-04 13:43:59 · 91 阅读 · 3 评论 -
递归实现指数型枚举
从 1~n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案。输入格式输入一个整数n。输出格式每行输出一种方案。同一行内的数必须升序排列,相邻两个数用恰好1个空格隔开。对于没有选任何数的方案,输出空行。本题有自定义校验器(SPJ),各行(不同方案)之间的顺序任意。数据范围1≤n≤15代码:#include<iostream>usi...原创 2019-10-04 13:44:17 · 63 阅读 · 0 评论 -
递归实现排列型枚举
把 1~n 这 n 个整数排成一行后随机打乱顺序,输出所有可能的次序。输入格式一个整数n。输出格式按照从小到大的顺序输出所有方案,每行1个。首先,同一行相邻两个数用一个空格隔开。其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面。代码:#include<iostream>using namespace std;int a[9],b[...原创 2019-10-04 13:44:29 · 50 阅读 · 0 评论 -
奇怪的汉诺塔
汉诺塔问题,条件如下:1、这里有A、B、C和D四座塔。2、这里有n个圆盘,n的数量是恒定的。3、每个圆盘的尺寸都不相同。4、所有的圆盘在开始时都堆叠在塔A上,且圆盘尺寸从塔顶到塔底逐渐增大。5、我们需要将所有的圆盘都从塔A转移到塔D上。6、每次可以移动一个圆盘,当塔为空塔或者塔顶圆盘尺寸大于被移动圆盘时,可将圆盘移至这座塔上。请你求出将所有圆盘从塔A移动到塔D,所需的最...原创 2019-10-04 13:44:42 · 67 阅读 · 0 评论 -
64位整数乘法
求 a 乘 b 对 p 取模的值。输入格式第一行输入整数a,第二行输入整数b,第三行输入整数p。输出格式输出一个整数,表示a*b mod p的值。数据范围1≤a,b,p≤1018输入样例:345输出样例:2代码:#include<iostream>using namespace std;int main(){long l...原创 2019-10-04 13:45:09 · 50 阅读 · 0 评论 -
货仓选址
在一条数轴上有 N 家商店,它们的坐标分别为 A1AN。现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。输入格式第一行输入整数N。第二行N个整数A1AN。输出格式输出一个整数,表示距离之和的最小值。数据范围1≤N≤100000代码:#include<i...原创 2019-10-04 20:37:11 · 69 阅读 · 0 评论