![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
题目
文章平均质量分 69
kuzi_kz
这个人很懒,还没有添加简介
展开
-
01分数规划
比如题目想最大化这个,然后有最多k个i可以不取。那么我让这个东西>=mid,移项以后就是sici-simid>=0 ,每次二分check的时候,用数组存sici-simid的值,小到大排序,因为要求和大于等于0,所以从小到大,负的我有k次可以不取,正的全取。加入最后求和sici-simid>=0说明mid可以更大,让l=mid #include<bits/stdc++.h> using namespace std; typedef long long ll; typede.原创 2021-10-06 00:01:30 · 57 阅读 · 0 评论 -
买礼物(线段树+set维护)
原题 题意:有两种操作 1 x 表示删去x位置的数 2 l r 表示查询l到r区间是否存在两个数相同。 题解: w[i]表示i前面与a[i]相同的数a[j]且下标最大的j。w[i]表示i前面与a[i]相同的数a[j]且下标最大的j。w[i]表示i前面与a[i]相同的数a[j]且下标最大的j。 为什么要下标最大的? 因为比如1 4 3 4 4 5 查询区间4到5 存在4相同。那么查询区间2到5 一样会存在4相同,只要记录离自己最近的就可以 rw[i]表示i后面与a[i]相同的数a[j]且下标最小的j。rw[i原创 2021-02-05 23:40:23 · 79 阅读 · 0 评论 -
Easy Equation(差分+前缀和。求a+b+c=d的种类数)
题意: 给a,b,c,d。求x+y+z=k的个数。其中 0<=x<=a,0<=y<=b,0<=z<=c,0<=k<=d, 题解 先枚举x的值。再枚举a+b的值。最终得到a+b+c和为 f1[i] 的方案数。 然后枚举k的值。ans+=f1[k]即可 具体看注释 复杂度O(n2)O(n^2)O(n2) #include<bits/stdc++.h> using namespace std; const int N=3e6+10; typedef l原创 2020-11-02 21:05:24 · 196 阅读 · 0 评论