随笔分类 - 贪心
摘要:前言:最近写了很多关于堆模拟费用流的题,说通俗一点就是用(堆+后悔操作)去实现贪心。 例题: 例1:POJ 2431 Expedition 解析:这题应该是这类套路里面最简单的一道题了, 每经过一个加油站相当于拥有了在这个加油站加油的权力,那么将这个加油站的油加入堆,一旦以后油不够用了,就从堆中取出
阅读全文
摘要:题意: 奶牛有n天销售酸奶,每天的成本为$C_i$,销售数量为$Y_i$,你可以在当天现做现卖,也可以用以前储备下来的酸奶,但是每单位每储备一天需要额外花费s元,求销售所有酸奶的最小代价。 题解: 贪心 对每天的单位成本取min即可。 include include include include
阅读全文
摘要:题意: 给出n个点的坐标,每个点有一个半径r,先可以对点染色,要求每个点的覆盖范围内必有一被染色的点。 题解: 首先可以将点转化为区间来看; 发现从最左边的点开始,每次选能覆盖到的最右边的点总是不会差的; 选到那个点之后,再从那个点开始跳到那个点r之外的第一个点; include include i
阅读全文
摘要:题意: "传送门" 题解: 贪心 f[i]表示在i号点使用加速器,能使后面多少个点受益 sum[i]表示在i站及i站以前有多少人下车 找出在哪个站使用加速器最多能使多少人受益 贪心k次即可 include include include include include include define
阅读全文
摘要:题意: "传送门" 题解: 贪心+并查集 include include include include include include define ll long long define N 200010 using namespace std; int fa[Na.z; } }e[N]; in
阅读全文
摘要:题意:有一个国王和n个大臣,排成一列玩一个,每个人左右手分别有一个数值,每个人的分值定义为之前所有人左手的分值和除以自己右手的分值(下取整),国王始终站在最前面,现要你安排大臣的顺序,使得分值最大的大臣的分值尽量小 题解: 贪心+高精 按左右手乘积从小到大排序 所有数的乘积最大不超过$10^{400
阅读全文
摘要:题意:小朋友进行了n(n<=10000)场考试,每场考试有一个满分fi和他自己的分数wi(fi,wi<=10^50),小朋友很不老实,他要修改分数来骗他的爸爸妈妈,他有一个单个数字互相转化的表,他想要将他的分数该成单调不降且总和最大 题解: floyd+贪心构造 先用floyd求出数字之间能否转化
阅读全文
摘要:题意:N个高度不一的机器,排成一列,为了把他们排成高度递增的一列,每次可以交换两个机器,代价为两个机器的和 题解: 贪心+置换 1、用每个置换内部的最小值交换置换长度减一次,其他点交换一次 2、引入外部的最小点,交换它与内部最小点的位置,交换置换长度+2次后再把内部最小点换回来,其他点交换一次
阅读全文
摘要:题意:N头牛,每头牛有一个重量和一个力量,每头牛承受的YaLi为在它上面的所有牛的重量之和减去它的力量,要求最小化最大YaLi 题解: 贪心 重量+力量越大的放在越下面 证明: 假设最优放置,取相邻两头牛A(w1,s1),B(w2,s2),sum表示第一头牛所承受的重量 A的代价:a=sum-s1,
阅读全文
摘要:Description As a reward for record milk production, Farmer John has decided to start paying Bessie the cow a small weekly allowance. FJ has a set of c
阅读全文
摘要:Description Assume the coasting is an infinite straight line. Land is in one side of coasting, sea in the other. Each small island is a point locating
阅读全文
摘要:一、线段覆盖 n个开区间(ai,bi),选择尽量多个区间,使得这些区间两两不相交 右端点排序(<)兼顾左端点(>),再从左到右遇到不相交的就选 二、区间选点 n个闭区间[ai,bi],选择尽量少的点,使得每个区间至少有一个点 右端点排序(<)兼顾左端点(>),每次选择可选区间的最后一个点 三、区间覆
阅读全文
摘要:题目描述 春春幼儿园举办了一年一度的“积木大赛”。今年比赛的内容是搭建一座宽度为n的大厦,大厦可以看成由n块宽度为1的积木组成,第i块积木的最终高度需要是hi。 在搭建开始之前,没有任何积木(可以看成n块高度为 0 的积木)。接下来每次操作,小朋友们可以选择一段连续区间[l, r],然后将第第 L
阅读全文