题意: 给你一个长度为n的数组,你可以对其中某个元素加上x或者减去x,这种操作你最多只能使用k次,让你输出操作后的数组,且保证这个数组所有元素的乘积尽可能小 题解: 在这之前我们要知道a*b>a*(b-x)>(a-x)*b 在a-x>0且b-x>0情况下 首先要讨论这n个元素中负数个数有多少个 1、 ...
分类:
编程语言 时间:
2020-05-02 11:53:17
阅读次数:
80
题目:八数码 网址:http://poj.org/problem?id=1077 在一个3×3的网格中,1~8这8个数字和一个“X”恰好不重不漏地分布在这3×3的网格中。 例如: 在游戏过程中,可以把“X”与其上、下、左、右四个方向之一的数字交换(如果存在)。 我们的目的是通过交换,使得网格变为如下 ...
分类:
其他好文 时间:
2020-05-01 21:00:10
阅读次数:
103
问题: 有n项活动申请使用同一个礼堂,每项活动有一个开始时间和一个截止时间。如果任何两个活动不能同时举行,问如何选择这些活动,从而使得被安排的活动数量达到最多。 解析: 如果我们选择开始时间最早的节目,得不到最优解 如果我们选择时间最短的节目,也无法得到最优解 可以用数学归纳法证明,我们的贪心策略应 ...
分类:
其他好文 时间:
2020-05-01 20:57:58
阅读次数:
70
贪心算法 1. 算法介绍 贪心算法是指在可对问题进行求解时,在每一步中采用最好或者最优的选择,从而导致结果最好的算法 贪心算法得到的结果不一定是最优的结果,但是都是相对近似最优解的结果 2. 实际问题 | 广播台 | 覆盖地区 | | | | | k1 | “北京”,“上海”,“天津” | | k2 ...
分类:
编程语言 时间:
2020-05-01 18:38:26
阅读次数:
62
B - Dining POJ - 3281 首先二分图的多重匹配匈牙利算法是不行的,无法最优。 直接在 ...
分类:
其他好文 时间:
2020-05-01 16:40:34
阅读次数:
42
介绍: 贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。 贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与 ...
分类:
编程语言 时间:
2020-04-30 21:41:07
阅读次数:
75
前言 算法基础的第三部分!这几部分其实讲述的都不太详细,因为许多内容都算比较清楚了,也不想太深入讨论,不过应该后面会进行补充。 (总目录:https://www.cnblogs.com/jinkun113/p/12528423.html) 子目录列表 1、贪心 2、背包问题 3、正确性证明 2.3 ...
分类:
编程语言 时间:
2020-04-30 15:32:59
阅读次数:
76
给出一个字符串,按照从前到后的顺序进栈,输出字典序最小的出栈序列 ...
分类:
其他好文 时间:
2020-04-30 09:20:02
阅读次数:
56
"Description" 思路 由于$a_i$的取值非常小,所以把每个值所在坐标从小到大存起来。然后枚举每个$a_i$为回文的左右边界可得的最大长度。 枚举过程中,求两个$a_i$形成的区间中包含的重复次数最多的数。由于区间越大,重复的个数越多,所以从$a_i$的最左右两边到中间枚举。 统计区间某 ...
分类:
其他好文 时间:
2020-04-29 23:57:08
阅读次数:
131
"传送门" 题意: 给出一个$n$行$m$列的$01$矩阵,每次可以选择任一行或者任一列对其进行翻转。 问进行任意次操作过后,矩阵中$1$最少的个数为多少。 $n\leq 20,m\leq 100000$。 思路: 行数这么少,我们可以直接考虑状压枚举行的状态,固定行的状态过后,每一列就贪心选择$0 ...
分类:
其他好文 时间:
2020-04-29 23:25:40
阅读次数:
76