随笔分类 - 贪心
摘要:题目传递门 #include <bits/stdc++.h> using namespace std; typedef long long LL; const int N = 310; int a[N]; int n; LL res; int h, t, cnt; int main() { cin
阅读全文
摘要:题目传递门 #include <bits/stdc++.h> using namespace std; int w, n; const int N = 30010; int a[N]; //双指针 int h = 1, t = n, cnt; int main() { cin >> w >> n;
阅读全文
摘要:题目传送门 总结: 1、结构体+排序 2、贪心 3、逐个加入,够数退出 4、小心没良心的数据,比如 0 0 #include <bits/stdc++.h> using namespace std; typedef long long LL; int n, m; const int N = 5010
阅读全文
摘要:题目传送门 一、贪心法 题目里给的样例是,可以选择一个区间进行“填坑”操作;我们的贪心策略是: 若,计数器; 贪心证明 假设现在有一个坑,但旁边又有一个坑。你肯定会选择把两个同时填充,都减;那么小的坑肯定会
阅读全文
摘要:题目传递门 总结 : 1、贪心+排序 2、结构体 #include <bits/stdc++.h> using namespace std; typedef long long LL; const int N = 5010; int n, s; //苹果数 n,力气 s int a, b; //椅子
阅读全文
摘要:题目传递门 总结: 1、贪心策略:找出最前面的个高峰,发现一个干掉一个,如果没有那么多高峰,其余的就可最后一位删除。 2、字符串删除操作。 3、去除前导零。 #include <bits/stdc++.h> using namespace std; //共删除k个数字 int k; //输入的
阅读全文
摘要:题目传递门 首先我们可以把这几个糖果盒分对来讨论; 先从第一个糖果盒和第二个开始; 如果一个糖果盒的数量就超限了,我们当然至少要把它吃到剩下个; 然后如果单论两个都没有超限,但加起来超限了怎么办呢? 首先第一个糖果盒是只有一个分组的(和第二个), 而第二个糖果盒却有两个分组(和第个和第$
阅读全文
摘要:题目传送门 总结: 1、哈夫曼编码模板题 2、使用了STL中的优先队列 小根堆 priority_queue<int, vector<int>, greater<int> > q; 默认大根堆 priority_queue<int, vector<int>> q; 可多知识可以参考:https://
阅读全文
摘要:题目传递门 总结: 1、按右端点排序。 2、记录每一个的完成时间,如果下一个排好序的待进行考试的开始时间在本次完成时间后面,即为可选! #include <bits/stdc++.h> using namespace std; typedef long long LL; const int N =
阅读全文
摘要:题目传递门 #include <bits/stdc++.h> using namespace std; typedef long long LL; const int N = 1010; struct water { int num, time; } p[N]; bool cmp(const wat
阅读全文
摘要:题目传递门 总结: 1、贪心一般通用办法是排序。比如按大小排序,按金额排序,按性价比(单价)排序,按线段的左端点排序,按线段的右端点排序等。 本题为例,就是按单价进行排序,即价值/重量=由大到小来排序,这样效果最佳。 贪心策略的证明: 反证法:就是这么干不是最优的,我们可以不拿
阅读全文