![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
initMyHeart
学生,现在兜里没有钱
展开
-
全排列算法思路解析
1.全排列的定义和公式:从n个数中选取m(m<=n)个数按照一定的顺序进行排成一个列,叫作从n个元素中取m个元素的一个排列。由排列的定义,显然不同的顺序是一个不同的排列。从n个元素中取m个元素的所有排列的个数,称为排列数。从n个元素取出n个元素的一个排列,称为一个全排列。全排列的排列数公式为n!,通过乘法原理可以得到。2.时间复杂度:n个数(字符、对象)的全排列一共有n!种,所以全排列算法至...转载 2018-04-10 17:17:28 · 8772 阅读 · 0 评论 -
01背包问题内层循环必须是逆序的解释
01背包问题的具体描述自行百度:有N件物品和一个容量为V的背包。第i件物品的重量是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的重量总和不超过背包容量,且价值总和最大。(01背包中这些物品每种都只有1个,每个物品只能装一次)基本问题用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状态转移方程原创 2018-01-12 15:34:31 · 6493 阅读 · 2 评论 -
数塔
数塔问题描述:在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少? 已经告诉你了,这是个DP的题目,你能AC吗?input: 输入数据首先包括一个整数C,表示测试实例的个数,每个测试实例的第一行是一个整数N(1 <= N <= 100),表示数塔的高度,接下来用N行数字表示数原创 2017-09-25 16:25:15 · 312 阅读 · 0 评论 -
特殊方式求求1+2+3+...+n
1. 题目要求 求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。2. 代码/*用公式是不可以的,公式里有乘法!!实现乘法可以用sizeof多维数组,两行代码就可以class Solution {public: int Sum_Solution(int n) { bool a[n原创 2017-08-22 17:49:32 · 460 阅读 · 0 评论 -
openJudge 2的幂次方表示
描述任何一个正整数都可以用2的幂次方表示。例如: 137=27+23+20同时约定方次用括号来表示,即ab可表示为a(b)。由此可知,137可表示为: 2(7)+2(3)+2(0)进一步:7=22+2+20(21用2表示) 3=2+20所以最后137可表示为: 2(2(2)+2+2(0))+2(2+转载 2017-03-04 13:40:03 · 744 阅读 · 0 评论 -
OpenJudge 8469:特殊密码锁
有一种特殊的二进制密码锁,由n个相连的按钮组成(n<30),按钮有凹/凸两种状态,用手按按钮会改变其状态。转载 2017-03-03 20:28:37 · 1085 阅读 · 0 评论 -
openJudge 全排列算法
#include #include #include #include #include using namespace std;const int M = 8;char str[M];char permutation[M];bool used[M] = { 0 };int L = 0;void Permutation(int n){ if (n == L) {转载 2017-03-04 10:43:04 · 530 阅读 · 0 评论 -
实现一个算法打印出n对括号的有效组合
转载于:http://www.code123.cc/841.html 侵删题目实现一个算法打印出n对括号的有效组合。例如:输入:3 (3对括号)输出:((())), (()()), (())(), ()(()), ()()()解答对于括号的组合,要考虑其有效性。比如说,)(, 它虽然也是由一个左括号和一个右括号组成,但它就不是一个有效的括号组合。 那么,怎样的组合是有效的呢?对于一个左括号,在它右...转载 2018-04-18 14:01:02 · 616 阅读 · 0 评论