贪心
文章平均质量分 62
贪心
*DDL_GzmBlog
再见锋芒,准备启程
展开
-
[cf] 802 Div. 2 D - River Locks
tag:tag :tag: 传送门 :题意 :给定nnn个体积viv_ivi的水渠,每个水渠上面都有水管现在有qqq个询问对于每个询问,最少的开水管数使得能在tjt_jtj秒内填满所有水渠(显然如果一个水渠满了会流到下一个水渠里面)思路 :开闸数×时间≥总蓄水数开闸数 × 时间 \ge 总蓄水数开闸数×时间≥总蓄水数 , 显然可以使得总方案成立开闸数≥总蓄水数时间开闸数 \ge \frac{总蓄水数}{时间}开闸数≥时间总蓄水数同时又因为需要 最小, 所以 开闸数=总蓄水数时间开闸数 = \fra原创 2022-06-19 20:52:31 · 290 阅读 · 1 评论 -
[cf] Codeforces Round #793 (Div. 2) C. LIS or Reverse LIS?
前言tag:tag :tag: LIS 思维 贪心 排序传送门 :题意 :给定一个数组a[]a[]a[],对于该数组的价值是min(LIS(a),LIS(a′))min(LIS(a),LIS(a'))min(LIS(a),LIS(a′)),a′a'a′是aaa的翻转数组现在你可以任意排列aaa,询问最大的价值是多少思路 :显然因为取minminmin的关系,LIS(a)LIS(a)LIS(a)与LIS(a′)LIS(a')LIS(a′)相互约束,因此只有他们一半一半的时候才是最大的因此我们只原创 2022-05-23 19:53:37 · 125 阅读 · 0 评论 -
[Acwing] 算法基础课总结 六 贪心
目录区间问题1.区间选点区间问题1.区间选点题意 :给定多个区间,找到最少的点,使得每个区间至少包含一个点思路 :按照右端点排序,然后找L[i−1]<R[i]L[i-1]<R[i]L[i−1]<R[i],并且更新当前的右端点void solve(){ int n;cin>>n; vector<pii> v; for(int i=1;i<=n;i++){ int l,r;cin>>l>>r; v.pb(原创 2022-05-14 17:03:57 · 141 阅读 · 0 评论 -
[cf] Codeforces Round #789 (Div. 2)
前言传送门:B2.tag:tag :tag:贪心 分治 字符串给你一串010101 字符串,询问将其变为goodgoodgood的最小操作次数和最终状态的最小段数操作 :将111变为000,将000变为111good:good :good:当且仅当连续的11...11...11...,00..00..00..个数都为偶数的时候思路 :因为最终状态是 偶数所以必然存在s[i]=s[i+1]s[i]=s[i+1]s[i]=s[i+1],因此对于s[i]≠s[i+1]s[i]\neq s[i原创 2022-05-10 22:11:14 · 90 阅读 · 0 评论 -
[luogu] P5909 [CTSC2007]挂缀pendant 反悔贪心
前言那么什么是反悔贪心呢传送门 :思路这题可以抽象成为左端点为 cic_ici 长度为wiw_iwi 求区间最多且区间和最小的和如果直接贪心的话是不正确的,因为不清楚目前最优解是否最优优解,所以我们可以通过大根堆来维护每一次的最优解,如果存在可以更新答案的,我们就通过大根堆返回来做即可CODEstruct node{ int len ,r;}a[N];bool cmp(node x,node y){ return x.r<y.r; }int f[N];i原创 2021-11-14 21:03:36 · 441 阅读 · 0 评论 -
[补题|题解] Codeforces Round #739 (Div. 3)
前言我好菜啊传送门: https://www.luogu.com.cn/problem/CF509B思路要求任意两堆石头中相同颜色的石头的数量之差小于等于1因此不难想,我们可以贪心地做 :首先把所有石子都涂成相同的颜色 比如: ‘1’但是问题就来了:其他颜色还没用到,这么贪心 大概率是错的因此我们只需要把 minn +1 的石子 全涂成相同的颜色然后剩下的 我们就把剩下的颜色涂上去贪心行不行呢? 交一发再说CODE#include <bits/stdc++.h>原创 2021-09-30 09:27:36 · 95 阅读 · 0 评论 -
[Acwing]3745. 牛的学术圈 I
前言传送门 :思路读完题之后可以知道的是 1<=h<=n1<=h <=n1<=h<=n因为我们可以遍历每一个i=ni = ni=n 判断是否可行那么条件是什么呢 ?显然如果我们从小到大枚举的话,贪心的情况下,小的hhh应该都要收入囊中的因此对于每一个合法的iii,我们都令(n−cnt[i])//cnt为i的出现次数(n-cnt[i])//cnt为i的出现次数(n−cnt[i])//cnt为i的出现次数如果当前的n+cnt[i]<=in+cnt[i原创 2022-03-16 22:34:10 · 516 阅读 · 0 评论