<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[mapleleafcn的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/mapleleafcn</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; mapleleafcn]]></copyright><item><title><![CDATA[1436. 数列分段II]]></title><link>https://blog.youkuaiyun.com/mapleleafcn/article/details/141264455</link><guid>https://blog.youkuaiyun.com/mapleleafcn/article/details/141264455</guid><author>mapleleafcn</author><pubDate>Fri, 16 Aug 2024 17:21:54 +0800</pubDate><description><![CDATA[信息学奥赛一本通 二分查找【题目描述】对于给定的一个长度为N的正整数数列A[i]，现要将其分成M（M≤N）段，并要求每段连续，且每段和的最大值最小。关于最大值最小：例如一数列4 2 4 5 1要分成3段将其如下分段：第一段和为6，第2段和为9，第3段和为1，和最大值为9。将其如下分段：第一段和为4，第2段和为6，第3段和为6，和最大值为6。并且无论如何分段，最大值不会小于6。所以可以得到要将数列4 2 4 5 1要分成3段，每段和的最大值最小为6。【输入】]]></description><category></category></item><item><title><![CDATA[1435.【例题3】曲线]]></title><link>https://blog.youkuaiyun.com/mapleleafcn/article/details/141196644</link><guid>https://blog.youkuaiyun.com/mapleleafcn/article/details/141196644</guid><author>mapleleafcn</author><pubDate>Wed, 14 Aug 2024 18:10:42 +0800</pubDate><description><![CDATA[信息学奥赛一本通 二分查找【题目描述】明明做作业的时候遇到了nn个二次函数Si(x)=ax2+bx+c，他突发奇想设计了一个新的函数F(x)=max(Si(x)), i=1,2...n。明明现在想求这个函数在[0,1000]的最小值，要求精确到小数点后四位四舍五入。【输入】]]></description><category></category></item><item><title><![CDATA[1434.【例题2】Best Cow Fences]]></title><link>https://blog.youkuaiyun.com/mapleleafcn/article/details/141034810</link><guid>https://blog.youkuaiyun.com/mapleleafcn/article/details/141034810</guid><author>mapleleafcn</author><pubDate>Thu, 08 Aug 2024 20:20:53 +0800</pubDate><description><![CDATA[信息学一本通 二分查找【题目描述】给定一个长度为n的正整数序列A。求一个平均数最大的，长度不小于L的子序列。【输入】第一行，n和L；n个正整数，表示A。【输出】一个整数，表示答案的1000倍（不用四舍五入，直接输出）。【输入样例】10 6【输出样例】6500【提示】n ≤ 100000【分析】依题意，需要找到一个最大的平均值，此时有一段数量大于等于L的子序列存在。那么可以考虑采用二分查找的方式在平均值范围内尝试查找，这个范围可以估摸为0～1e6。]]></description><category></category></item><item><title><![CDATA[1433.【例题1】愤怒的牛]]></title><link>https://blog.youkuaiyun.com/mapleleafcn/article/details/141024282</link><guid>https://blog.youkuaiyun.com/mapleleafcn/article/details/141024282</guid><author>mapleleafcn</author><pubDate>Thu, 08 Aug 2024 13:50:51 +0800</pubDate><description><![CDATA[农夫 John 建造了一座很长的畜栏，它包括N(2≤N≤100,000)隔间，这些小隔间依次编号为x1,...,xN(0≤xi≤1,000,000,000). 但是，John的C(2≤C≤N)头牛们并不喜欢这种布局，而且几头牛放在一个隔间里，他们就要发生争斗。John决定自己给牛分配隔间，使任意两头牛之间的最小距离尽可能的大，那么，这个最大的最小距离是什么呢。先将奶牛仓按编号升序排列好，例子中排好是1 2 4 8 9，把奶牛放1 4 8里，这样最大间隔是3。把牛放在1，4，8这样最小距离是3。]]></description><category></category></item><item><title><![CDATA[1432. 糖果传递]]></title><link>https://blog.youkuaiyun.com/mapleleafcn/article/details/140985543</link><guid>https://blog.youkuaiyun.com/mapleleafcn/article/details/140985543</guid><author>mapleleafcn</author><pubDate>Wed, 07 Aug 2024 10:59:10 +0800</pubDate><description><![CDATA[x1 + x2 + x3 +...+ xn的值最小，即移动代价最小才符合题目要求，题目求解转化为求点到所有点之间的距离和。有nn个小朋友坐成一圈，每人有aiai个糖果。用x1...xn表示i小朋友给左边小朋友的糖果数量,正数为给予，负数为索取。当前小朋友手头的糖果 - 给左边的糖果 + 右边给的糖果 = 平均值。接下来n行，每行一个整数ai，表示第i个小朋友得到的糖果的颗数．。本题网上有许多题解，这里对于一些细节做一下阐述，以方便理解代码。求使所有人获得均等糖果的最小代价。信息学奥赛一本通 贪心算法。]]></description><category></category></item><item><title><![CDATA[1431. 钓鱼]]></title><link>https://blog.youkuaiyun.com/mapleleafcn/article/details/140982641</link><guid>https://blog.youkuaiyun.com/mapleleafcn/article/details/140982641</guid><author>mapleleafcn</author><pubDate>Wed, 07 Aug 2024 10:41:49 +0800</pubDate><description><![CDATA[信息学奥赛一本通 贪心算法【题目描述】在一条水平路边，有 n 个钓鱼湖，从左到右编号为 1,2,…,n。佳佳有 HH个小时的空余时间，他希望利用这个时间钓到更多的鱼。他从 11出发，向右走，有选择的在一些湖边停留一定的时间（是 5分钟的倍数）钓鱼。最后在某一个湖边结束钓鱼。佳佳从第 i个湖到第 i+1个湖需要走 5×Ti分钟路，还测出在第 ii个湖停留，第一个 55分钟可以钓到 Fi条鱼，以后每再钓 5分钟，可以钓到的鱼量减少 Di，若减少后的鱼量小于 0，则减少后的鱼量为 0。]]></description><category></category></item><item><title><![CDATA[1430. 家庭作业]]></title><link>https://blog.youkuaiyun.com/mapleleafcn/article/details/140766371</link><guid>https://blog.youkuaiyun.com/mapleleafcn/article/details/140766371</guid><author>mapleleafcn</author><pubDate>Mon, 29 Jul 2024 11:17:15 +0800</pubDate><description><![CDATA[题目测试数据量比较大，需要考虑节省查找时间，当发现一个截止日期以及它之前的日期都不能安排，则需要记载下来，当下次检查到这个日期时就可以停止了。老师在开学第一天就把所有作业都布置了，每个作业如果在规定的时间内交上来的话才有学分。例如如果一个作业学分为10，要求在6天内交，那么要想拿到这10学分，就必须在第6天结束前交。最多可以获得15学分，其中一个完成作业的次序为2，6，3，1，7，5，4，注意可能d还有其他方法。接下来N行，每行包括两个整数，第一个整数表示作业的完成期限，第二个数表示该作业的学分。]]></description><category></category></item><item><title><![CDATA[1429. 线段]]></title><link>https://blog.youkuaiyun.com/mapleleafcn/article/details/140765231</link><guid>https://blog.youkuaiyun.com/mapleleafcn/article/details/140765231</guid><author>mapleleafcn</author><pubDate>Mon, 29 Jul 2024 11:06:10 +0800</pubDate><description><![CDATA[按照左端升序，选了0-2后，只能选2-5，结果k为2。如果按照右端升序，选0-2，3-4，4-5，结果k为3。样例的数据看不出来，现补充一个样例数据，就能明显看出来了。在一个数轴上有n条线段，现选取其中k条线段使得这k条线段两两没有重合部分，问最大的k为多少?对于20%的数据，n≤1000000,0≤ai<bi≤1000000。第一行为一个正整数n，下面n行每行2个数字ai，bi描述每条线段。对于70%的数据，n≤100000。对于20%的数据，n≤10。信息学奥赛一本通 贪心算法。]]></description><category></category></item><item><title><![CDATA[1428. 数列分段]]></title><link>https://blog.youkuaiyun.com/mapleleafcn/article/details/140733714</link><guid>https://blog.youkuaiyun.com/mapleleafcn/article/details/140733714</guid><author>mapleleafcn</author><pubDate>Sat, 27 Jul 2024 12:56:01 +0800</pubDate><description><![CDATA[信息学奥赛一本通 贪心算法【题目描述】对于给定的一个长度为N的正整数数列A[i]，现要将其分成连续的若干段，并且每段和不超过M（可以等于M），问最少能将其分成多少段使得满足要求。【输入】第1行包含两个正整数N，M，表示了数列A[i]的长度与每段和的最大值；第2行包含N个空格隔开的非负整数A[i]，如题目所述。【输出】一个正整数，输出最少划分的段数。【输入样例】5 64 2 4 5 1【输出样例】3【提示】【数据范围】对于20%的数据，有N≤10；]]></description><category></category></item><item><title><![CDATA[1427. 数列极差]]></title><link>https://blog.youkuaiyun.com/mapleleafcn/article/details/140601100</link><guid>https://blog.youkuaiyun.com/mapleleafcn/article/details/140601100</guid><author>mapleleafcn</author><pubDate>Mon, 22 Jul 2024 09:49:27 +0800</pubDate><description><![CDATA[信息学奥赛一本通 贪心算法【题目描述】在黑板上写了N个正整数作成的一个数列，进行如下操作：每一次擦去其中的两个数a和b，然后在数列中加入一个数a×b+1，如此下去直至黑板上剩下一个数，在所有按这种操作方式最后得到的数中，最大的max，最小的为min，则该数列的极差定义为M=max−min。【输入】第一行，一个数为N;第二行，N个数。【输出】输出极差。【输入样例】31 2 3【输出样例】2【分析】尝试用样例数据进行计算，发现升序结果大，降序结果小。]]></description><category></category></item><item><title><![CDATA[1426. 智力大冲浪]]></title><link>https://blog.youkuaiyun.com/mapleleafcn/article/details/140591629</link><guid>https://blog.youkuaiyun.com/mapleleafcn/article/details/140591629</guid><author>mapleleafcn</author><pubDate>Sun, 21 Jul 2024 18:43:48 +0800</pubDate><description><![CDATA[接下来主持人宣布了比赛规则： 首先，比赛时间分为n个时段(n≤500)，它又给出了很多小游戏，每个小游戏都必须在规定期限ti前完成(1≤ti≤n)。如果一个游戏没能在规定期限前完成，则要从奖励费m元中扣去一部分钱wi，wi为自然数，不同的游戏扣去的钱是不一样的。格子默认都是空的，优先把游戏安排在截止时间的格子里，70安排在4号，60安排在2号，50默认的4号格已经安排，安排在3号，40也只能安排在1号，30无法安排，加入扣款，20无法安排，加入扣款，10安排到6号。第二行为n，表示有n个小游戏；]]></description><category></category></item><item><title><![CDATA[1425. 加工生产调度]]></title><link>https://blog.youkuaiyun.com/mapleleafcn/article/details/140576072</link><guid>https://blog.youkuaiyun.com/mapleleafcn/article/details/140576072</guid><author>mapleleafcn</author><pubDate>Sat, 20 Jul 2024 19:48:05 +0800</pubDate><description><![CDATA[首先找出a，b中最小值，根据最小值升序，然后依次看最小值等于a还是等于b，等于a的在队列左边，等于b的在队列右边，这样依次重新安排好位置。排好序后，用当前a与前一个b相比较，当a>=b时，统计a，当a<b时，统计b，同时a可以继续生产下一个产品，在下一个产品的a里扣去已经生产的时间。某工厂收到了 n个产品的订单，这 n 个产品分别在 A、B 两个车间加工，并且必须先在 A 车间加工后才可以到 B 车间加工。这里所说的加工时间是指：从开始加工第一个产品到最后所有的产品都已在 A，B 两车间加工完毕的时间。]]></description><category></category></item><item><title><![CDATA[1424. 喷水装置]]></title><link>https://blog.youkuaiyun.com/mapleleafcn/article/details/140565794</link><guid>https://blog.youkuaiyun.com/mapleleafcn/article/details/140565794</guid><author>mapleleafcn</author><pubDate>Sat, 20 Jul 2024 09:49:05 +0800</pubDate><description><![CDATA[我们知道每个喷头的位置（离草坪中心线左端的距离），以及它能覆盖到的浇灌范围。我将样例中一个数据用图展示，最后三段那边体现了贪心算法，蓝色线段未选择，选择了黄色线段。接下来的 n𝑛 行，每行包含两个整数，给出一个喷头的位置和浇灌半径（上面的示意图是样例输入第一组数据所描述的情况）。2. 计算喷头覆盖范围左端点、右端点位置，即线段的左、右端点位置，要用到勾股定理，具体请看借来的一张图。将圆的覆盖转换为矩形覆盖，在长为L，宽为W的矩形中，查找全覆盖的最少喷头数量。对于 100% 的数据，n≤15000。]]></description><category></category></item><item><title><![CDATA[1423. 种树]]></title><link>https://blog.youkuaiyun.com/mapleleafcn/article/details/140430312</link><guid>https://blog.youkuaiyun.com/mapleleafcn/article/details/140430312</guid><author>mapleleafcn</author><pubDate>Mon, 15 Jul 2024 10:13:40 +0800</pubDate><description><![CDATA[当然，B≤E，居民必须记住在指定区不能种多于区域地块数的树，所以T≤E-B+l。居民们想种树的各自区域可以交叉。一开始没有审好题，以为每段只能是T课树，题目描述树至少T课树，即当前段的数量可能大于T。最初代码如下所示，我把代码中的temp <= 0写成 temp == 0，认为每段中只能是T课树，死活通不过，改成小于等于就能通过了。第一行包含数据N，M，区域的个数(0<N≤30000)，房子的数目(0<m≤5000)；下面的m行描述居民们的需要：B E T，0<B≤E≤30000，T≤E-B+1。]]></description><category></category></item><item><title><![CDATA[1671.扑克牌]]></title><link>https://blog.youkuaiyun.com/mapleleafcn/article/details/140330874</link><guid>https://blog.youkuaiyun.com/mapleleafcn/article/details/140330874</guid><author>mapleleafcn</author><pubDate>Thu, 11 Jul 2024 07:42:11 +0800</pubDate><description><![CDATA[补充样例中，不使用特殊牌，只能凑出1副牌（1，2，3，4，5），将特殊牌补充到1里，可以凑出2副牌（T，2，3，4，5 / 1，2，3，4，5），再将特殊牌补充到1、2各一个，可以凑出3副牌，如上面表格所示。5种牌分别各有5张，就以1、2、3、4、5来表示，即1有5张，2有5张……那么答案的6副牌是什么样的呢，我用表格来表示，每一行表示一副牌，其中T表示特殊牌。也是五种牌，每种牌的数量不相同了，需要先对牌的数量进行一个排序，表格中上面三行对应答案的3副牌。内存限制: 262144KB。]]></description><category></category></item></channel></rss>