随笔分类 - 贪心
摘要:【链接】 "我是链接,点我呀:)" 【题意】 【题解】 显然如果对方一次攻击能打死你。 那么你不能对他攻击了。必须加血。其他时候都只要攻击就可以了。 但也不一定非得加血。 因为有时候可以“绝杀”,就是虽然对方能打死你,但你也能在这回合打死对方。 这种情况就不用加血了。 【代码】 cpp includ
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 【题解】 会发现在x轴以及y轴上的炸弹,能用较少的操作数除掉。 而其他的点,会发现操作数都是一样的。 那么先把x,y轴上的点都除掉。 其他点。 我们优先沿着横坐标轴移动到和它相同位置。 然后再改变y坐标和目标炸弹一致。 然后就会发现。 x相同的话,要以y
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 【题解】 最后a,b,c只有以下3种情况 1,2,4 1,2,6 1,3,6 那么用cnt[8]统计每个数字出现的次数. 输出cnt[4]次1,2,4 (如果1或2不够,那么无解 紧接着 如果6的个数和1的个数不同,那么无解 如果2的次数+3的次数和6出
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 【题解】 你可以找出来a[i]里面的最小值mi,显然是这个数字最可能先变成0,但还不确定. 然后用mi/n得到你最少需要走多少圈才能让那个mi变成"只差一圈"就变成0. 那么把所有的a[i]都减去mi/n n 然后再手动地模拟一圈(显然再模拟一圈就能让某
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 显然只有在前i个位置奇数偶数出现次数都相同的地方才能切。 (且不管前面怎么切,这里都能切的。 那么就相当于有n个物品,每个物品的代价是|a[i] a[i 1]|,然后价值是1. 因为价值是一样的。。所以肯定优先选价值最小的几个。
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 有一个物品的价格在1..n这些位置各不相同。 你初始有无限的钱。 问你从1走到n. 你每次可以选择买入一个或者卖出一个该种物品(或啥都不做) 问你最后的最大利润。 【题解】 定义一个数据类型为pair temp的优先队列q。 其中second的值为1或者
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 翻转一次最多影响2 k+1个地方。 如果n 【代码】 cpp include define LL long long define rep1(i,a,b) for (int i = a;i = b;i ) define all(
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 将数组排序一下。 考虑中位数a[mid] 如果a[mid]==s直接输出0 如果a[mid]s,那么我们把a[mid]还是改成s,然后把1..mid 1这里面比s大的都改成s.这样就能满足要求了。(mid+1..n这一部分都是
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 你可以把出现次数大于1的颜色换成其他颜色。 问你最后能不能全都变成同一种颜色 【题解】 判断一下有没有出现次数大于1的就好。 有的话。显然可以一直用它变颜色。 特判n=1的情况。就好。 【代码】 cpp include define LL long lo
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 把所有的问号都改成'1' 然后会发现只有+0?这种情况 需要把?改成+. 看看这样的0后面的1是不是由问号改过来的就好了。是的话 再把这个1变成'+'就好。 判断一下首尾有符号的情况。 以及连续两个出现符号的情况。 【代码】 c
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 我们贪心地把每一个括号序列能匹配都按照栈的规则都匹配出来。 (直接递增匹配对数 2就可以了 最后栈里面就只剩下类似))))(((((((这样的形式了。 现在就相当于有很多个这种字符串了。 让你把它们拼接在一起。 可以用sort贪
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 第i只动物如果饲养它的话。 代价是固定的就是(n i+1) a[i] 所以相当于给你n个物品,每个物品的重量为(n i+1) a[i],价值为1 背包容量为x 问你最大价值是多少。 但因为价值是单位价值。 所以直接重量小的优先选
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 考虑r最后的二进制形式为 1xxxxx 那么我们肯定想让第一个最高位的1保留。 因此我们选取的另外一个数字 一定是 0xxxxx的形式。 那么我们贪心地选取数字b=01111..1 然后看看这个数字b是否大于等于L 如果满足,显
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 我们考虑每个字符串中出现最多的字母出现的次数cnt[3] 对于这3个cnt的值。 如果cnt+ns[i].size() 那就有问题了。 因为每次变换的字母不能和原来的一样。 因此全都变成某个字母之后。接下来肯定会破坏这个全都一样
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 先建立一棵字典树。 显然,某一些节点上会被打上标记。 问题就转化成求所有标记的深度的和的最小值了。 (标记可以上移,但是不能在同一位置 则我们用树形动规的方法。 从底往上递归处理。 考虑以x为根的一棵子树。 如果这个节点被打上了
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 枚举那个人收到了几次糖i. 最好的情况显然是其他人都只收到i 1次糖。 然后这个人刚好多收了一次糖 也即 (i 1) k x + x M了 那么令x = M; 但这个时候。 要判断一下改变之后的x,按照顺序分的时候是否还能满足这
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 如果写过n皇后问题。 肯定都知道 某个点(i,j)和它在同一条对角线上的点分别是i+j的值和i j的值相同的点。 然后会发现选择的两个点其实就对应了两组i+j和i j 且每组i+j和i j i+j的奇偶性和i j的奇偶性要是一样
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 原问题可以等价为两个点。 然后其中一个点要移动到另外一个点。 那么我们可以把左下角那个点(对称总是可以得到一个点在左下角)放在原点的位置。 然后通过x坐标差和y坐标差。 获取出来,另外一个点的相对位置。 然后问题就转化成 从原点
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 选择的连接肯定是相邻的点对。 那么我们处理出来长度为n 1的数组a 其中a[i 1] = dis[i] dis[i 1] 那么问题就转化成在a数组中取出不相邻的k个数字。 这k个数字的和要求最小。 那么我们把每个数字都加入到堆中
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 二分最后选的边中的最大值是多少。 mid 则 所有边权小于等于mid的边 都可以用了。 那么我们要怎么选择呢? 优先选择一级的道路。 因为它比较贵一点。 那么找到所有一级道路小于等于mid的路径。 (既然可以连,为什么不连?就算
阅读全文

浙公网安备 33010602011771号