
贪心
Lupin123123
这个作者很懒,什么都没留下…
展开
-
Binary String
题目链接题意:从一个二进制串中删除若干的字符,问最少删除几次才能使这个二进制小于所给的k。思路:贪心。优先删除1,不够再删0。注意删1要从次高位开始。cut and paste法证明:完整代码:#include<bits/stdc++.h>#define FAST ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)#define INF 0x3f3f3f3ftypedef long long ll;const int maxn原创 2021-08-26 16:29:50 · 777 阅读 · 0 评论 -
Lexical Sign Sequence
题目链接贪心+树状数组题目大意:构造出一个字典序最小的信号序列(只含1,-1)使得k个指定的区间的和大于等于给定值。思路:可以一开始先让所有empty的部分都成为-1,然后将k个区间按右端点从小到大的顺序排序,去满足每一个区间的时候从后向前把-1改成1。然后说一下为什么要把区间按右端点从小到大排序,一开始我贪心的想法是优先满足右端点大的区间,当时觉得把1尽量往后填字典序就会小。然而这个贪心是不对的。完整代码:#include<bits/stdc++.h>#define FAST原创 2021-08-26 12:08:38 · 105 阅读 · 0 评论 -
[Luogu] P2887 Sunscreen G
题目链接区间与点的匹配问题题目大意:有n个区间,m个点,一个点只能匹配一个区间,求最大匹配数。思路:贪心+优先队列。将点按从小到大排序,区间按左端点从小到大排序,定义一个小根堆。对于每一个点,在所有有可能与其匹配的区间中优先匹配右端点小的,因为右端点大的更可能与更大的点成功匹配。完整代码:#include<bits/stdc++.h>#define FAST ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)#define INF原创 2021-08-24 21:19:29 · 123 阅读 · 0 评论