贪心
文章平均质量分 55
霾まる
不为牌子, 只为锻炼自己, 创造美好回忆不后悔!
展开
-
Educational Codeforces Round 152 (Rated for Div. 2) D题 1849D Array Painting
传送门 https://codeforces.com/contest/1849/problem/D。原创 2023-07-28 02:52:18 · 647 阅读 · 4 评论 -
CodeTON Round 5 (Div. 1 + Div. 2, Rated, Prizes!) A-D
丁真和珍珠宝可梦对决, 每个宝可梦都有x战力, 假设有两个宝可梦, 其战力分别为a和b(a>b), 战力为a的宝可梦获胜后战力-b, 而战败的宝可梦会消失最后还有宝可梦的人获胜问你丁真和珍珠谁赢了。原创 2023-06-26 20:05:21 · 2205 阅读 · 9 评论 -
23.3.6打卡 AtCoder Beginner Contest 277 A~D
E题最短路有点生疏了先不写, 之后再补。原创 2023-03-06 14:53:59 · 310 阅读 · 0 评论 -
23.3.4打卡 AtCoder Beginner Contest 291(Sponsored by TOYOTA SYSTEMS)A~E
F题题面都看不懂嘞!开摆!原创 2023-03-04 16:29:40 · 811 阅读 · 0 评论 -
23.3.3打卡 Codeforces Round #855 (Div. 3) A~E
这场字符串真多啊原创 2023-03-03 15:51:32 · 533 阅读 · 0 评论 -
23.3.2 Codeforces Round #834 (Div. 3) A~E
FG明天补给定 ttt 个字符串,请判定这些字符串是否分别是 YesYesYesYes…\texttt{YesYesYesYes\dots}YesYesYesYes… 的子串。是则输出 ,否则输出 ( 和 大小写不定)。Translated by @JYqwqThe first line of input data contains the singular $ t $ ( $ 1 \le t \le 1000 $ ) — the number of test cases in the test.Each原创 2023-03-02 20:30:31 · 573 阅读 · 0 评论 -
22.3.1 Educational Codeforces Round 144 (Rated for Div. 2) A~C
感觉就是阅读理解题, 3和5的公倍数出现有规律(嫌麻烦可以直接先算出1~1000的s)然后直接一个string的find函数就解决了, 注意一下find函数如果搜不到返回之是npos(-1)B题题目链接: https://codeforces.com/contest/1796/problem/BC题题目链接: https://codeforces.com/contest/1796/problem/C题解:首先按照贪心的思想, 2n2^{n}2n肯定是能最多的, 那么第一个答案就很好求出来了,原创 2023-03-01 22:44:37 · 547 阅读 · 0 评论 -
Atcoder abc257 E
然后给你1~9每个经营额所需要的成本, 设总经营额为x, 当前使用的经营额为y, 则每一次使用经营额时都有x=10*x+y。我们先算出成本在1~9的经营额下最小的成本能使用的最多次数(也就是考虑多的位数)再选择5的经营额: 现在有x=9*10+5 此时n=2-2=0。算出次数之后考虑数字能否在保持位数最大的同时在高位数字贪心。问, 如何在使用不大于成本数量的金额下, 使得经营额最高。先选择9的经营额: 现在有x=0+9 此时n=5-3=2。次数=总成本/经营额下的最小成本。接下来为1~9的经营额。原创 2023-02-25 17:49:41 · 454 阅读 · 0 评论 -
22.2.4+22.2.5打卡 Codeforces Round #849 (Div. 4)
换个角度来看这题, 假设这题如果一次转换一个, 那么显而易见将全部负数都转化为正数即可, 如果用上文的思路来看这题, 因为这题一次必须转换两个数字。双指针遍历一遍字符串, 当遇到0 0或者1 1(指头尾两个指针所指向的值)时就退出输出此时i+1的值。如果搜不到 或 搜到的比r还要大, 说明在l~r的这段范围已经无法通过1更新了, 直接break出去。首先我们要知道, 因为这题是无限制的翻转数字, 所以负数的位置是可以随时变换的。首先当一个数为个位数的时候, 他将无法通过1操作更新值。这题直接贪心是不行的。原创 2023-02-04 23:29:55 · 334 阅读 · 1 评论 -
22.1.31打卡 2023牛客寒假算法基础集训营4 ABCDEFLM
来到过程的实践阶段, 我们先手直接开头砍了一刀, 然后对剩余的血量计算每个t间隔的扣血量(at*av), 用剩余血量除扣血量, 在看一下能不能整除, 不能整除就+1。最后 valn - val就是差值了, +1是因为题目中说了要让i成为"必选", 当i = 最大值时, 不是必选情况。因为攻击是从时刻1开始的, 所以要+1, 又因为当最后一刀斩杀时, 不计算后摇时间, 所以ans要-1。狂wa8发被整了心态就润了, 最后发现特判出了问题, 改了就对了, 好似喵。*t是因为要计算后摇时间(或者说冷却时间)原创 2023-01-31 23:36:48 · 210 阅读 · 0 评论 -
22.1.29打卡 2023牛客寒假算法基础集训营1 ACDHKLM
因为一个拼图的总成本是固定的, 那我们只要减去其他已知拼图的成本就能得到这最后一个拼图的成本了。题目一大串的, 读起来麻烦还要理解, 但静下心来仔细读一读就发现这题很简单。f [ i ] [ j ] 表示给分了 i 个人 j 个仙贝收获的好感度值。那么每个讲师每人随便拿一个论文就行了, 只要hi不为0都有1的贡献。网上高质量题解太多了, 我这就作为打卡日报随便写写。和dfs没什么关系, 求的是最后一块拼图的成本。一个论文为答案提供的贡献最大值就是1。c d记录两队最多还能获得的得分。这是来自官方题解的图。原创 2023-01-29 21:58:38 · 552 阅读 · 0 评论 -
22.1.28打卡 Codeforces Round #847 (Div. 3) A~E
这题其实也是一样的, 但当arr[i]和arr[i-1]存的元素不一样时, 不成立了上文说的贪心, 因为不连续了, 按照题意应当直接加上arr[i]从列的角度来看, 除了原排列的最后两个元素, 每当出现了n-1个此元素时, 这一列就是此元素的位置。最后一列出现之前从未出现过的元素一定在最后一列的位置, 再将剩余的那个元素放在n-1位就好了。不能出现连续的1, 所以1后的第一个0构造为11, 其他的0都构造为00。首先我们知道a^b=(a+b)/2, 将其变形为2*a^b=a+b。原创 2023-01-28 17:53:27 · 295 阅读 · 0 评论 -
23.1.27打卡 Codeforces Round #846 (Div. 2) A~D
我们每次都减去1, 如果返回的cnt比原来n的cnt要大, 说明在1的这个位置原先是0, 依照多出来的1的数量可以判断lowbit的位置, 让答案ans|上这个位置的数即可, 依次循环cnt(原先n的cnt)次就能找到答案了。第一次做交互题, 题都读不太懂, 看了ygg的题解后恍然大悟, 感觉也不是那么的难, 做多几次估计就会了。给定初始n的cnt, 然后你可以让这个n减去任意的数, 题目会给出n减去这个数之后的cnt。题目中隐藏一个数n, 定义一个概念cnt, cnt为n的二进制数中1的数量。原创 2023-01-27 16:42:08 · 745 阅读 · 0 评论 -
22.1.11打卡 Codeforces Round #843 (Div. 2) ABCE
找到了数字A, 我们就可以构造b=c-A, 因为执行的是按位或运算, 这个数字去掉了也不会影响按位或的运算, 此时即可达成f(a)=f(b)因为当某个二进制数位上的数字只出现过一次时, ab数组都必须包含他(或都不包含, 此时我们已经将a=c, 故这种情况不考虑)当头为'a', 尾为'b'时, c的名字为s[n-1], b的名字为s[n-2], 剩下的都是a的, 此时保证了一定有解。设n为字符串长度, 从1到n-1中找到第一个'a', 这个'a'两边就代表了a和c的名字, b的名字就是'a'原创 2023-01-11 18:03:55 · 448 阅读 · 0 评论 -
23.1.4打卡 Hello 2023 A~C D题嗷嗷待补
当k>m时同理, 按照同样的方法推得到 SUM(m+1,i) >= 0。最后用优先队列 从m到2 从m+1到n依次贪心一边即可。因为k>1 所以所有的SUM(i+1,m)原创 2023-01-04 16:00:32 · 558 阅读 · 1 评论 -
22.11.13打卡 1406B - Maximum Product
分为六种情况, 分别为选0, 1, 2, 3, 4, 5个负数, 为了让数组最大, 我们不能选奇数次数的负数, 那么就只剩下选0, 2, 4个奇数了, 分别取max就好了(记得排序)...别被思维绕进去了...这题很简单。原创 2022-11-13 18:43:06 · 374 阅读 · 0 评论 -
22.11.9打卡 2022牛客寒假算法基础集训营5I题详解
虽然这题存在一个入睡时间k, 但和原做法也差别不了太多, 首先看t数组, 做差分, 得到叉同学发说说的间隔时间, 由题意得, 入睡需要k时间, 那么间隔时间原创 2022-11-09 21:26:14 · 432 阅读 · 0 评论 -
22.11.8打卡 Codeforces Round #831 (Div. 1 + Div. 2) A~C
由于矩形都在x轴上, 很容易想到, 如果将一个长方形的长放在大长方形的长上, 则一定会给大长方形增加周长, 但如果把小长方形的长放在大长方形的宽上, 由于大长方形的宽只会计算最长的那个小长方形的长, 所以只要不是最长的那个小长方形, 都对大长方形无影响。他的好朋友会从每个背包中选出一根木棍,假设从三个背包中取出的木棍的长度分别为 x,y,z,则他会送给 hhoppitree 一共 |x-y|+|y-z| 瓶可乐,显然,除了2以外的所有素数都为奇数, +3变为偶数解决, 特判2。讲的有点抽象, 总之贪心。原创 2022-11-08 21:11:35 · 775 阅读 · 0 评论 -
22.10.29 CF-1294C
先搜a, 因为a*b*c=n, 所以a一定是n的因子, 直接搜最小的因子, 然后排除掉a, 找b*c=n/a。原创 2022-10-29 19:00:47 · 142 阅读 · 0 评论 -
22.10.26补卡 CF-1324D CF-479C
题目给的式子是ai+aj>bi+bj, 把他改变一下变成 ai-bi>-(aj-bj)结构体贪心排序...没啥好说的, 非常典型的贪心, 排序写错wa两发人麻了。定义一个新数组为c, ci=ai-bi然后排序二分找大于ci的-cj。原创 2022-10-27 19:29:30 · 359 阅读 · 0 评论 -
22.10.23补卡 CF-1754A
题意: 给你一个字符串中只含有Q和A, Q表示问题, A表示回答, 一个问题可以有多个回答, 但每个问题都必须要有回答, 不然输出no。很简单, 遍历的同时统计q和a的个数, 每当a>=q时, 清空a和q的个数就好了。原创 2022-10-23 19:41:33 · 357 阅读 · 0 评论 -
22.10.20补卡 CF-1749C
然后第二个循环开始模拟, 先判断是否为空(为空bob不能添加, alice胜利), 排序, 找k-i+1)第一个循环从大到小暴力答案。原创 2022-10-21 17:17:17 · 943 阅读 · 0 评论 -
22.10.19补卡 CF-1742F
因为s和t初始已经为"a"了, 那每当x出现了非'a'字符的时候, 就已经可以输出yes和no了, 如果两边都有非'a', 就比较两个字符串之间的长度。两个字符串s和t初始都为"a", 每次访问都让s或者t + k个后缀字符串x。按照贪心的思想, s始终按照最小字典序排序, t始终按照最大字典序排序。每次访问后都可以重新排序, 问s的字典序严格小于t的字典序。原创 2022-10-20 20:41:19 · 446 阅读 · 0 评论 -
22.10.17 CF-1744D Divisibility by 2^n
题意, 给定一个数n和一个数组a, 定义一个操作, 让ai=ai*i, 对于同一个ai只能操作一次, 求数组内所有数相乘(a1*a2....*an)%然后就是教科书式的贪心操作, 先对arr数组(i的因子数组)排序, 然后每次选最大的因子操作, 直到2的因子>=n。首先求数组a有多少个2的因子构成, 剩下的不要, 当2的因子>=n(相当于2的因子次幂>===0需要操作几次, 同理求出i有多少个因子, 存储在数组arr中。原创 2022-10-17 21:02:20 · 658 阅读 · 0 评论 -
10.16打卡 Codeforces Round #827 (Div. 4) A~E
二分查找, 这题数据范围是2e5, 1e5的交上去t, 还以为复杂度太高...好好看题 R只会横着画, B只会竖着画(以为这两可以随便画wa了4发...)那么只需要找到"RRRRRRRR"就行了, 直接string。找有没有重复的数字, 如果有重复的数字就不能严格递增了。原创 2022-10-16 15:43:26 · 514 阅读 · 0 评论 -
10.11 478B - Random Teams
通过观察这个公式可以很容易画出他的图像, 就是我们高中学过的一元二次函数, 函数值的增长速度会随着x的增长而加速, 得出结论: 好朋友对的数量会随着人数加速增长。题意: n个人分m组, 组内的人每两个人会成为好朋友对, 问你最少好朋友对和最多好朋友对为多少。从这个结论我们可以得知: 好朋友对最多的数量的情况是其他组一个人, 其他全部人在第一个组内。由题意得获取一组好朋友对的公式为(假设一组x人): x*(x-1)/2。好朋友对最小的数量的情况是对每个组平均分人数。原创 2022-10-11 17:04:17 · 944 阅读 · 0 评论 -
10.10 CF - 520B
从后往前贪心, 当m小于n的时候只有一种可能就是m不断++到达n, 当m大于n的时候需要/=2, 注意要特判下当m为奇数的时候。另一种记忆化搜索, 我还不是很理解这种做法, 我一开始写的dfs有问题, 看了记忆化搜索题解, 这种做法还在学习中...这题有两种写法, 一种贪心。原创 2022-10-10 17:51:37 · 1047 阅读 · 0 评论 -
Meeting on the Line
因为如果没有t待机时间的话, 我们肯定是寻找最小x和最大x的中间值就能让最大的到达时间最小,了解了这一点后, 我们把待机时间转化为x起点坐标,让每一个x[i]分裂为x[i]-t[i]和x[i]+t[i], 视为第i个人一开始就从x[i]-t[i]和x[i]+t[i]这个位置开始向x[i]这个方向跑, 然后再跑向终点, 把全部x分裂了之后问题就变得简单了, 回到我们刚刚说的没有t的情况下, 寻找最小x和最大x的中间值即可。吐血, 一开始画了个数轴想半天问工作室队友得知思路为。如此, 然后我是这么写的。原创 2022-09-28 17:47:00 · 305 阅读 · 2 评论 -
Codeforces Round #808 (Div. 2) Doremy‘s IQ
有两种情况:第一种情况: 智商q>=n,这种情况直接全输出1第二种情况:智商q原创 2022-07-17 00:51:49 · 240 阅读 · 0 评论 -
P1678 烦恼的高考志愿
题目链接:烦恼的高考志愿 - 洛谷贪心+二分答案要求每个同学匹配距离自己分数最近的学校, 先对学校进行排序, 然后二分学校的编号, 时刻更新mmin(最小差值)就好了注意边界问题!注意边界问题!注意边界问题!ac代码:...原创 2022-07-11 21:28:53 · 483 阅读 · 0 评论 -
CodeForces - 1697C
题目链接: Problem - 1697C - Codeforcesab->babc->cb这题的本质是a可以右移, c可以左移, b只是一个移动的工具, 不用管它(无论b怎么移动a和c的相对关系都不会被改变), 首先要做的第一步就是把b全部去掉对比a和c的相对性关系, 因为相对关系不正确无论如何移动都是错误的, 然后按照a可以右移, c可以左移的性质判断对错就好了ps: 我的代码好像可以优化成O(n), 但我懒(ac代码:...原创 2022-07-05 17:20:27 · 106 阅读 · 0 评论 -
CodeForces-1139B
题目链接:Problem - 1139B - Codeforces又双叒叕一次没看数据范围, 少填了一个2, 但是为何是t不是re?这题观察题目看不懂(机翻看不懂)就直接看题目下面给的提示, 题意差不多是从后到前加, 只能加比上一个数字更小的数字ac代码:...原创 2022-07-04 17:30:59 · 80 阅读 · 0 评论