"Link" 题意: 有 $a,b,c$ 三堆石头,现在有个操作 操作一:从 $a$ 中拿一块石头,从 $b$ 中拿两块石头 操作二:从 $b$ 中拿一块石头,从 $c$ 中拿两块石头 问最多拿几块石头 思路: 贪心 两种操作收益都是 $3$ 且都会消耗 $b$ 操作 $2$ 对 $b$ 消耗较小 ...
分类:
其他好文 时间:
2020-03-02 23:00:16
阅读次数:
68
? 重点:dijkstra算法按层计算其余点到源点的最短距离,层层扩展。 1. dijkstra算法 求解目标:找到图中源点到其余点的最短距离,是单源点最短距离算法。 整体思路:每一步都寻找到与源点 最近的点 ,层层扩展,是贪心算法。 具体实现: 输入:给定一个图的邻接表M,源点u。 辅助变量:存储 ...
分类:
编程语言 时间:
2020-03-02 22:25:27
阅读次数:
86
有一个 $n \times m$ 的矩形巧克力,沿着第 $i$ 条横线切一次代价为 $a_i$,沿着第 $i$ 条竖线切一次代价为 $b_i$,求切割完的最小代价。 Solution 显然对于相同方向的,我们会先切大的再切小的 对于不同类型的,设已经横切 $x$ 次,纵切 $y$ 次,那么先切横的代 ...
分类:
其他好文 时间:
2020-03-02 00:36:25
阅读次数:
54
1.查找问题: 二分查找: 例题:使用map解决查找问题 代码: #include <bits/stdc++.h> using namespace std; //查找学生信息 struct Student{ string name; string sex; int age; string id; } ...
分类:
其他好文 时间:
2020-03-01 14:07:43
阅读次数:
59
题意:有n个学生 要求组成k个小组 每个小组中两两差值不得超过5 可以有学生不被编入组中 求最多可以有多少个学生被编入组中 n,k<=1e5 题解: 考虑dp[i][j],i为前i个学生,j为分了几组的最大人数,不选第i个人,dp[i][j]=dp[i-1][j], 选第i个人,贪心的选择距离a[i ...
分类:
其他好文 时间:
2020-03-01 12:15:41
阅读次数:
68
基本思想: 想到贪心,但是觉得时间复杂度太高,结果一不小心写出来个更复杂的贪心; 关键点: 注意特殊用例,有可能无法遍历出正确结果,即没有切换得到正确的值,此时要避免进入死循环; #include<iostream> #include<vector> #include<algorithm> #inc ...
分类:
编程语言 时间:
2020-02-29 22:38:32
阅读次数:
73
T1 假如max(a)<0的话直接把所有的a排个序贪心选择大的尽量多 现在考虑一个正的ai对后面的影响 维护一个大根堆,a<0就往里添,a>=0就去抵消堆顶元素 这样新序列(堆里的元素)就可以像刚才那样做了 T2 先把点按权值从大到小排序 然后枚举那个点可以选也可以不选 前面的都已经选了 然后在当前 ...
分类:
其他好文 时间:
2020-02-29 22:08:02
阅读次数:
60
将 $n$ 个数分成 $m$ 组,使得各组数据的数值和最平均,即各组的均方差最小。$n\leq 20,m \leq 6$ Solution 考虑如果是按顺序分段,那么设 $f[i]$ 表示前 $i$ 个数积攒的最小方差,dp即可 用 随机若干顺序,可以证明在很大概率上能随到答案 当然内部也可以贪心, ...
分类:
其他好文 时间:
2020-02-29 20:22:08
阅读次数:
62
思路 0. 首先思考什么时候产生LIS上升的贡献,肯定是遇到了一个小于号啊,左边 4 大于号肯定不产生LIS的贡献了,。 假设上面想到了。 接下来考虑怎么找最短,和最长。 再等等,思考还有没有产生贡献的地方? 容易想到就是 小于号 与 小于号 之间 也会产生贡献。 比如 3424 using nam ...
分类:
其他好文 时间:
2020-02-29 17:34:26
阅读次数:
71
原题链接: http://acm.hdu.edu.cn/showproblem.php?pid=2063 思路: 一开始用贪心做:按每一个女孩子期望搭档的人的数量将数组排序,然后优先选择期望数量少的,但是在oj上WA了(没想通为啥不行,有会的大佬还望指点/拜托) 然后就在网上看博客,看到大家都是用“ ...
分类:
编程语言 时间:
2020-02-29 01:00:38
阅读次数:
99