首页 > 其他分享 >CF808E 题解

CF808E 题解

时间:2024-03-07 13:25:52浏览次数:19  
标签:log 题解 商品 枚举 不难 CF808E

很好的一道分类讨论题。

观察数据范围,\(w \leq 3\),不难想到,将 \(w\) 分为 \(1,2,3\) 种情况,如果直接贪心选会不难发现是错的。但是如果 \(w\) 的值只有 \(2\) 种,就像 \(w=1/2\) 的情况,将 \(w=1/2\) 的数据按价值排序,最后枚举每种选多少即可。但是 \(w=3\) 就会显得难以处理,需要讨论将多少种 \(w=1/2\) 的商品取出,十分不简洁。

于是考虑贪心选 \(w=2/3\) 的,不难想到,可以将 \(w=1\) 的两个商品合成一个混进 \(w=2\) 的商品中,然后枚举两种商品各占的空间,取最大值即可。

值得注意的地方在于,如果 \(w=1\) 的商品个数为奇数,肯定会剩下一个,那么如果要选这一个的话必须让其价值最大。

求解过程中,计算价值为 \(O(1)\),合并以及枚举空间都为 \(O(n)\),排序为 \(O(n \log n)\),所以总时间复杂度为 \(O(n \log n)\),可以通过此题。

标签:log,题解,商品,枚举,不难,CF808E
From: https://www.cnblogs.com/Celestial-cyan/p/18058672

相关文章

  • CF1824B1 LuoTianyi and the Floating Islands (Easy Version) 题解
    分析按照\(k\)的奇偶分开考虑。\(k\)为奇数。一个好的节点有且仅有一个在任意两个有人的节点\(i,j\)的路径的交点上的最优位置。若该交点偏移\(1\)步,则必然会使路径长度和\(+1\)。故期望为\(1\)。\(k\)为偶数。任意一个好的节点仍然在任意两个有人的节点\(i,j\)的......
  • 【教程】HBuilderX开发实践:隐私合规检测问题解决方案
    文章目录摘要引言正文1、违规收集个人信息2、APP强制、频繁、过度索取权限知识点补充总结 摘要本篇博客介绍了在使用HBuilderX进行开发过程中,常遇到的隐私合规问题,并提供了相应的解决方案。主要包括违规收集个人信息和APP强制、频繁、过度索取权限两方面。......
  • CF147B 题解
    Solution一道十分典型的dp题。有三个关键点分别是定义状态、优化和答案的统计。首先定义状态,定义\(f_{i,j,p}\)表示\(i\toj\)号节点,共走了不超过\(p\)条边,且是\(i\toj\)的最长路径。不超过\(p\)条边是为了方便转移,而最长路径如果都为负环,说明需要走更多的边,实......
  • P1503 鬼子进村 题解
    分析分块。我们定义\(\mathit{cnt}_i\)表示房子\(i\)是否出现过,\(\mathit{sum}_i\)表示在第\(i\)个块内没有被摧毁的房子数量,维护的房子是\((i-1)\timesS-1\)到\(i\timesS\),其中\(S=\sqrt{n}\)也就是块长。操作\(1\)。写一个栈,根据后进先出的特点,讲摧毁的房子......
  • ARC090E 题解
    Solution一道不错的计数题。因为直接求不相遇的方案十分复杂,所以考虑正难则反,用总的方案数减去相遇的方案数。求方案数很套路:在求最短路的时候开一个数组\(del\)记录到达点\(i\)的最短路条数,更新最短路时顺便更新即可。跑完最短路后,设\(dis1\)为\(s\)到\(t\)的最短路......
  • AT_abc256_h [ABC256Ex] I like Query Problem 题解
    分析用势能线段树。对于一段数字\(a_l\)到\(a_r\),每次全部除以一个大于\(1\)的数,不难发现最多除以\(\logx\)次就会使\(a_l\)到\(a_r\)全部变成\(0\),其中\(x\)是区间最大值。所以,在没有操作\(2\)的情况下,我们可以在每次操作\(1\)的时候都单点修改,只要在某个......
  • CF1070C Cloud Computing 题解
    分析思路不难想,我们对于第\(i\)个计划的时间,可以分成\(l\)和\(r+1\)两部分。用权值线段树维护,在第\(l\)天的时候就将该计划的内容加入权值线段树中,直到过了该计划的时间,也就是第\(r+1\)天,再将这个计划的内容删除。把每一天需要修改的内容存进vector中,修改完查询权值......
  • AT_dwacon5th_prelims_c k-DMC 题解
    分析先考虑\(k=n\)的情况。对于\(s_j=M\)的时候,其能够匹配的\(s_i=D\)的数量很显然是\(i\lej-1\)的时候的数量,求前缀和就能得到。而对于\(s_j=C\)的时候,能够完整匹配的就是\(i\lej-1\)的时候所有\(s_i=M\)能够匹配的数量之和,再套个前缀和就行了。复杂度是\(O......
  • CF1899G Unusual Entertainment 题解
    分析一眼树上启发式合并。定义\(x_i\)为节点\(i\)在序列\(p\)中的下标。则问题转化为:对于每组\(l,r,k\),询问以\(k\)为根的子树中是否有一个以上的节点,满足\(l\lex_j\ler\)。使用set存以\(i\)为根的子树中\(x_j\)的有序排列。则对于每个\(k=i\)的询问,去合......
  • AT_abc328_f [ABC328F] Good Set Query 题解
    分析考虑并查集。对于\(a_i,b_i,d_i\),若\(a_i,b_i\)在之前的满足要求的操作中,\(a_i,b_i\)不在同一个集合里,则在之前\(X_{a_i},X_{b_i}\)的相对差值是可以任意改变的。令\(k=X_{a_i}-X_{b_i}\),则我们需要将\(a_i\)所在集合中所有元素的值增加\(d_i-k\)。然后将\(a_i,b......