- 博客(10)
- 收藏
- 关注
原创 Case06_字典序问题,POJ3617
字典序问题 S0:ACDBCB 翻转过来 S1:BCBDCA S0小 取头 S1小 取头 模板题 POJ3617 FJ is about to take his N (1 ≤ N ≤ 2,000) cows to the annual"Farmer of the Year" competition. In this contest every farmer arranges his cows in a line and herds them past the judges. The contest org
2020-06-01 15:48:51 166
原创 Case05_区间覆盖问题,POJ2376题解
Case05_区间覆盖问题 区间覆盖问题贪心策略: 首先对区间端点s排序 (case03里有相关解释) 设置游标 start end 初始化都为1 s<=start 区间可能覆盖start 比较end和t大小,始终保持end是最大的 s>start 计数加1 更新start为end+1 并判断此时的s<=start 是 比较end和t 否 终止此次循环,进行下次循环 比较完s 看t>end 终止循环 比较绕 模板题 POJ2376 Farmer John is assigning s
2020-06-01 15:07:09 249
原创 Case04——区间选点问题,POJ1201详细题解
Case04——区间选点问题 原始问题: 有若干的区间里,找最少的点包括所有区间, 思路:依此选取右边的点。 —1—x ——4—— ——2—— ——3——x ———————————— 如图可以选取1号最右边的点,3号区间最右边的点,这样我们选择的点就是最优的。 变体 POJ 1201 Description You are given n closed, integer intervals [ai, bi] and n integers c1, ..., cn. Write a
2020-05-30 17:53:49 436
原创 Case03_区间调度问题
Case03——区间调度问题 问题描述: 有n项工作,每项工作分别在si开始,ti结束。对每项工作,你都可以选择参加或不参加,但选择了参加某项工作就必须至始至终参加全程参与,即参与工作的时间段不能有重叠(即使开始的时间和结束的时间重叠都不行)。 限制条件: 1<=n<=100000 1<=si<=ti,=109 样例: 输入 n=5 1,2,4,6,8 3,5,7,9,10 输出 3(选择工作1, 3, 5(可选择性输出)) 先理一下题目描述的 1 3 是一
2020-05-26 15:30:23 270
原创 Cases02_POJ1700_快速渡河问题
Case02——POJ1700——快速渡河问题 A group of N people wishes to go across a river with only one boat, which can at most carry two persons. Therefore some sort of shuttle arrangement must be arranged in order to row the boat back and forth so that all people may cros
2020-05-09 17:15:09 204
原创 贪心入门——Case01_硬币表示问题
贪心入门问题之硬币问题 问题描述: 有1元、5元、10元、50元、100元、500元的硬币各C1,C5,C10,C50,C100,C500枚。现在要用这些硬币来支付A元,最少需要多少枚硬币?假设本题至少存在一种支付方案。 限制条件: 0<=C1,C5,C10,C50,C100,C500<=10的9次方 0<= A <= 10的9次方 输入: 3 2 1 3 0 2 620 ...
2020-05-08 16:57:23 293
原创 第八章 贪心和动态规划——浅谈贪心
第八章 贪心和动态规划 贪心(Greed Dynamic) 1,浅谈下自己对贪心的认识 2, 具体实列看下贪心 1,贪心的浅显认识 所谓贪心就是说用人脑(经过演算)所认识到的那个最优策略。我们可以从dfs中得到全部解,而贪心是用局部最优解推导全局最优解。 我们可以这样想,在选择女朋友的时候,有学历高的,颜值高的,有钱的,你怎么选,贪心就是只看眼前,以后的生活我就是不考虑,这就是贪心策略。 在《挑战...
2020-05-08 16:56:54 142
原创 汉诺塔游戏
汉诺塔游戏 递归方法 找重复 1,找到一种划分方法 2,找到递推公式或者等价转化 都是父问题转化为求解子问题 找变化的量 变化的量通常作为参数 找到出口 根据参数变化的趋势,对边界进行控制,适时使用递归 将1-N从A移动到B,C作为辅助 等价于(自己可以画下这个只有2个移动情况) 1,1~N-1移动到c 2,把N从A移动到B 3,把1-N从C移动到B 代码如下 private static vo...
2020-03-11 21:12:24 164
原创 递归的思维
递归的思维 递归之切蛋糕思维: 可以说是老板思维,假如你是老板,你自己做头一部分,剩下的交给下面的人来做。 Case1 数组的求和 private static int sum(int[]arr, int begin) { //边界值 if (begin == arr.length - 1) { return arr[begin]; } return arr[b...
2020-03-08 21:37:42 480
原创 递归的初步认识
大家好!!!算法菜鸟,学习笔记一篇,有错误恳请指正!!! 基本定义 简单介绍我对递归的理解,它就是像是我们数学所说的数学归纳法,如在题目中,找到规律,找到重复的规律。有时你会神奇的发现,一行代码就可以解决你写五六行的代码。 如这个求阶乘 public static int factorial(int n) { if (n == 1) { return 1; } return n*factoria...
2020-03-07 21:35:28 199
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人