
贪心
文章平均质量分 54
以局部最优解求出全局最优解
李峻枫
这个作者很懒,什么都没留下…
展开
-
J - 马老师的餐厅
J - 马老师的餐厅题目大意给出nnn个数,要求每次取出互不相同的三个数,组成一组,问最多能取出多少组。题解运用贪心思想,每次取一定是取剩余数量最多的三个数。这个可以用优先队列来维护,每次取出队列头的三个数,组成一组,然后把它们的剩余数量−1-1−1,再仍会队列里。时间复杂度优先队列单词操作的时间复杂度O(logn)O(log_n)O(logn),总共由nnn个数,于是总的时间复杂度就是O(n×logn)O(n\times log_n)O(n×logn)Tag优先队列贪心算法co原创 2021-10-07 08:08:50 · 281 阅读 · 0 评论 -
Codeforces Round #735 (Div. 2) C. Mikasa
题目大意给出n,mn,mn,m求集合{n⨁0,n⨁1,⋯ ,n⨁m}\{n\bigoplus0,n\bigoplus1,\cdots,n\bigoplus m\}{n⨁0,n⨁1,⋯,n⨁m}的MEX。时间限制1s数据范围n,m≤109n,m\le10^9n,m≤109题解对于一个xxx,如果它存在集合中,即有n⨁y=x,y≤mn\bigoplus y = x, y\le mn⨁y=x,y≤m则有n⨁x=yn\bigoplus x = yn⨁x=y显然我们就是要找到最小的xxx使得n⨁x≥原创 2021-07-30 20:47:16 · 166 阅读 · 0 评论 -
Codeforces Round #401 (Div. 2) D. Cloud of Hashtags
题目大意给出nnn个标签,要求你删去这些标签末尾的某些字符(可以不删),使得这些标签的字典序是不下降的。问最少需要删去多少个字符,需要输出方案。时间限制2s数据范围所有标签串长和≤5×105\le5\times 10^5≤5×105题解对于两个串a,ba,ba,b,如果想使得a≤ba\le ba≤b,显然是删除aaa,而不会删除bbb。因为删除操作只会使得字符串的字典序变小。假设从前往后删除,不难发现是不可行的,因为当成功将第一个串删除后比第二个串小,然后第二个串和第三个串比较的时候原创 2021-07-24 23:36:25 · 124 阅读 · 0 评论 -
Codeforces Round #354 (Div. 2) C. Vasya and String
题目大意给出一个长度为nnn的只含a,b的字符串,再给出一个参数kkk,可以修改字符串中的kkk个字母。问最长连续相同的字串为多少。时间限制1s数据范围n≤105n\le10^5n≤105题解用贪心,只要能修改,就尽量修改。先假设求的相同串全部是a,枚举字串右端点,不难发现左端点是单调递增的,所以可以用一个指针维护,因此时间复杂度就可以做到O(n)O(n)O(n)。如果右端点是b则看看是否还有剩余的修改次数,如果没有,就将左端点右移,直到其腾出一个修改次数为止。Code//#pr原创 2021-07-24 23:10:26 · 110 阅读 · 0 评论 -
Educational Codeforces Round 75 (Rated for Div. 2) D. Salary Changing
题目大意有nnn个员工,需要给他们发工资,每个人的工资可以维区间[li,ri][l_i,r_i][li,ri]中的任意一个数。求在发的工资总和不超过sss的情况下,最大的中位数是多少。时间限制3s数据范围n≤2×105n\le 2\times10^5n≤2×105,nnn为奇数s≤2×1014s\le2\times10^{14}s≤2×1014题解不妨记n=2×m+1n = 2\times m + 1n=2×m+1不妨设中位数为midmidmid,那么midmidmid要满足什么条件原创 2021-07-24 19:13:09 · 113 阅读 · 0 评论 -
Educational Codeforces Round 82 (Rated for Div. 2) D. Fill The Bag
题目大意给出mmm个物品,每个物品的体积aia_iai是222的次幂,可以花费111的代价,将一个物品分成两个体积相等的物品。恰好装满容量为nnn的背包的最小代价是多少,如果无法装满,输出-1。时间限制2s数据范围n≤1018n\le10^{18}n≤1018m≤105m\le 10^5m≤105ai≤109a_i\le10^9ai≤109题解一个贪心的思想,尽量用体积小的物品,直到无法用体积小的物品凑出体积大的物品的时候,才去分割更大的物品。从低位向高位枚举nnn在二级制下的原创 2021-07-21 20:35:43 · 137 阅读 · 0 评论 -
Educational Codeforces Round 111 (Rated for Div. 2) A. Find The Array
题目大意定义一个长度为nnn数列a1,a2,⋯ ,ana_1,a_2,\cdots,a_na1,a2,⋯,an为合法的序列,对于∀i∈{1,2,⋯ ,n}\forall i\in \{1,2,\cdots,n\}∀i∈{1,2,⋯,n}其需要满足如下条件之一:ai=1a_i=1ai=1∃j∈{1,2,⋯ ,n}\exists j\in \{1,2,\cdots,n\}∃j∈{1,2,⋯,n}使得aj=ai−2a_j=a_i -2aj=ai−2∃j∈{1,2,⋯ ,n}\exists j原创 2021-07-19 09:55:25 · 144 阅读 · 0 评论 -
JZOJ5955. 【NOIP2018模拟11.7A组】strategy
题解这题有n种办法解决,dp显然可以,设fi,jf_{i,j}fi,j表示前i个点,用了j次进攻的最优答案。同理维护一个后缀的,询问就枚举前面多少进攻,后面多少次进攻,加起来就是答案。贪心也是可以,按照防御代价减去攻击代价从大到小排序,显然最优的是选前k个,有负数的不能选。code#include<cstdio>#include<cstring>...原创 2018-11-07 22:04:58 · 186 阅读 · 0 评论 -
JZOJ5952. 【NOIP2018模拟11.5A组】凯旋而归
题解设sis_isi表示前缀和,那么答案就是 si+sis_i+s_isi+si xor sjs_jsj i<j显然当这一位是1的时候,无论i取什么,对答案是没有任何。就考虑j是0的时候,如果i这一位是1,就可以有2的贡献。设fif_ifi表示使得axa_xaxxor i=i满足最小的x。先预处理好f,然后从高位开始枚举,每次贪心一下。code#include&...原创 2018-11-09 16:09:35 · 224 阅读 · 0 评论 -
JZOJ5944. 【NOIP2018模拟11.01】信标
数据范围对于前 20% 的数据, n ≤ 10;对于前 45% 的数据, n ≤ 40, 树的形态随机;对于前 70% 的数据, n ≤ 5000;对于另 5% 的数据, 不存在一个村庄连接着 3 条或以上的道路;对于 100% 的数据, 1 ≤ n ≤ 1000000, 1 ≤ u, v ≤ n, 保证数据合法.题解考虑如何放标记是合法的,很显然,对手在信标两两间的路径的并集的...原创 2018-11-01 16:54:52 · 251 阅读 · 0 评论 -
JZOJ5937. 【NOIP2018模拟10.30】斩杀计划
Description小G有n个小弟,第i个小弟有ai点攻击力,小G有m点血量。小J在小G找小第的时间里去找小Z学到了膜法,他在大战前配置了三种魔法药水1:复用型药水:花费1法力值,选择小G的攻击力小于等于2的一个小弟让他跟随自己(变为自己的小弟并且攻击力和属于小G时一样)2:猎人药水:花费4法力值,选择小G的攻击力小于等于3的一个小弟让他跟随自己3:腐败药水:花费1法力值,使小G所有小...原创 2018-10-31 15:50:13 · 211 阅读 · 0 评论 -
JZOJ5709. 【北大夏令营2018模拟5.13】数列
DescriptionInput第一行一个整数 n 表示数列长度,第二行 n 个整数 a1 ~an 。Output输出一行一个整数表示答案 。Sample Input5 50 30 40 10 20Sample Output2Data ConstraintSubtask 1 (24pts):n<=20。 Subtask 2 ...原创 2018-05-16 21:58:40 · 381 阅读 · 0 评论 -
JZOJ5685. 【GDOI2018Day1模拟4.24】恐怖袭击
Description有情报称H市有恐怖分子要发动一场恐怖袭击。现在已知恐怖分子的坐标是(sx,sy),他将要发动袭击的位置是(tx,ty)。现在有n名特警,他们的位置分别是(x1,y1),(x2,y2),…,(xn,yn)。在每个单位时间内,恐怖分子和每个特警可以选择朝上下左右移动1的距离或者原地不动。因为特警完全掌握了恐怖分子的情报,每个特警可以根据恐怖分子在这个单位时间内的移动来决定自己...原创 2018-04-27 15:22:01 · 355 阅读 · 0 评论 -
JZOJ4678. 【NOIP2016提高A组8.11】钱仓
题目输入输出样例输入10 1 0 0 2 0 0 1 2 2 2样例输出33数据范围分析题目给出了一个环,但是环不是很好处理,所以我们要破环为链。可以发现这一个点,它满足没有任何一条运输路径跨越这个点。我们可以这么x2+y2≤(x+y)2x^2+y^2 ≤ (x+y)^2所以,所以的运输路线就尽量短。就把每个点多出来的部分放到最靠近它自己的地方。在求运输价值的时候可以利用平方和公原创 2016-08-11 21:27:11 · 3646 阅读 · 0 评论 -
JZOJ4788. 【NOIP2016提高A组模拟9.17】序列
DescriptionInputOutputSample Input1 5 2 1 3 0 3 2 2 0 1 0Sample Output1Data Constraint分析对于每一个i,它需要改变的次数至少就是(bi−ai+4)(b_i-a_i+4)%4 但是改变的次数不一定是(bi−ai+4)(b_i-a_i+4)%4 因为,如果对它多4次更改,效果是一样的。如果,我们将需要改变的原创 2016-09-21 20:09:42 · 2336 阅读 · 0 评论 -
JZOJ5213. 【GDOI2018模拟7.9】期末考试
分析首先我们知道出成绩的时间只与最后出成绩的科目有关。 也就是说,我们只需要知道最后出成绩的科目,其他科目的具体时间可以不用知道。那我们就枚举一个最后出成绩的时间,那么所以的科目的出成绩时间就必须在这个时间之前。 对于已经在这个时间之前出成绩的科目,我们可以暂不处理,后面需要用到。 先处理在这个时间之后出成绩的科目。 为了将时间提前到指定时间之前,我们有且仅有两种方法, 1、从某些在指定时原创 2017-07-09 20:19:15 · 348 阅读 · 0 评论 -
JZOJ5274. 数组
分析先考虑只有正数的情况, 假设有三个正数,a,b,c, a是最小的,可以得到 (a−1)bc<a(b−1)c(a-1)bc<a(b-1)c如果有负数, 那我们知道结果是负数,那么就要它的绝对值尽可能的大, 同样是三个数,a,b,c,满足a<b<ca<b<c 那么: (a+1)bc=abc+bc,a(b+1)c=abc+ac 因为ac<bcac<bc,所以(a+1)bc>a(b+1)原创 2017-08-14 15:46:35 · 242 阅读 · 0 评论 -
JZOJ5400. 【NOIP2017提高A组模拟10.7】Repulsed
Description小w 心里的火焰就要被熄灭了。 简便起见,假设小w 的内心是一棵n -1 条边,n 个节点的树。 现在你要在每个节点里放一些个灭火器,每个节点可以放任意多个。 接下来每个节点都要被分配给一个至多k 条边远的灭火器,每个灭火器最多能分配给s 个节点。 至少要多少个灭火器才能让小w 彻底死亡呢?题解感性的理解一下,灭火器应该放在越上面的地方越好。 那么就按照深度由大到小来原创 2017-10-07 20:51:11 · 460 阅读 · 0 评论 -
JZOJ5455. 【NOIP2017提高A组冲刺11.6】拆网线
Description企鹅国的网吧们之间由网线互相连接,形成一棵树的结构。现在由于冬天到了,供暖部门缺少燃料,于是他们决定去拆一些网线来做燃料。但是现在有K只企鹅要上网和别人联机游戏,所以他们需要把这K只企鹅安排到不同的机房(两只企鹅在同一个机房会吵架),然后拆掉一些网线,但是需要保证每只企鹅至少还能通过留下来的网线和至少另一只企鹅联机游戏。 所以他们想知道,最少需要保留多少根网线?Input第一原创 2017-11-06 22:02:41 · 526 阅读 · 0 评论 -
Codeforces Round #434 Div.1 D graph
Description给定一张n个点m条边的无向图,每条边连接两个顶点,保证无重边自环,不保证连通 你想在这张图上进行若干次旅游,每次旅游可以任选一个点x作为起点,再走到一个与x 直接有边相连的点y,再走到一个与y 直接有边相连的点z 并结束本次旅游 作为一个旅游爱好者,你不希望经过任意一条边超过一次,注意一条边不能即正向走一次又反向走一次,注意点可以经过多次,在满足此条件下,你希望进行尽可能多原创 2017-10-12 16:25:27 · 948 阅读 · 0 评论 -
JZOJ5461. 【NOIP2017提高A组冲刺11.8】购物
DescriptionX 城的商场中,有着琳琅满目的各种商品。一日,小X 带着小Y 前来购物,小Y 一共看中了n件商品,每一件商品价格为Pi。小X 现在手中共有m个单位的现金,以及k 张优惠券。小X 可以在购买某件商品时,使用至多一张优惠券,若如此做,该商品的价格会下降至Qi。 小X 希望尽可能多地满足小Y 的愿望,所以小X 想要知道他至多能购买多少件商品。Input第一行包含三个整数n,k,m,原创 2017-11-08 22:34:20 · 363 阅读 · 0 评论 -
JZOJ3626. 【POI2012】polarization
Description今天,Bitotian char Bittard 寄给Byteotian king Byteasar 的信给公众开放了。Bitotia 要求整个Byteotia使用Bit Polarizing Magnet(BPM,字面意思为“位极化磁铁” )。如果使用了,BPM 会令Byteotia 中所有的每条路都变成单向通行。敌人知悉一个非常好的消息,这可以是Byteotia 简陋的基础原创 2018-01-30 21:17:58 · 270 阅读 · 1 评论 -
JZOJ3949. 【湖南省队集训2014】Hungry Rabbit
Description可怕的洪水在夏天不期而至,兔子王国遭遇了前所未有的饥荒,它们不得不去外面的森林里寻找食物。 为了简化起见,我们假设兔子王国中有n 只兔子,编号为1- n。在救济粮到来之前的m 天中,每天恰好有k 只兔子需要去森林里寻找粮食。森林里居住着可怕的大灰狼,所幸兔子已经摸清了大灰狼捕食习惯,即狼们在每一天只会捕食特定编号的兔子。为了安全起见,兔子们需要保证每次出去觅食的k 只兔...原创 2018-03-06 15:41:45 · 261 阅读 · 0 评论 -
JZOJ1748. 逃跑
题目Description Alice被困在一个山洞里,而且这个山洞还有n天就要倒塌了! 幸运的是,山洞里资源足够丰富,已知Alice一开始有一个能力值L,而她每天可以选择以下两种操作之一: 1、 把自己的能力值加1; 2、 利用山洞的资源制造出当前能力值个单位的食物; 同时,Alice每天必须吃掉Ai个单位的食物,如果某天食物不足,那么她会死掉。 现在,A原创 2016-07-16 16:30:34 · 1605 阅读 · 0 评论