算法学习
比企谷叭帆i
热爱可抵岁月漫长。
展开
-
003递归实现排列型枚举
把 1~n 这 n 个整数排成一行后随机打乱顺序,输出所有可能的次序。 输入格式 一个整数n。 输出格式 按照从小到大的顺序输出所有方案,每行1个。 首先,同一行相邻两个数用一个空格隔开。 其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面。 数据范围 1≤n≤9 输入样例: 3 输出样例: 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 代码: #incl...原创 2019-09-17 21:23:14 · 102 阅读 · 0 评论 -
002递归实现组合型枚举
从 1~n 这 n 个整数中随机选出 m 个,输出所有可能的选择方案。 输入格式 两个整数 n,m ,在同一行用空格隔开。 输出格式 按照从小到大的顺序输出所有方案,每行1个。 首先,同一行内的数升序排列,相邻两个数用一个空格隔开。 其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面(例如1 3 5 7排在1 3 6 8前面)。 数据范围 n>0 , 0≤m≤n , n+(n...原创 2019-09-17 21:20:54 · 98 阅读 · 0 评论 -
001递归实现指数型枚举
递归实现指数型枚举 从 1~n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案。 输入格式 输入一个整数n。 输出格式 每行输出一种方案。 同一行内的数必须升序排列,相邻两个数用恰好1个空格隔开。 对于没有选任何数的方案,输出空行。 本题有自定义校验器(SPJ),各行(不同方案)之间的顺序任意。 数据范围 1≤n≤15 输入样例: 3 输出样例: 3 2 2 3 1 1 3 1 2 1 ...原创 2019-09-17 21:10:39 · 108 阅读 · 0 评论 -
97. 约数之和
假设现在有两个自然数A和B,S是AB的所有约数之和。 请你求出S mod 9901的值是多少。 输入格式 在一行中输入用空格隔开的两个整数A和B。 输出格式 输出一个整数,代表S mod 9901的值。 数据范围 0≤A,B≤5×107 输入样例: 2 3 输出样例: 15 注意: A和B不会同时为0。 using namespace std; const int mod = 9901; int ...原创 2019-09-22 20:30:31 · 204 阅读 · 0 评论 -
96. 奇怪的汉诺塔
汉诺塔问题,条件如下: 1、这里有A、B、C和D四座塔。 2、这里有n个圆盘,n的数量是恒定的。 3、每个圆盘的尺寸都不相同。 4、所有的圆盘在开始时都堆叠在塔A上,且圆盘尺寸从塔顶到塔底逐渐增大。 5、我们需要将所有的圆盘都从塔A转移到塔D上。 6、每次可以移动一个圆盘,当塔为空塔或者塔顶圆盘尺寸大于被移动圆盘时,可将圆盘移至这座塔上。 请你求出将所有圆盘从塔A移动到塔D,所需的最小移动次数是多...原创 2019-09-22 10:32:13 · 227 阅读 · 0 评论 -
004费解的开关
原题链接:https://www.acwing.com/problem/content/97/ 你玩过“拉灯”游戏吗?25盏灯排成一个5x5的方形。每一个灯都有一个开关,游戏者可以改变它的状态。每一步,游戏者可以改变某一个灯的状态。游戏者改变一个灯的状态会产生连锁反应:和这个灯上下左右相邻的灯也要相应地改变其状态。 我们用数字“1”表示一盏开着的灯,用数字“0”表示关着的灯。下面这种状态 10...原创 2019-09-18 11:04:54 · 99 阅读 · 0 评论 -
101. 最高的牛
有 NN 头牛站成一行,被编队为1、2、3…N,每头牛的身高都为整数。 当且仅当两头牛中间的牛身高都比它们矮时,两头牛方可看到对方。 现在,我们只知道其中最高的牛是第 PP 头,它的身高是 HH ,剩余牛的身高未知。 但是,我们还知道这群牛之中存在着 MM 对关系,每对关系都指明了某两头牛 AA 和 BB 可以相互看见。 求每头牛的身高的最大可能值是多少。 输入格式 第一行输入整数N,P,H,MN...原创 2019-09-22 09:51:51 · 147 阅读 · 0 评论 -
AcWing 100. IncDec序列
给定一个长度为 nn 的数列 a1,a2,…,ana1,a2,…,an,每次可以选择一个区间 [l,r],使下标在这个区间内的数都加一或者都减一。 求至少需要多少次操作才能使数列中的所有数都一样,并求出在保证最少次数的前提下,最终得到的数列可能有多少种。 输入格式 第一行输入正整数nn。 接下来nn行,每行输入一个整数,第i+1行的整数代表aiai。 输出格式 第一行输出最少操作次数。 第二行输出...原创 2019-09-22 09:48:39 · 115 阅读 · 0 评论 -
快速幂算法模板
求 mk%pmk%p,时间复杂度 O(logk)O(logk)。 int qmi(int m, int k, int p) { int res = 1 % p, t = m; while (k) { if (k&1) res = res * t % p; t = t * t % p; k >>= 1; ...原创 2019-09-22 15:52:59 · 108 阅读 · 0 评论