随笔分类 - 贪心
摘要:Radar Installation 题解:区间选点问题 为什么是区间选点呢?关键是我们反着来看,如果将岛屿看成圆心,我们以雷达照射范围d为半径,我们可以X轴上找到一段区间,这段区间都可以放雷达使得该岛屿能被照射到,所以一个个雷达就产生了一个个区间,让雷达数最少覆盖所有区间,不就是区间选点嘛 #in
阅读全文
摘要:Buy Low Sell High 题解:反悔贪心 买股票,一天要么买进,要么卖出,要么什么也不干,求最大利润,首先我们很显然知道了这是一道反悔贪心的题目,我们选择全部买入,但是关键点在于我们怎么反悔 9 10 5 4 7 9 12 6 2 10 比如说这个样例,明显从5买入,12卖出优于从5买入,
阅读全文
摘要:Stas and the Queue at the Buffet 题解:贪心+思维 我们看到公式$ai⋅(j−1)+bi⋅(n−j)$,直接进行化简得到 $$ (a[i]-b[i])j+nb[i]-a[i] $$ 我们就知道$n*b[i]-a[i]$是个定值,所以我们把差值最大的放在前面,把最小的放
阅读全文
摘要:Crossing River 题解:贪心 经典过河问题:先对过河的人速度降序排序,我们要知道想要使时间最短,有两个地方可以贪心 1.去的时候减少时间浪费,就是说让两个速度慢的人一起过河 2.回来的时候减少时间浪费,就是说让速度最快的回来 然后我们直接模拟分析 当n==1时,直接过河 ans += a
阅读全文
摘要:Bread 题解:哈夫曼树模型 该题目是给出根节点,求出其WPL,但是我们要仔细阅读,题目说面包是可以被剩余的,所以我们只要将剩余的面包当成子节点放进队列即可 #include <bits/stdc++.h> #define Zeoy std::ios::sync_with_stdio(false)
阅读全文
摘要:Destroyer Takahashi 题解:区间选点问题 这里面他又给出了D,D其实可以代表他从右端点还可以往外延申D-1 的长度,实际上每次的$now=a[i].r+D-1$ #include <bits/stdc++.h> #define Zeoy std::ios::sync_with_st
阅读全文
摘要:[Painting the Array I](贪心入门 - Virtual Judge (vjudge.net)) 题解: 要使得数组a分成的两个数组长度之和最长,我们设$a^{(0)}$数组末尾元素为$ed0$,$a^{(1)}$数组末尾元素为$ed1$,一开始两个数组都为空,所以ed0=ed1=
阅读全文
摘要:[洛谷P2949 Work Scheduling G]([P2949 USACO09OPEN]Work Scheduling G - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)) [USACO09OPEN]Work Scheduling G 题面翻译 约翰有太多的工作要做。为了让农
阅读全文
摘要:计蒜客 - T2144 拼数 题解:把所有数字看成字符串,但是难道直接降序排就结束了嘛,不是的,我们来看一个反例:31 312 虽然312>31但是明显31312 > 31231,所以我们不能简单的排序,我们需要比较两个字符串x,y 如果x+y>y+x就将x排到前面,否则将y排到前面 #includ
阅读全文
摘要:题目传送门:https://www.luogu.com.cn/problem/P1223 题目: Description: 有 nn 个人在一个水龙头前排队接水,假如每个人接水的时间为 Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小。 Input: 第一行为一个整数n; 第二行
阅读全文