原创公众号:bigsai文章收录在bigsai-algorithm前言分治算法(divideandconquer)是五大常用算法(分治算法、动态规划算法、贪心算法、回溯法、分治界限法)之一,很多人在平时学习中可能只是知道分治算法,但是可能并没有系统的学习分治算法,本篇就带你较为全面的去认识和了解分治算法。在学习分治算法之前,问你一个问题,相信大家小时候都有存钱罐的经历,父母亲人如果给钱都会往自己的
分类:
编程语言 时间:
2020-12-08 12:36:31
阅读次数:
8
周末去了动物园,虽然我几乎被冻成了狗,但还是好开心呀,今天开开心心的来更新啦!!! 题目描述: 方法:基于最大堆的贪心算法 维护最大堆存储字母,堆顶元素为出现次数最多的字母。首先统计每个字母的出现次数,然后将出现次数大于 00 的字母加入最大堆。 当最大堆的元素个数大于 11 时,每次从最大堆取出两 ...
分类:
其他好文 时间:
2020-12-04 11:30:05
阅读次数:
6
题目: 在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以纵坐标并不重要,因此只要知道开始和结束的横坐标就足够了。开始坐标总是小于结束坐标。 一支弓箭可以沿着 x 轴从不同点完全垂直地射出。在坐标 x 处射出一支箭,若有一个气球的直径的 ...
分类:
其他好文 时间:
2020-11-27 10:51:48
阅读次数:
5
题目链接 题目大意 t组数据(t<=20) 给你n个人(n<=1000)过河,每个人都有权值,一条船,每次船最多运2个人,每次的花费为两个人的较大花费 求所有人都过河需要的最小花费 题目思路 经典的过河问题,记录一下 先将权值从小到大排序一下 每次运两个人显然有两种最优的方法 1:先运(a[1],a ...
分类:
其他好文 时间:
2020-11-26 14:14:53
阅读次数:
5
比赛链接:https://codeforces.com/contest/1440 A. Buy the String 题解 枚举字符串中 $0$ 或 $1$ 的个数即可。 代码 #include <bits/stdc++.h> using namespace std; int main() { io ...
分类:
其他好文 时间:
2020-11-21 12:41:54
阅读次数:
32
CF1446 题目都很有趣。 A 假设存在一个合法的,那么直接选。 否则所有数都小于 \(\frac{W}{2}\),那么按任意顺序贪心选都是对的。 B 类比 LCS,设 \(f_{i,j}\) 表示 \([?,i],[?,j]\) 的最大答案。转移是 naive 的。 C 观察:二进制最高位相同的 ...
分类:
其他好文 时间:
2020-11-21 12:29:15
阅读次数:
8
leetcode(daily 11-8 ~ 11-14) leetcode 每日一题 11-8 122. 买卖股票的最佳时机 II class Solution { public int maxProfit(int[] prices) { // 贪心算法:只要今天买明天赚就买入 // profit用 ...
分类:
其他好文 时间:
2020-11-20 12:09:49
阅读次数:
9
首先说明一个问题,简单阐述一下递归,分治算法,动态规划,贪心算法这几个东西的区别和联系,心里有个印象就好。 递归是一种编程技巧,一种解决问题的思维方式;分治算法和动态规划很大程度上是递归思想基础上的(虽然动态规划的最终版本大都不是递归了,但解题思想还是离不开递归),解决更具体问题的两类算法思想;贪心 ...
分类:
其他好文 时间:
2020-11-20 11:26:06
阅读次数:
5
构造哈夫曼树 以下所有都是根据代码形成的流程,便于理解,阅读代码请移步 赫夫曼树-构造-编码-译码 1. 定义结点结构体 2. 定义结点结构体数组 3. 初始化 ? 权植为0,双亲及左右孩子为-1 4. 输入叶子结点及其权植 ? 假如输入叶子个数n为6 ? 输入6个 叶子结点 及其 权植 5. 找最 ...
分类:
其他好文 时间:
2020-11-20 11:24:00
阅读次数:
5
给定一个长度为 $n$ 的序列,每次可以选择一个区间 $[l,r]$ 将区间中的每个数 $-1$,或者选择一个位置 $pos$ 和一个值 $x$,将第 $pos$ 个位置的数减去 $x$。需要保持所有的数非负。求操作直到所有数变成 $0$ 的最小代价。 ...
分类:
其他好文 时间:
2020-11-12 14:23:08
阅读次数:
8