![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
思维
思维
_hunxuewangzi
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #667 (Div. 3) D. Decrease the Sum of Digits 题解(思维)
题目链接题目大意就是给你一个正整数n看你加多少使得数位和少于s题目思路原来这么简单,直接模拟进位即可。代码#include<set>#include<map>#include<queue>#include<stack>#include<cmath>#include<cstdio>#include<vector>#include<string>#include<cstring>原创 2020-09-05 10:20:58 · 1709 阅读 · 0 评论 -
CSUST 4007 你真的会图论吗?题解(容斥+思维)
题目链接题目大意题目思路emm,感觉这个题目不是特别难,不应该想的太难了。首先观察三元环的组成只有可能是全黑,全白,两黑一白,两白一黑,既然要求同一颜色的,不太好求的话,可以直接用容斥总数减去不是同一颜色的。观察一下三元环的图像你会发现颜色不同的两条边都是一个点引申出去的,而且每一个不同颜色的三元环就有两个点引申的边不一样,这样我们可以预处理每一个点与他相连的白边和黑边的个数,然后相乘然后求和,最后除以2就是所有不同的三元环的个数,然后再用总数Cn3C_n^3Cn3减去不同颜色的就行了代原创 2020-08-16 08:37:30 · 192 阅读 · 0 评论 -
HDU 6835 Divisibility题解(思维)
题目链接题目大意判断任意b进制数y,判断下面定理是否正确:如果y%x=0,那么f(f(⋯f(y)⋯)%x=0(无限套娃)f(y)表示所有位数之和题目思路首先这种无限多的嵌套其实没必要被吓到,这个定义就是y%x=0那么f(y)%x=0,首先观察样例样例为10进制,模数是3任意一个10进制数可以表示为x=100c0+101c1+102c2......x=10^0c_0+10^1c_1+10^2c_2......x=100c0+101c1+102c2......然后让x模3,推出x(mod3原创 2020-08-07 20:23:18 · 221 阅读 · 2 评论 -
Codeforces Round #661 (Div. 3) D. Binary String To Subsequences 题解(思维)
题目链接题目大意给你一个长度为d的01串,要你把他分成若干个子序列,使得每个子序列都满足0和1交替出现,即没有相邻的0和相邻的1,要你求最少能分成多少个子序列,以及每个元素分别分给哪一个子序列题目思路比赛的时候想了好久都没想出来qwq,看了一下大佬的代码。其实这个思路谁都懂,如果现在元素是1看前面是否有0没有匹配,没有匹配则和原先那个0匹配,否则自己新成一个序列。这个元素为0也同理。这个实现就是记下没有被匹配的元素所处的子序列,然后运用队列的思想实现代码#include<set>#原创 2020-08-06 10:09:21 · 220 阅读 · 0 评论 -
CSUST 2018 简单题 题解(思维)
题目链接题目大意点集权值定义为所有点的权值和,还有如果这些点有连边,那么再加上那个边权题目思路emmm。。特别像CF的思维题,根本想不到。。。我们将边权分成均等的两部分,分给它连接的两个点,然后我们就成了选点问题,贪心即可。因为同时选了这两个点,这个边权值算,如果不同时选,相减就正好不算代码#include<set>#include<map>#include<queue>#include<stack>#include<cmath&g原创 2020-07-28 16:13:38 · 138 阅读 · 0 评论 -
Codeforces Round #633 (Div. 2) C. Powered Addition(假模拟真思维)
题目链接题目大意给出一个由 n 个数组成的数列 a,选择一个最小的 k ,代表可以进行 k 次操作,对于第 t 次操作可以选择任意个位置使得 a[ i ] = a[ i ] + 2^( t - 1 ),问最少需要多少次操作才能使序列满足非严格递增题目思路读完题后的第一反应是模拟+贪心,实际上不是的,一直wa,我的思路就是如果a[j]<premax,那么就要加(1<<i)一直wa举一个反例 如2 -1 -3 -4 第一步变为 2 0 -2 -3 第二步 2 2 0 -1 第三步原创 2020-07-06 14:33:13 · 893 阅读 · 0 评论 -
Codeforces Round #654 (Div. 2) E1. Asterism (Easy Version)题解 思维
题目链接题目大意有 n 个敌人,编号为 1∼n,第 i 个敌人有 ai 个糖果。Yuzu在最开始时有 x 个糖果。当Yuzu拥有的糖果数大于等于她此时面对的敌人的糖果数时,它可以击败这个敌人,并取得1个糖果,否则她将被敌人击败,并且什么也得不到。Yuzu希望对所有的敌人都取得胜利,请帮她重新安排 n 个敌人的出现顺序,即 1∼n 的一个合法的排列 P。让我们定义 f(x) 等于初始时Yuzu有 x 个糖果时这样的排列 P 的数量。给出 n,p,其中 p 是质数,并且 p≤n。 我们称 x 是好的,当且仅原创 2020-07-04 14:07:56 · 239 阅读 · 0 评论 -
Educational Codeforces Round 90 (Rated for Div. 2) C. Pluses and Minuses 题解(思维)
题目链接题目大意就是执行这个伪代码res = 0for init = 0 to inf cur = init ok = true for i = 1 to |s| res = res + 1 if s[i] == '+' cur = cur + 1 else cur = cur - 1 if cur < 0 ok = false原创 2020-07-03 14:34:38 · 194 阅读 · 0 评论 -
Codeforces Round #652 (Div. 2) D. TediousLee 题解(思维)
题目链接题目大意给定有n层的树,按规律生成的该树,在其中寻找爪子,若找到的爪子里的节点若全是绿色,将其染成黄色,统计染成黄色的节点数量。题目思路感觉这个题目比较新颖。首先你要发现每一颗n层的树是由一个n-1层的树和两个n-2层的树和一个根节点构成的,如5层的树那么就可以递推出level[I]的"claw"数:cnt[i]=2∗cnt[i−2]+cnt[i−1]每次取“claw”的时候都是先取最下面的,那么对于level[i],就可能出现取完level[i-1]和level[i-2]中的cla原创 2020-07-03 09:39:18 · 230 阅读 · 0 评论 -
Codeforces Round #652 (Div. 2) B. AccurateLee 题解(思维)
题目链接题目大意给出一个01组成的字符串,如果字符串中有“10”结构,那么就可以删除这个1和0中的一个数,求怎么删才能让该字符串最小。题目思路emmm。。。好久没写题了,太蠢了,没想到。我们可以删掉该字符串从第一个‘1’出现的位置开始到最后一个‘0’出现的位置为止(不包括最后一个0)中间的所有数。自己模拟一下就懂了代码#include<bits/stdc++.h>using namespace std;const int maxn=1e5+5;typedef long lo原创 2020-07-02 21:23:22 · 4602 阅读 · 0 评论 -
Codeforces Round #651 (Div. 2) E. Binary Subsequence Rotation 题解(思维)
题目链接题目思路有两个长度为n的01串 s1,s2问s1最少要经过多少次的操作使得s1变成s2。操作定义为选s1的子序列,使其子序列元素顺时针旋转。为一次操作题目大意这个题目的关键点就是要明白每次变化必然是s1对应010101…s2对于101010…或相反记录s1与s2相同位置不同元素的以1开头和以0开头的交错串数量相加即可。仔细看代码应该就可以懂了代码#include<bits/stdc++.h>using namespace std;typedef long long l原创 2020-06-21 11:06:22 · 380 阅读 · 0 评论 -
Codeforces Round #651 (Div. 2) D. Odd-Even Subsequence 题解(二分)
题目链接题目大意从n个元素的a数组中找出包含k个元素的s子序列,使其价值最小。价值的定义为题目思路这类题目要发现其答案具有单调性,那么就要想到二分。直接二分答案,然后看能不能满足有大于等于k个元素满足条件。根据价值的定义,check即可。看代码就懂了代码#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=2e5+5;int n,k,a[maxn];bool chec原创 2020-06-21 01:22:22 · 314 阅读 · 0 评论 -
Codeforces Round #648 (Div. 2) F - Swaps Again 题解(思维)
题目链接题目大意有两个长度为n的数组a和数组b,可以选择k(1<=k<=n/2)交换某一个数组的前缀k和后缀k,可以交换任意次数,看是否能使两个数组相等思路这个就是要发现一个关键就是有a[i],与a[n-i+1]他们始终对称就好判断了代码#include<iostream>#include<cstdio>#include<set>#include<vector>#include<math.h>#include<原创 2020-06-08 17:20:01 · 267 阅读 · 0 评论 -
Codeforces Round #647 (Div. 2) E. Johnny and Grandmaster 题解(思维)
题目链接题目大意给你一个长度为 n 的数组 K 和 一个整数 P, 让你将数组 K 分为A 、B两个集合使得 ∑ P^KA - ∑ P^KB 的绝对值尽可能的小题目思路肯定是先sort一下(从大到小),然后第一个放在集合a,要明白一个知识点,如果后面得元素大于p^ k[1],那么就肯定可以找到后面的部分元素相加等于p^k[1] 这个结论在这个题目有 题目链接那么就简单了而集合 a 的和等于集合 b 的和等价于 sum(a) - sum(b) = 0只有当 sum(a) - sum(b) =原创 2020-06-05 22:57:20 · 251 阅读 · 0 评论 -
Codeforces Round #636 (Div. 3) D. Constant Palindrome Sum 题解(思维+差分)
题目链接题目大意给我们一个长度为n的数组a,n为偶数,之后有给了一个k并且给了他的n个元素的值,先在我们需要对这个序列做变化,使a[i]+a[n−i+1]==x,1<=i<=n/2,x为一个常数,问我们最少需要变化多少个数,有一个常数x使上式成立,对于每一个变换我们可以把序列中的任意一个元素a[i]变为1~k之间的任意一个数,求最小需要变化的元素的数量.注意:无论a[i]变化与否它的范围都是在1~k之间题目思路我完全没思路。想不到居然是差分其实就是暴力枚举所有的x,用差分维护一对一原创 2020-06-03 16:21:26 · 174 阅读 · 0 评论 -
Codeforces Round #637 (Div. 2) C. Nastya and Strange Generator 题解(阅读理解+简单思维)
题目链接题目大意真难读问给定的序列能不能用题中所给的算法生成。比如,题目中举的例子:原序列a: [ 2 3 * * 1 ],先得出 r 数组 [ 3, 3 ,3 ,4 , * ] 。r 数组的意思是:原序列当前位置右边第一个空格的位置,比如原序列 a 索引为1的位置的右边第一个空位是 3。索引为2的位置的右边第一个空位是 3。索引为4的位置的右边第一个空位是它自己 4 。索引为5的位置的右边没有空位 标记为 *然后得出count数组,对 r 数组中的出现的数字计数 为 [ 0 , 0 , 3 ,原创 2020-06-02 23:58:34 · 128 阅读 · 0 评论 -
Educational Codeforces Round 88 (Rated for Div. 2) D. Yet Another Yet Another Task 题解(思维)
题目链接题目大意给你一个长小于等于1e5的数组,-30<=a[i]<=30,求连续的一段区间内,max(数组元素总和减去区间内数组的最大值的答案)题目思路此题比较巧妙,其实这种题目看到a[i]的取值范围就要想到枚举最大值,然后就行了代码#include<cstdio>#include<algorithm>using namespace std;const int maxn=1e5+5;int n,a[maxn],ans;int main(){原创 2020-05-29 11:49:31 · 484 阅读 · 0 评论 -
Codeforces Round #645 (Div. 2) E - Are You Fired? 题解(思维)
题目链接题目大意给你一个长为n的数组前(n+1)/2个数为a[i],后面的数为x,让你求出一个长度k使其所有连续为k的数组之和都大于0题目思路首先要找性质,如果k满足,那么显然k*2也满足那么以此类推,可以发现只要存在那么就可以找到一个k>n/2的数。接下来分类讨论当x>=0,显然只要看pre[n]是不是大于0即可当x<0,肯定这个k>n/2,然后推一下就行了代码#include<map>#include<cmath>#include&l原创 2020-05-27 16:21:24 · 450 阅读 · 1 评论 -
Codeforces Round #645 (Div. 2) D - The Best Vacation 题解(二分+思维)
题目链接题目大意一年有n个月,每个月有d[i]天,让你找出连续x天,使其日期的总和最大,可以跨年题目思路这里要发现一个性质:即连续的x天一定满足最后一天在月份的结尾,结论是显然的。然后用两个前缀和,然后二分,二分的方法是二分差值值得学习代码#include<map>#include<cmath>#include<cstring>#include<cstdio>#include<algorithm>const int maxn原创 2020-05-27 11:11:39 · 358 阅读 · 0 评论 -
Codeforces Round #643 (Div. 2) E. Restorer Distance 题解(三分)
题目链接题目大意给你一个数组,要你使数组所有元素的值都相等且所消耗最小代价,增加1消耗a,减少1消耗r,转移1消耗m,求消耗最小代价题目思路如果增加减少都是1,转移是2,那么就是类似于仓库选址问题,直接找中位数,而这个不是,就是稍微改编了一下,三分一下就行了代码#include<cstdio>#include<algorithm>using namespace std;typedef long long ll;const int maxn=1e5+5;int n原创 2020-05-18 17:40:58 · 237 阅读 · 0 评论 -
Codeforces Round #643 (Div. 2) C. Count Triangles 题解(思维)
题目链接题目思路显然是找x+y>z即可,其实只要枚举x+y即可,自己好菜qwq代码#include<cstdio>#include<algorithm>using namespace std;typedef long long ll;int a,b,c,d;ll ans;int main(){ scanf("%d %d %d %d",&a,&b,&c,&d); for(int i=max(a+b,c);i<=b+c;原创 2020-05-18 14:46:21 · 243 阅读 · 0 评论 -
Educational Codeforces Round 87 (Rated for Div. 2) D. Multiset 题解(思维+二分)
题目链接题目思路我用的是vector加二分,但是t了,后面了解到rease和insert的操作是o(n)的复杂度,感觉以后这个操作没什么用了。。看了一个神仙二分,判断每个数相对于这个多重集合的大小,二分这个集合中最小的元素。还有我居然以为1e6在28mb放不下我少算了一个0。。。tle代码#include<cstdio>#include<vector>#include<queue>#include<cstring>#include<a原创 2020-05-17 23:49:56 · 285 阅读 · 0 评论 -
Codeforces Round #642 (Div. 3) E. K-periodic Garland 思维
题目连接题目大意给你一个01串,要你用最少的变化次数使得所有的1相邻的距离为k。变化的方式为1->0,0->1.要你求最少的变化次数题目思路emm完全没啥思路,看了题解,其实就是你要想这些数字1都是modk等于一个定值,那么你就可以用余数开始枚举。首先肯定时要统计所有1的个数 sum然后把 ai 中的字符 1 看成数字 1,字符 0 看成数字 −1,问题就变成了求 ai 中最大连续子序列和 (now)sum-now即为最优解。有些难解释,但是自己仔细思考应该就明白了。遇到此类题目就是原创 2020-05-15 09:58:49 · 467 阅读 · 0 评论 -
Codeforces Round #641 (Div. 2) D. Orac and Medians 题解(思维)
题目链接题目大意就是数组里一段数可以都变成他的中位数,问整个序列能不能变成k。可以变化很多次题目思路emmm,根本没什么思路,看了题解感觉根本想不到啊,但是仔细想想其实确实应该那么想。先令a[i]==1(a[i]==k) a[i]==0(a[i]<k) a[i]==2(a[i]>k),因为是合并其实只要知道相对k的大小即可其实肯定是想一次合并的时候先想合并区间小的,为什么呢,因为你区间太大,你不好想啊。。。那么首先考虑区间长度为2,你会发现要把他们全部变成1只有可能是1,2。你1原创 2020-05-13 11:53:29 · 152 阅读 · 0 评论 -
牛客 牛牛的揠苗助长 题解 (中位数+二分) 2019 USP-ICMC J. Weird Sanchola 题解(中位数+相邻的质数的最大差值)
牛牛的揠苗助长题目思路1:如果不增加,那么肯定是靠齐中位数,类似于仓库选址。2:假设经过无限长的时间后,我终于将所有水稻都调整到了一样高,这个同样高的高度是否能持续保持?显然是可以的对吧,因为每一天都仅有一个水稻的高度长高,所以我只要将自然长的水稻给他摁回去,就能一直保持他们都是同样高的。所以满足单调性可以二分。代码#include<cstdio>#include<cstring>#include<algorithm>typedef long long l原创 2020-05-11 09:23:41 · 259 阅读 · 0 评论 -
Codeforces Round #500 (Div. 2) [based on EJOI]C. Photo of The Sky(思维题)
题目链接题目大意就是给你2*n个数据,随便组成(x,y)n个点,求包括这些点的长方形的最大值。题目思路很容易想到先sort一下然后(a[n]-a[1])*(a[2n]-a[n+1]),后面会发现这是错的,这仅仅是一种情况,如 1,3,3,5。显然答案应该是0,但是这么算的话答案是4.还有一种情况就是把最小值和最大值分别作为横坐标上的左右两边,然后在中间区间对称寻找差值最小的,可以看出剩下...原创 2020-05-08 12:38:10 · 100 阅读 · 0 评论 -
AtCoder Beginner Contest 165 E - Rotation Matching 题解(思维)
题目链接题目大意有n个选手, m个比赛场地,为海m个比赛场地指定一对选手的编号 (一 个编号只能出现在一个比赛场地) ,来保证在之后的n轮比赛中,所有选手不会与同-选手比赛两次,每轮比赛后所有选手编号加1,编号n+ 1的变为1。题目思路一个选手最多的情况是要与m个人一人比一次,所以m对编号应取m个不同的间隔。即在[1, n]中取m对数,每对数间隔不同的长度。emm。。。怎么说了,感觉这个...原创 2020-05-03 09:11:48 · 349 阅读 · 0 评论 -
1348D - Phoenix and Science 题解(思维)
题目链接题目大意第一天有一个细胞质量为1,每一天白天细胞可以发生分裂(任意个发生分裂,前后质量守恒),晚上细胞质量增加(每个细胞质量增加1)。给定一个n,问至少要多少天,细胞总质量恰好达到为n(2≤n≤1e9)题目思路感觉很明显和二进制有关但是我就是不会写。。。。分析:先考虑分裂,分裂不会对细胞的总质量带来任何影响,只是会影响晚上细胞质量增加的值。若当前细胞数量为x,那么晚上细胞可以增...转载 2020-05-02 18:52:08 · 235 阅读 · 0 评论 -
集训队选拔赛 送温暖 题解(思维)
题目链接题目思路首先注意是子序列,不是字串显然,对于题目所给的原始01串,我们可以在O(n) 内求出其最长x-子序列长度。所以本题的关键在于这一次不可避免的连续区间反转操作。任意一次区间操作[L,R] 可以转化为操作[1,L-1], [1,R] 这两个前缀,现在问题转化为操作任意的两个前缀。而操作任意的前缀[1,K] 对答案的贡献显然只有+1和-1:当原串中S[K] == S[K+1] 时,...原创 2020-04-29 21:22:22 · 243 阅读 · 0 评论 -
集训队选拔赛 lonely_wind的传说(eazy+hard)(思维)
easy题目链接题目思路emmm,题目的意思比赛的时候没怎么读懂。注意:题目的重新编排就是指换位置其实题目很简单我们只需知道数的个数之和sum和最多的数出现的次数ma如果 ma <= sum/2 那么结果就是sum如果 ma> sum/2 结果就是 2*(sum-ma)由于a[i]的范围要用map代码#include<cstdio>#include<...原创 2020-04-29 19:53:21 · 121 阅读 · 0 评论 -
集训队选拔赛 摸鱼的tomjobs2 题解(思维+stl)
题目链接题目思路前言比赛的时候一脸可做,以为是求贡献,但是还是想不出,看了一下题解太神奇了正文设dp[i]表示包括a[i]的前i个&运算的集合。如dp[3]包括 a[3],a[3]&a[2],a[3]&a[2]&a[1]分析按位与的性质,因为对于一个区间,我们加入一个新值进行按位与,结果的二进制要么不变(不影响结果),要么最少有一个原来为1的位置变成了...原创 2020-04-26 19:38:46 · 175 阅读 · 0 评论 -
周赛 欺负萌新的佳爷 题解(二分)
题目链接题目大意现在给你一个n×m的矩阵,已知矩阵的第x行第y列的元素为 axx+bx+cy,求第k大的元素值。题目思路二分第 k 大的数,每次 check 有几个数比它小的数,细节有点麻烦注意long long 以及1ll的使用其实我觉得题目想到二分应该应该不算难,因为发现行列是1e5,那么复杂度正常来说应该是n*logn,而logn的话根据所学知识以及题目肯定是二分,但当时没想到,这...原创 2020-04-15 16:37:24 · 149 阅读 · 0 评论 -
牛客 每日一题 8 Shortest Path 题解(思维)
题目链接题目大意给你一棵 n 个节点的树(保证 n 是偶数),你需要将 n 个节点分为 n/2 个点对,使得每个点对的两个点的距离的和最小。题目思路这是一个打着图论题幌子的思维题。。。。首先我们可以通过观察得到以下几点:首先,在最短的距离和之中一条边一定不会被覆盖两次,如图,我们一定可以找到一种方法来交换配对,把重复的边去掉(其他的边是不会变的)。也就是说对于一条边来说,其实只有选和不...原创 2020-04-14 16:20:52 · 181 阅读 · 0 评论 -
牛客 每日一题 7 月月查华华的手机 题解(枚举优化)
题目链接题目大意给一个文本串和一个n,接着n个模板串,问文本串中是否有子序列和模板串相等题目思路前言emmm,我只会暴力,暴力的话是O(∣A∣∑∣Bi∣)。后面我觉得应该是kmp或者hash等等,没想到居然是优化枚举。确实学算法不应该自己吓自己。并不是什么高深的算法正文我们可以观察,比如主串(华华的昵称)是abcdefgh,子串(小姐姐的昵称)是 aez,那么当 a 匹配上了之后,再...原创 2020-04-14 11:28:30 · 137 阅读 · 0 评论 -
周赛 动漫明星大乱斗 题解(思维)
题目链接题目思路前言这个题目感觉挺简单的,实在是我太菜想复杂了,当时还考了环什么的,并查集什么的都出来了正文其实就是只有对战选了自己就不行,因为对方选了自己,然后自己又选了别人就至少两次,居然这么简单。。。代码#include<cstdio>#include<algorithm>using namespace std;const int maxn=1e5...原创 2020-04-12 15:57:02 · 163 阅读 · 0 评论 -
牛客 每日一题 1 tokitsukaze and Soldier 题解(贪心+优先队列 or 权值线段树)
题目链接题目大意给你n个物品,每个物品有价值v,限制s表示最多选择多少个物品(要求最终选出来的数量满足所有选出来物品带有的限制)题目思路前言看到题目一眼觉得事dp,发现不可写。然而始终想不到贪心+优先队列,果然这类题目没做过就根本想不到正文题解讲的很详细,其实直接就是对s从大到小排序,然后贪心就行了。优先队列优化。权值线段树待补。优先队列#include<cstdio&g...原创 2020-04-08 23:01:53 · 178 阅读 · 0 评论 -
牛客小白月赛22 货物种类 题解(差分)
题目链接题目思路前言看到题目没什么思路,以为是线段树,但是明显会t,这题算是第一次用差分做题吧正文每次选择一段区间放入物品,问所有操作完成后物品种类最多的位置是几。区间操作,只有在最后有一次询问所以很显然可以用差分进行求解差分对于每个位置维护一个数组,最后统计更新答案。当然,也可以用某些数据结构来解。代码讲解在区间内实现加减,我们可以使用差分数组。还要注意的一点:不是存放货物数目最多...原创 2020-04-08 11:22:15 · 261 阅读 · 0 评论 -
牛客小白月赛22 G 仓库选址 题解(中位数or二维前缀和)
题目链接题目大意简要题意是找到一个位置,使得其它所有位置上的数乘以两个位置之间的距离的总和最小。题目思路前言看到题目感觉不在我的知识范围内。。只会暴力 放一份暴力代码for (int x = 1; x <= n; x++) for (int y = 1;y <= m; y++){//枚举仓库的位置(x,y) sum = 0; for (in...原创 2020-04-08 09:59:13 · 309 阅读 · 0 评论 -
学军信友队趣味网络邀请赛 A. 核酸检测(思维)
题目描述题目思路前言看成最外围的路线是双线,结果就wa了。。。想了很久根本想不到正解,qwq,菜的一批正解题解真详细最难的点就是如何翻转其实不难自己直接设一个坐标模拟翻一下就行代码#include<algorithm>#include<iostream>using namespace std;int n,m;void print(int x,in...原创 2020-04-05 22:03:04 · 590 阅读 · 0 评论 -
牛客小白月赛23 奇怪的背包问题增加了 题解(思维)
题目链接题目思路前言看一眼确实像一个背包问题,但是会发现数据是1e5,那么显示最多的复杂就是o(n*log(n)),显然和普通背包没什么关联那么就要往其他方面去思考正题直接说结论:如果所有元素总和sum>=(1<<30),那肯定可以凑出1<<30我只需要把所有的数字从大到小排序,依次加入数字,肯定在某个时刻和就等于1<<30正确性:如果我...原创 2020-04-01 09:59:33 · 232 阅读 · 0 评论