01 2024 档案

摘要:原题链接 很典型的二分答案题目。但是新颖点是他要输出每块巧克力在哪一天吃,很多人(包括我自己)就可能想当然的直接在累加的时候处理,如下: for (int i=1;i<=d;i++){ sum/=2; while (sum<m){ if (cnt>n) return false; sum+=a[cn 阅读全文
posted @ 2024-01-30 16:11 黑屿白 阅读(7) 评论(0) 推荐(0) 编辑
摘要:原题链接 首先这道题的数据量1e5那么时间复杂度要保持在O(nlogn)内。 先判断单调性,若k头牛拿不到礼物,那么k-1头牛也拿不到礼物,所有这题可以用二分法来做(11110000)。 二分部分省略,我们直接来分析check部分(如下)。 bool check(int k){ for (int i 阅读全文
posted @ 2024-01-30 14:05 黑屿白 阅读(20) 评论(1) 推荐(1) 编辑
摘要:首先,在这道题中,我们首先要把区间内的数字分为两类,包含偶数的区间和不包含偶数的区间。 1、包含偶数的区间,我们中需要令a=2,b=i-2。即可符合题意。 2、不包含偶数的区间,即只有一个奇数。那么我们要再次分类讨论,若该奇数为质数,贼输出-1;否则拆出它的两个因子(相乘为i)进行化简即可。 主要代 阅读全文
posted @ 2024-01-27 12:56 黑屿白 阅读(15) 评论(0) 推荐(0) 编辑
摘要:原题链接 这道题是一道隐蔽的二分答案题(01规划)。但由题目中的“最多”一词也可以知晓。 我们可以把题目中的joker类比成万能牌,但一套牌中只能最多有一张万能牌。 那么对于预期答案k,我们想要验证,只需要sum+=min(0,k-a[i]);然后我们要判断sum<=m并且sum<=k(一套牌中只能 阅读全文
posted @ 2024-01-26 14:52 黑屿白 阅读(15) 评论(0) 推荐(0) 编辑
摘要:原题链接 典型的二分答案,01规划。 那么我们只需要二分x求出最大的x即可,因此我们只需求出所有v-x*c的值并把最大的k个求和保证sum>=0即可。 主要代码: #include<bits/stdc++.h> using namespace std; const int N=1e4+5; type 阅读全文
posted @ 2024-01-26 13:16 黑屿白 阅读(8) 评论(0) 推荐(0) 编辑
摘要:原题链接 通过集思广益,我总结了一些不同的解法。 法一:二分答案 一般最大最小值问题都可以考虑一下对答案进行二分。 1、若能合成k件装备,那么k-1,k-2,...都能够合成。所以我们要找到11110000中最右边的1。 2、判断k件装备能否成立。设消耗的2a3b有m件,那么4a1b的有k-m件 列 阅读全文
posted @ 2024-01-23 16:33 黑屿白 阅读(10) 评论(0) 推荐(0) 编辑
摘要:原题链接 根据最近的刷题经验,这种求最大最小值问题都是二分答案。 首先,我们确定面对一个k,如果它符合题意,那么比他小的值也符合,如果他不符合题意,那么比他大的值更不符合;那么我们要求的就是符合找出11110000中最右边边的1。 接着,我们该如何判断k是否符合题意呢? 显而易见,从起点遍历所有的石 阅读全文
posted @ 2024-01-17 19:46 黑屿白 阅读(14) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示