思维与基础
文章平均质量分 50
思维
杪渊探骊
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
天梯L2-014 列车调度 (25 分)【二分】
Date:2022.04.20题意描述:火车站的列车调度铁轨的结构如下图所示。两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。每趟列车从入口可以选择任意一条轨道进入,最后从出口离开。在图中有9趟列车,在入口处按照{8,4,2,5,3,9,1,6,7}的顺序排队等待进入。如果要求它们必须按序号递减的顺序从出口离开,则至少需要多少条平行铁轨用于调度?输入格式:输入第一行给出一个整数N (2 ≤ N ≤10^5),下一行给出从1到N的整数序号的一个重排列。原创 2022-04-20 17:59:41 · 304 阅读 · 0 评论 -
【进阶指南】合并果子【哈夫曼树/贪心】
Date:2022.04.06题意描述:在一个果园里,达达已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。达达决定把所有的果子合成一堆。每一次合并,达达可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过 n−1 次合并之后,就只剩下一堆了。达达在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以达达在合并果子时要尽可能地节省体力。假定每个果子重量都为 1,并且已知果子的种类数和每种果子的数目,你的任务是设计原创 2022-04-06 22:02:53 · 185 阅读 · 0 评论 -
【进阶指南】糖果传递【贪心】
Date:2022.04.05题意描述:有 n 个小朋友坐成一圈,每人有 a[i] 个糖果。每人只能给左右两人传递糖果。每人每次传递一个糖果代价为 1。求使所有人获得均等糖果的最小代价。输入格式第一行输入一个正整数 n,表示小朋友的个数。接下来 n 行,每行一个整数 a[i],表示第 i 个小朋友初始得到的糖果的颗数。输出格式输出一个整数,表示最小代价。数据范围1≤n≤1000000,0≤a[i]≤2×109,数据保证一定有解。输入样例:41254输出样例:4思原创 2022-04-05 16:07:30 · 861 阅读 · 0 评论 -
【进阶指南】货仓选址【贪心】
Date:2022.04.03题意描述:在一条数轴上有 N 家商店,它们的坐标分别为 A1∼AN。现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。输入格式第一行输入整数 N。第二行 N 个整数 A1∼AN。输出格式输出一个整数,表示距离之和的最小值。数据范围1≤N≤100000,0≤Ai≤40000输入样例:46 2 9 1输出样例:12思路:核心思想:绝对值不等式。假设有俩点原创 2022-04-05 11:31:52 · 442 阅读 · 0 评论 -
第九届蓝桥杯省赛CB 8.日志统计【双指针】
Date:2022.04.02题意描述:小明维护着一个程序员论坛。现在他收集了一份”点赞”日志,日志共有 N 行。其中每一行的格式是:ts id表示在 ts 时刻编号 id 的帖子收到一个”赞”。现在小明想统计有哪些帖子曾经是”热帖”。如果一个帖子曾在任意一个长度为 D 的时间段内收到不少于 K 个赞,小明就认为这个帖子曾是”热帖”。具体来说,如果存在某个时刻 T 满足该帖在 [T,T+D) 这段时间内(注意是左闭右开区间)收到不少于 K 个赞,该帖就曾是”热帖”。给定日志,请你帮助小明统原创 2022-04-02 18:19:30 · 128 阅读 · 0 评论 -
第九届蓝桥杯省赛CB 7.螺旋折线【思维】
Date:2022.04.01题意描述:如下图所示的螺旋折线经过平面上所有整点恰好一次。对于整点 (X,Y),我们定义它到原点的距离 dis(X,Y) 是从原点到 (X,Y) 的螺旋折线段的长度。例如 dis(0,1)=3,dis(−2,−1)=9给出整点坐标 (X,Y),你能计算出 dis(X,Y) 吗?输入格式包含两个整数 X,Y。输出格式输出一个整数,表示 dis(X,Y)。数据范围−109≤X,Y≤109输入样例:0 1输出样例:3思路:观察可得找到绝对值最大的横纵原创 2022-04-02 01:58:21 · 335 阅读 · 0 评论 -
赛氪2021-2022冬季个人赛 -B.Error【二分】
Date:2022.03.27Description刚进入富土康的 Yassin 在进行对 iPhone 的零件设计,众所周知,测量总是有误差的。现在 Yassin 需要对他的误差进行一定的计算。现在已经给定的图纸中标定了 n 个零件的大小,我们不妨将其即为 an, 而 Yassin 需要确定一个最小误差 eps, 并用误差范围内的数据来从小到大生产一系列零件。具体而言,需要确定一个最小的 eps, 使得存在这样一个 上升*的正整数序列 bn , 满足对于任意的1<=i<=n,都有abs原创 2022-03-28 01:16:39 · 889 阅读 · 0 评论 -
第七届蓝桥杯省赛CB 8.四平方和【二分】
Date:2022.03.22题意描述:四平方和定理,又称为拉格朗日定理:每个正整数都可以表示为至多 4 个正整数的平方和。如果把 0 包括进去,就正好可以表示为 4 个数的平方和。比如:5=02+02+12+227=12+12+12+22对于一个给定的正整数,可能存在多种平方和的表示法。要求你对 4 个数排序:0≤a≤b≤c≤d并对所有的可能表示法按 a,b,c,d 为联合主键升序排列,最后输出第一个表示法。输入格式输入一个正整数 N。输出格式输出4个非负整数,按从小到大排序原创 2022-03-24 02:38:44 · 107 阅读 · 0 评论 -
第八届蓝桥杯省赛CB 9.分巧克力【二分】
Date:2022.03.24题目描述:儿童节那天有 K 位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有 N 块巧克力,其中第 i 块是 Hi×Wi 的方格组成的长方形。为了公平起见,小明需要从这 N 块巧克力中切出 K 块巧克力分给小朋友们。切出的巧克力需要满足:形状是正方形,边长是整数大小相同例如一块 6×5 的巧克力可以切出 6 块 2×2 的巧克力或者 2 块 3×3 的巧克力。当然小朋友们都希望得到的巧克力尽可能大,你能帮小明计算出最大的边长是多少么?输原创 2022-03-24 02:31:30 · 110 阅读 · 0 评论 -
洛谷P2434 [SDOI2005]区间【区间合并】
Date:2022.03.16题目描述现给定 n 个闭区间 [ai, bi](1≤i≤n)。这些区间的并可以表示为一些不相交的闭区间的并。你的任务就是在这些表示方式中找出包含最少区间的方案。你的输出应该按照区间的升序排列。这里如果说两个区间 [a, b] 和 [c, d]是按照升序排列的,那么我们有a≤b<c≤d。请写一个程序:读入这些区间;计算满足给定条件的不相交闭区间;把这些区间按照升序输出。输入格式第一行包含一个整数 n(3≤n≤50000)为区间的数目。以下 nn 行为对区间原创 2022-03-16 11:49:34 · 360 阅读 · 0 评论 -
cf Round #775 Div.2 -D【逆向思维+简单数学】
Date:2022.03.06题意:给一个数组,是否能满足其中任意两个元素x>=y保证⌊xy⌋\lfloor \frac{x}{y} \rfloor⌊yx⌋存在于数组中。思路:打表每个数的倍数(保证<=最大值),找性质。以样例中的1 3 3 7为例,打表如下:1 2 3 4 5 6 73 63 67我们再以3 6为例,分别是3×1、3×23\times1、3\times23×1、3×2,这里的1、2即代表数组中是否能有数???使得?/3==1、2?/3==1、2?/3==1、2原创 2022-03-15 17:44:19 · 783 阅读 · 0 评论 -
洛谷P2370 yyy2015c01 的 U 盘【贪心 / 二分+01背包DP】【黄】
Date:2022.03.13题目描述你找 yyy2015c01 借到了这个高端的 U 盘,拷贝一些重要资料,但是你发现这个 U 盘有一些问题:这个 U 盘的传输接口很小,只能传输大小不超过 LL 的文件。这个 U 盘容量很小,一共只能装不超过 SS 的文件。但是你要备份的资料却有很多,你只能备份其中的一部分。为了选择要备份哪些文件,你给所有文件设置了一个价值 ViV_iVi,你希望备份的文件总价值不小于 p。但是很快你发现这是不可能的,因为 yyy2015c01 的传输接口太小了,你只有花原创 2022-03-13 16:31:32 · 494 阅读 · 0 评论 -
【寒假每日一题2022】acw1934. 贝茜放慢脚步【二路归并】
Date:2022.02.21题意:奶牛贝茜正在参加冬季哞林匹克运动会的越野滑雪比赛。她以每秒 1 米的速度出发。但是,随着时间的推移,她变得越来越疲倦,她开始放慢脚步。每次放慢脚步,贝茜的速度都会降低:减速一次后,她以每秒 1/2 米的速度移动,减速两次后,则以每秒 1/3 米的速度移动,依此类推。你将被告知何时何地贝茜会减速。当减速信息格式为:T 17意味着,贝茜在某个时间点减速,本例表示比赛开始第 17 秒贝茜减速。当减速信息格式为:D 10意味着,贝茜在某个地点减速,本例表示原创 2022-02-21 16:09:13 · 270 阅读 · 0 评论 -
【2022寒假基础集训】第二场 -A.小沙的炉石【二分】
Date:2022.02.17时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld题目描述小沙热衷于玩决斗法,今天他和他的弟弟玩起了炉石,弟弟特别特别的菜,但是为了照顾弟弟的自尊心,所以小沙想要恰好将弟弟斩杀。恰好斩杀:弟弟的血量恰好变成0。小沙当前的手上有n张法术进攻牌,每张牌都会消耗一点法力,造成一点基础伤害,有mm张法术回复牌,不需要消耗法力值,每次可以恢复一点法力。小沙一开始有一点法力,法力没有上原创 2022-02-18 16:13:41 · 549 阅读 · 0 评论 -
【进阶指南】基本算法 - 费解的开关【递推+开关灯模型】
Date:2022.02.02题意:你玩过“拉灯”游戏吗?25 盏灯排成一个 5×5 的方形。每一个灯都有一个开关,游戏者可以改变它的状态。每一步,游戏者可以改变某一个灯的状态。游戏者改变一个灯的状态会产生连锁反应:和这个灯上下左右相邻的灯也要相应地改变其状态。我们用数字 1 表示一盏开着的灯,用数字 0 表示关着的灯。下面这种状态1011101101101111000011011在改变了最左上角的灯的状态后将变成:0111111101101111000011011再原创 2022-02-04 16:04:43 · 1332 阅读 · 0 评论 -
cf1360 Round #644 Div3-F【思维】
Date:2022.01.29题意:给定n个字符串,求解一个串,使所得串与n个串中的每一个至多含有一个不同的字符。不存在输出-1。思路:开始硬枚举半天,首先发现任意两个串间存在>2个不同字符一定不满足,其次枚举改变不同的字符,在与其它匹配,大可不必。直接枚举每个串在每个位置是其它字母时的衍生串,map记录字符串被衍生的次数,每一个都<=n(因为最多被n个串中的每一个衍生1次),找到被每个串衍生1次即总共被衍生n次的串即可。此外注意每个串原串也算如map,但只算入一次。代码如下:#inc原创 2022-01-30 14:46:28 · 448 阅读 · 0 评论 -
【寒假每日一题2022】acw1952.金发姑娘和 N 头牛【差分+离散化】
Date:2022.01.25题意你可能听过关于金发姑娘和三只熊的经典故事。然而,鲜为人知的是,金发姑娘最终成了一个农民。在她的农场中,她的牛棚里有 N 头奶牛。不幸的是,她的奶牛对温度相当敏感。对于奶牛 i,使其感到舒适的温度为 Ai…Bi。如果金发姑娘将牛棚的恒温器的温度 T 设置为 T<Ai,奶牛就会觉得冷,并会产出 X 单位的牛奶。如果她将恒温器的温度 T 设置在 Ai≤T≤Bi,奶牛就会感到舒适,并会产出 Y 单位的牛奶。如果她将恒温器的温度 T 设置为 T>Bi,奶原创 2022-01-25 17:52:11 · 186 阅读 · 0 评论 -
cf1373 Educational Round 90 Div.2-D【差分+思维】
Date:2022.01.03题意:假设下标从1开始,只能翻转一次某一子序列,求下标为奇数的最大和。思路①:首先显然交换的区间长度为奇数是没有意义的,因此如果交换区间长度只能固定为偶数。模拟一下不难发现翻转本质是让一个区间的值从奇数项和变为偶数项和,因此只需要找到偶数项和 - 奇数项和值最大的那个区间即可,我们先暴力试一下。代码如下:#include <bits/stdc++.h>using namespace std;const int N = 3e5+10;typed原创 2022-01-03 17:05:47 · 382 阅读 · 0 评论 -
【寒假每日一题2022】acw1945. 奶牛棒球【二分】
Date:2022.01.25题意:农夫约翰的 N 头奶牛排成一排,每头奶牛都位于数轴中的不同位置上。它们正在练习投掷棒球。农夫约翰观看时,观察到一组三头牛 (X,Y,Z) 完成了两次成功的投掷。牛 X 把球扔给她右边的牛 Y,然后牛 Y 把球扔给她右边的牛 Z。约翰指出,第二次投掷的距离不少于第一次投掷的距离,也不超过第一次投掷的距离的两倍。请计算共有多少组牛 (X,Y,Z) 可能是约翰所看到的。输入格式第一行包含整数 N。接下来 N 行,每行描述一头牛的位置。输出格式输出奶牛三元原创 2022-01-25 18:39:08 · 677 阅读 · 0 评论 -
cf1077 Round #521 Div3-D【二分】
Date:2022.01.21题意:给定一个数组s,求出长度为k的数组t,保证每次从s中删去t数组中的k个元素,求在s中删除的元素数量最多是多少。思路:循环元长度为k,删除的总数一定是k的整数倍,称这个整数为“轮数”,我们二分“轮数”,找到最恰当的“轮数”,即:使“轮数”在满足条件的前提下最大,这样删除的元素数量最多。此外注意循环元中只有k个元素,多余的舍弃不输出。代码如下:#include <iostream>#include <cstring>#include &l原创 2022-01-21 18:39:23 · 111 阅读 · 0 评论 -
cf1461 Round #689 Div2-D【二分查找+前缀和】
Date:2022.01.12题意:长度为n的序列,每次可将当前序列分为两半,规则:mid=(a[max]+a[min])/2mid=(a[max]+a[min])/2mid=(a[max]+a[min])/2,所有<=mid的放到左边一类,>mid的放到右边一边,每次永久舍弃一边。m个询问,问能不能找到和为当前值的,能输出Yes,不能No。思路:求所有可能的和,先处理前缀和。因为每次都最多选<=mid或>mid的一半,因此估算期望大概lognlognlogn层,自然考虑打表。原创 2022-01-13 00:32:24 · 160 阅读 · 0 评论 -
cf1623 Round #763 Div2-C【二分+贪心】
Date:2021.12.28题意:n个元素,第i个元素可以分给第i-1个元素d,分给第i-2个元素2 * d(前提是第i个能分出3 * d),求分配若干次后n个元素中最小值最大是多少。我们先来看下原题:思路:二分答案,如何check?首先,一个元素只会影响它前面的两个元素,因此我们从后往前来想,我们每次二分答案为mid,从最右面的元素开始贪心的减,即保证>=mid的前提下分出最多的给前面两个。如果遍历到任一元素<mid,则说明mid大了应该变小,并且当前mid也不合法。我们还是原创 2021-12-30 21:14:12 · 369 阅读 · 0 评论 -
cf166 Round #113 Div2-C【构造+二分】
Date:2021.12.31题意:给定一个序列,给定一个数x,求最小添加多少个数使得x为中位数。注意这里的中位数(n+1)/2向下取整的。思路:排个序,先看中位数是否存在。①如果x不存在,加一个x一定最少,再然后判断至少加多少个数它才能到中位数。【这里非常蛋疼,整体判断x到中位数后是偶数项还是奇数项,因此都判断一下取最小值加即可】②如果x存在,二分查找出从左往右第一个出现的x和最后一个出现的x,枚举一下哪个加的最少加上即可。代码如下:#include <bits/stdc++.原创 2021-12-31 21:38:10 · 150 阅读 · 0 评论 -
cf616 Educational Round 5 Div2-D【双指针】
Date:2022.01.20题意:k-good定义为含<=k个不同元素的连续子序列长度,给定一个序列求最长的k-good序列的左右下标。思路:双指针每次记录左右端点,记录不同元素数量为res,res每次分三种情况,即:①<k ②>k ③==k,分别移动l、r并更新每个元素的个数和res,且当①和③时将l、r记录,最后输出r-l+1最大的那组下标。代码如下:#include <bits/stdc++.h>using namespace std;const int原创 2022-01-21 18:59:22 · 239 阅读 · 0 评论 -
【寒假每日一题2022】acw1969 品种相邻【双指针+滑动窗口思想】
Date:2022.01.22题意农夫约翰的 N 头奶牛排成一排,每头奶牛都用其品种 ID 进行描述。如果两头相同品种的牛靠得太近,它们就会吵架。具体的说,如果同一品种的两头奶牛在队列中的位置相差不超过 K,我们就称这是一对拥挤的牛。请计算品种 ID 最大的拥挤奶牛对的品种 ID。输入格式第一行包含两个整数 N 和 K。接下来 N 行,每行包含一个整数表示队列中一头奶牛的品种 ID。输出格式输出品种 ID 最大的拥挤奶牛对的品种 ID。如果不存在拥挤奶牛队,则输出 −1。数据范围1原创 2022-01-22 14:32:53 · 676 阅读 · 0 评论 -
【寒假每日一题2022】acw1978奶牛过马路【贪心】
Date:2022.01.20题意每天,农夫约翰的 N 头奶牛都会穿过农场中间的马路。考虑约翰的农场在二维平面的地图,马路沿水平方向延伸,马路的一侧由直线 y=0 描述,另一侧由直线 y=1 描述。奶牛 i 从马路一侧的位置 (ai,0) 沿直线过马路到达另一侧的位置 (bi,1)。所有 ai 互不相同,所有 bi 互不相同。尽管他的奶牛们行动敏捷,他还是担心行动路径交叉的两头奶牛在过马路时发生碰撞。约翰认为,如果一头奶牛的行动路径没有跟其他任何奶牛的行动路径相交,则该奶牛是安全的。请帮助约原创 2022-01-21 16:40:51 · 331 阅读 · 0 评论 -
【寒假每日一题2022】 acw1996打乱字母 【二分+贪心】
Date:2022.01.18题意:农夫约翰将按字典序排列的 N 头奶牛的名字列表贴在了牛棚的门上。每个奶牛的名字都由一个长度介于 1 到 20 之间的由小写字母构成的唯一字符串表示。麻烦制造者贝茜将列表中的奶牛名字重新排序打乱了列表。此外,她还对每头奶牛的名字中的字母顺序进行了重新排列(也可能保持不变)。给定修改过后的列表,请帮助约翰确定列表中的每个名字可能出现在原始列表中的最低和最高位置。输入格式第一行包含整数 N。接下来 N 行,按照修改过后列表的顺序,给出了修改过后的奶牛的名字。原创 2022-01-19 10:57:06 · 507 阅读 · 0 评论 -
cf1151 Round #553 Div2-D【推公式+思维+贪心】
Date:2022.01.13题意:nnn组数据,定义jjj为当前组号,每组数据对答案贡献满足ai⋅(j−1)+bi⋅(n−j)a_i⋅(j−1)+b_i⋅(n−j)ai⋅(j−1)+bi⋅(n−j),重新排序让所有贡献和最小。思路:式子变形,原式=j⋅(ai−bi)+(bi⋅n−ai)j·(a_i-b_i)+(b_i·n-a_i)j⋅(ai−bi)+(bi⋅n−ai),iii从[1,n][1,n][1,n]累加后,(bi⋅n−ai)(b_i·n-a_i)(bi⋅n−ai)的和固定,而原创 2022-01-13 19:53:27 · 230 阅读 · 0 评论 -
cf1203 Round #579 Div3-D1、D2【贪心+思维】
Date:2022.01.13题意:一个长串n一个短串m,短串所有字符一定能与长串中某些字符相同,找出匹配条件下删除最长片段的长度。思路:最大删除长度一定分为三类。①最左边~满足与m中第一个字符匹配的最大下标。②满足于m中最后一个字符匹配的最小下标~最右边。③在m串中的两个字符的间隙中。此时两个字符间最大删除数量一定在满足删除后能得到串m的的前提下,是 “第一个字符的最左的位置 ~ 第二个字符的最右满足位置”。找这两个位置即分别从前往后双指针,记录与m匹配的第一个位置、从后往前双指针,记录与m原创 2022-01-13 18:21:07 · 158 阅读 · 0 评论 -
cf1036 Educational Round 50 Div2-D【双指针+贪心】
Date:2022.01.12题意:给定A、B两个序列,连续子序列的元素可合并,合并若干次后将两个序列变成相同的,让长度最大;不能合并输出-1。思路:一眼双指针贪心,因为只能合并连续的子序列,如果一个序列能合并,该序列任意位置的一个元素都能在某处合并或者保持它本身不变。因此我们规定让前面的先合并,这样贪心一定保证正确:如果碰到不能合并的则指针卡住,最后判断两个指针是否都>序列长度,>则表示匹配,任一指针<=序列长度则表示无法匹配输出-1。代码如下:#include <bits原创 2022-01-12 17:35:59 · 208 阅读 · 0 评论 -
cf1455 Educational Round 99 Div2-D【贪心】
Date:2022.01.08题意:给定一个序列和一个x,每次可选择一个aia_iai>x的位置swap(a[i],x),问最少多少次操作可以让序列变成非降序,或者不可以则输出-1。思路:首先我们考虑到只有a[i]>a[i+1]的情况才会swap(a[i],x),而且交换过程只能从第一个>x的元素~第一个逆序元素全部与对应x交换一遍,因此我们按照这种顺序更新,把所有逆序元素更新完之后看整个序列是不是非降序即可。代码如下:#include <iostream>原创 2022-01-08 15:53:44 · 447 阅读 · 0 评论 -
cf1165 Round #560 Div3-E【贪心】
Date:2022.01.05题意:给定a、b数组,a数组不能变位置,b可变位置,求变化位置后要求式子的最小和。特别注意不是取模最小的和!!!!!思路:找规律,第i项即为a[i]∗*∗b[i],我们发现第i项要乘i ∗*∗ (n-i+1)次,我们要让总和最小,因此每一项都要尽可能小,因此每一项都是一个大数 ∗*∗ 一个小数。因为a不能动,因此a对答案的贡献是不变的,恒为a[i] ∗*∗ i ∗*∗ (n-i+1)【下标i从1开始】。所以只需要将a[i] ∗*∗ i ∗*∗ (n-i+1)从小到大原创 2022-01-05 22:36:27 · 321 阅读 · 0 评论 -
cf985C Educational Round 44 Div2-C【贪心】
Date:2021.12.31题意:有m=n*k个板子,每个桶需要k个板子构成,且构成的桶体积为k个板子里最短的那个。且给定一个l,桶与桶之间体积差的绝对值不超过l,求构造出的n个桶的总体积最小是多少。思路:开始想了半天不知道怎么贪心,看了题解搞明白了,我们只需要找到n个最短板。首先排序,upper_bound找到最大的最短板(即从左向右>=a[0]+l的最后一个元素的下标x),我们要让n个尽可能小的一堆,因此要从第一个元素每次+k直到>x,这时>x的元素一定不可以作为最短板,因原创 2021-12-31 18:38:01 · 326 阅读 · 0 评论 -
cf864 Round #436 Div2-D【贪心】
Date:2021.12.30题意:给定n个数,要将其变成①n个数的组合 ②字典序最小,最少几步。思路:我们无非是将出现过>=2次的数变成别的数,而变成的数一定是未在原序列中出现过的,因此与原数只能是>或<关系,因此我们将没出现过的数存起来,用一个优先队列保证最小的在最前面,这样挨个更换完后字典序一定是最小的。但还有个问题,我们找到了当前出现多次的数,如果它 > 优先队列队头元素,那么一定会被换掉;但如果 < 怎么办?那么当前元素就固定位置在这里,并且标记一下这个元素已经用过,接原创 2021-12-30 22:39:35 · 116 阅读 · 0 评论 -
cf1005 Round#496 Div3-D【思维】
Date:2021.12.25题意:一个序列,求最多分成多少份使得%3==的份数最多,求这个份数,注意每一份不能存在前导0思路1:贪心想,遍历元素。①如果单个元素%3余0,答案++。②如果单个元素%3不余0,记录余数,每次记录余数加和,直到余数和%3余0或者遇到①时,答案++。【一个数%3余0 <=> 每位和%3余0】代码如下:#include <bits/stdc++.h>using namespace std;typedef long long LL;con原创 2021-12-25 15:13:15 · 208 阅读 · 0 评论 -
cf1154 Round#552 Div3-D【贪心】
Data:2021.12.24两种电池a、b,a不可充电,b可充电;两种天气0、1,天气为0时若用a则a-1但可给b+1、用b时b-1,天气为1时用哪个都-1,要求最远走多少。思路:无疑贪心,b是可充电的,因此要让b尽可能充电。模拟一下不难发现遇到1且b未满就用a给b+1,否则尽量用b,如果b不能用了再用a,这样最利于b尽可能多的+1,这样获得电的总数是最多的,自然续航最久。代码如下:#include <bits/stdc++.h>using namespace std;type原创 2021-12-25 02:18:36 · 414 阅读 · 0 评论 -
cf1466 GoodBye2020-D 【图论+贪心】
题意:给出一个由n个点构成的树,每个点都有一个权值。现在你可以用k,k⊂[1,n]个颜色来给这棵树上的边涂色(这k种颜色不一定都要用上)。对于每种颜色都有一个权重,权值定义如下:将除了当前颜色coli其他颜色的边删掉,剩余的边构成了一个个联通分量。对于任意一个联通分量我们设它的权重是wiw_iwi,那么wiw_iwi就等于该联通分量中所有点的权值之和,则对于当前颜色,它的权值就是wcoliw_{coli}wcoli=max{w1w_1w1,w2w_2w2,⋯,wnw_nwn} 需要注意的是,.原创 2021-12-23 15:42:22 · 301 阅读 · 0 评论 -
洛谷P2672 NOIP2015【贪心】
题意:胡同推销,走到第i家花费a[i]体力,推销额外花费b[i]体力,对于X【1~n】,找出推销X家的最大体力花费。题解:贪心。由于距离门口的距离是一次性的,因此先对影响可能更灵活的推销花费b[i]从大到小排序,【因为b已排序】不妨试想最大花费为X个最大的b + 前X个中最大的a*2,*但我们发现,如果这X个数后面存在一个a,使得虽然b小了,但是这个a比前X个数中最大的a更大,并且选择这个a和其对应b的花费2a+b后使得总花费比选择前X个数的花费要大,这样反而比我们的猜想更大。...原创 2021-11-21 23:06:49 · 418 阅读 · 0 评论
分享