随笔分类 - 贪心
摘要:题目链接 点我呀 翻译 给你一个长度为 \(n\) 的字符串,让你判断这个字符串中是否每个长度为 \(k\) 的子串中 $0$ 和 $1$ 的个数都相同 这个字符串中只会包含 $0$ 和 $1$ 还有 ?, 这里的 ? 是通配符。 题解 以 \(k=4\) 为例子, 假设 s[1..4] 是符合要求
阅读全文
摘要:题目链接 点我呀 翻译 给你 \(n\) 对区间,一开始每对区间都是 [l1,r1] 和 [l2,r2]。 每对区间你都可以求他们的交集的长度,长度定义是尾巴减头部 (不用加 $1$),每对区间的交集和加起来,要求最后的交集的和大于等于 \(k\)。 并且你可以扩展 \((x,y)\) 成为 \((
阅读全文
摘要:题目链接 点我呀 翻译 给你一个排列,你每次可以将 \(a[i]<a[i+1]\) 中的 \(a[i]\) 或者 \(a[i+1]\) 删掉。 问你,最后能不能删得只剩下 $1$ 个元素。 题解 考虑最大的元素 \(n\), 想想它是不是能一直往左删元素? 但是删到第一个元素的时候,就不能再删了,因
阅读全文
摘要:题目链接 点我呀 翻译 给你一个拼图, 问你能不能把它拼成一个 \(n \times m\) 的方格图。 题解 会发现, 只有 $2 \times 2$ 的能拼出来, 或者是一个长条形的。 往下或者往右一直延伸这样, 然后宽度或高度为1。 代码 #include<bits/stdc++.h> #de
阅读全文
摘要:题目链接 点我呀 翻译 一个旅馆内有无限多个房间, 每个房间里面都只有一个人住。 这些房间和所有的整数对应。 现在对于房间号为整数 \(k\) 的房间, 里面的人要移动到 \(k + a_{k\ mod\ n}\) 号房间。 给你 \(n\), 和整型数组 \(a\) , 问你移动之后, 是不是每个
阅读全文
摘要:题目链接 点我呀 翻译 给你3种颜色的宝石, 每种宝石数量为nr, ng, nb。 然后依次给出这3中宝石的各个重量。 让你选出来3个宝石, 每种类型的宝石各一个。 假设选出来的A, B, C宝石的重量分别为X, Y, Z。 则要求 \((X-Y)^2+(X-Z)^2+(Y-Z)^2\) 的值最小。
阅读全文
摘要:题目链接 点我呀 翻译 给你一个初始数字x, 你可以对它做两种操作: 1.整除2然后加上10 2.减去10 问你在n次1操作和m次2操作之内, 能不能把数字x变成是小于0的。 题解 n和m都小于30? 这不傻逼题吗? dp[i][j]表示i次1操作,j次1操作x能到达的最小值。 \(dp[i][j]
阅读全文
摘要:题目链接 点我呀 翻译 给你3条边x, y, z的范围, 且满足x < y < z, 让你选出3条合法的边, 使得这3条边能组成三角形。 保证答案总是存在。 题解 因为x < y < z, 所以x(y)和z相加的话, 肯定是大于y(x)的。 因此只要判断x+y是不是大于z就可以了。 因为说了一定会有
阅读全文
摘要:题目链接 【题目翻译】 给你两个长度都为n的正整数数组,让你把A数组通过两种操作变成B数组。 支持的两种操作: 1.R操作:把A数组翻转。 2.P操作:把A数组变成A数组的前缀和数组,即a[i]=∑a[j] (1 【题解】 因为P操作是求前缀和操作,而且两个数组中每个数字最少是1。 所以如果数组比较
阅读全文
摘要:题目链接 【题目翻译】 让你用1*1和1*2的砖块铺满空白的格子。 1*2的砖块只能横着放。 用11的砖块代价是x,12的代价则是y. 问你需要的最小代价。 【题解】 看到1*2只能横着放。问题就简单多了。 若x2<=y则直接放11的就行了。 否则1*2可以放久放这个。(单位格子价格更低); 【代码
阅读全文
摘要:题目链接 【题目翻译】 n张牌要平均分配给k个人(k是n的因子) 然后有m张鬼牌,剩下n-m张是普通牌。 让你分配普通牌和鬼牌。 使得最后的得分最高。 最后的得分=鬼牌数最多的那个人的鬼牌减去其他k-1人中鬼牌最多的那个人的鬼牌数。(最后答案可能为0) 【题解】 显然尽量先让一个人拿满k张鬼牌(不足
阅读全文
摘要:题目链接 【题目翻译】 给你n个月,每个月天数有d[i]天 你需要选取连续的几天(可以跨月、跨年) 然后你得到的收益为这些天是在所在月份的第几天对应的数字的和。 比如你选了第2月(设有30天)的第29、30天以及3月的第1,2天。 那么你的收益就是29+30+1+2 然后现在的问题是,让你从n个月份
阅读全文
摘要:题目链接 【题目翻译】 每个奶奶有个编号a[i] 只有当操场上除了自己然后人数大于等于a[i]的时候,她才能出去。 (同时一起出去x个人的话,其余x-1个人也算是已经到操场上了) 然后问你最多能出去多少个人到操场上。 【题解】 这题不要想复杂了,你就直接想最后操场上有多少个人。设为x。 那么肯定对于
阅读全文
摘要:题目链接 【题目翻译】 其实就是让你用一个1*2(可以缩小为1*1)的方块去填充整个n*m的方格。 问你最少需要多少个方格。 【题解】 如果长和宽某一个是偶数,那么显然可以让长为2的边顺着那个方向摆放。 刚好需要$n/2m$个,也即$nm/2$ 如果都是奇数的话,我们可以截出来一个长度为奇数的,宽为
阅读全文
摘要:题目链接 【题目翻译】 给你一个包含n个数字的序列a,你可以将其中某一个数字改成另外一个[1,k]之间的数字。 要求修改之后,对于所有的i∈[1..n/2],a[i]+a[n-i+1]=x,这里的x是一个定值。 n给的一定是偶数。 问你最少操作次数是多少。 一开始给的序列a中的每个数字也都是在[1.
阅读全文
摘要:"题目链接" 【题解】 把0看成是1,把1看成是 1 求一个前缀和。 pre[i] = pre[i 1]+1 得到delta = pre[n] 显然对于每个位置的值pre[i] 再复制一遍s的话。 下一个s的该位置,也即i+n的前缀和显然为pre[i]+delata 那么无限的情况就很显然了。 即p
阅读全文
摘要:"题目链接" 【题解】 优先用2个棒子来凑1. 如果为奇数的话,多出来一根用3根来凑个7放在开头 【代码】
阅读全文
摘要:"题目链接" 【题解】 当时竟然用线段树做的这题。。。 遍历每个位置。 看看每个位置开始的26个除了问号的字母有没有重复的。 没有的话就ok。 然后按顺序放每个字母就好 【代码】
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 题意 【题解】 树的最长链是一定会经过两个叶子节点的。 我们可以构造一棵树,让最后的最长链一定是由经过根节点的两条链组成。 然后让这两条链的长度尽可能短就好。 那么创建k个叶子节点,然后从左往右依次加上去就好,即让每一条叶子节点到根节点的路径都竟可尽可能
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 题意 【题解】 注意只能改变a不能改变b 然后只要让a[i],b[i],a[n i 1],b[n i 1]这4个字符能凑成两对、全都一样就可以了 分类讨论下就好 【代码】 cpp include define ll long long using nam
阅读全文

浙公网安备 33010602011771号