首页 > 加减
头像 Backl1ght
发表于 2021-08-28 00:18:54
I. 加减 可以借助二分做. 易得:经过操作之后,出现次数最多的数一定是原来数组中的数. 数的顺序对于答案没有影响,不妨先排序. 然后就可以枚举原来数组中的数,使用给定操作去取得最优解,然后所有可能中的最大值即为答案. 假设当前枚举到的数为. 贪心地优先取和的差的绝对值小的数是最优解之一. 然后就可 展开全文
头像 HzzzzQ
发表于 2023-02-11 16:27:59
NC224938 加减 枚举 二分 前缀和 给定可以改变的次数k,要求改变后出现次数最多的数,那么一定是由该数“附近”元素构成的一段连续子序列花完k次变化后得到。或者可以说,k是这一段连续子序列到目标值的距离之和。 所以主要的解题思路: 原数组排序,求前缀和 枚举左端点L 二分右端点R 目标数一定 展开全文
头像 大时代1105
发表于 2025-04-19 16:32:42
思路 贪心 + 前缀和优化 + 滑动窗口优化 过程 代码 #include <iostream> #include <algorithm> using namespace std; typedef long long LL; const int N = 1e5 展开全文
头像 Man9o
发表于 2024-08-31 16:22:26
回溯 看到这题的第一反应是回溯,规定dfs(i, j)表示考虑前i个数字,还剩下j次修改;对于每一个数字,都有2种选择: 选择它:j-1 可以+1也可以-1 选了第i个数,下一次还能接着选(可以剪枝:例如上一次是加1,那么再选它也应该是加1,否则没有意义) 不选择它:j不变 这是最朴素的回 展开全文
头像 在刷题的单身狗很开心
发表于 2023-08-17 21:53:32
链接:https://ac.nowcoder.com/acm/contest/20960/1028 来源:牛客网 题目描述 小红拿到了一个长度为 n n\n  的数组。她每次操作可以让某个数加 1 或者某个数减 1 。 小红最多能进行 k 展开全文

等你来战

查看全部