DeNeRATe
DeNeRATe
全部文章
分类
题解(55)
归档
标签
去牛客网
登录
/
注册
DeNeRATe的博客
Life is hard to cut off, Lifelong lovesickness
全部文章
(共52篇)
牛客练习赛69 E
分析 对于每个端点维护四个单调栈。表示这个端点作为最小值,最大值可以满足的合法区间 。那么只有 在 的合法区间内, 在 的合法区间内,这个用扫描线维护一下就好了,要记住先加后减,否则会丢掉重合的方案。 一些理解 是我这个点可以延展的范围。如果我都不能到 ,那么我肯定不能作为端点出现。所以...
哲哥
2020-09-13
7
993
牛客练习赛69 D
分析 考虑如果一个数有选择,那么可能会影响它的也必须选择。所以这个就是个计数 了。可以写个类似背包的转移来算出所有的可能方案,最后答案再除以所有方案数就好了。时间复杂度为 。当然你可以滚动数组优化空间。 一些细节 表示可以选 个人时的合法方案数,由于从 转移过来的,所以可以滚动数组优化。...
哲哥
2020-09-13
6
682
牛客练习赛69 C
分析 考虑一个最大生成树,变化为序列之后一定有一种方案满足 。所以这道题只需要求一个最大生成树即可。 代码 #include<bits/stdc++.h> using namespace std; #define LL long long const int N = 5e5+1000...
哲哥
2020-09-13
6
615
牛客练习赛69 B
分析 对于一个确定的 ,答案一定是可以取到前 个最大的值,所以只需要排序,再维护一个前缀和。最后时间复杂度为 。 代码 #include<bits/stdc++.h> using namespace std; #define LL long long const int N = 1...
哲哥
2020-09-13
7
541
牛客练习赛69 A
分析 按题意模拟即可,要注意四舍五入,所以全部 ,最后再除回来就可以了。 代码 #include<bits/stdc++.h> using namespace std; #define LL long long LL T,a; int main() { cin >>...
哲哥
2020-09-13
5
606
Codeforces Round #670 (Div. 2) 题解
A 分析 分出两个集合要求 。考虑直接贪心选到不能再选,因为每个数的对答案的贡献都是 ,不错的签到题。 代码 #include<bits/stdc++.h> using namespace std; const int N = 4e5+100,inf = 0x3f3f3f3f; in...
哲哥
2020-09-13
3
562
牛客小白月赛27 J
分析 对于 这个其实是等价于 的。所以只需要判断是否为偶数。 代码 #include<bits/stdc++.h> using namespace std; const int N = 1e6+100; char ch[N]; int n,sum; int main() { ...
哲哥
2020-09-12
3
465
牛客小白月赛27 I
分析 考虑答案的单调性,我们先钦定一个值为最小值或最大值。那么如果 是一个满足的区间,那么 也一定是一个合法区间。对于每一个数都求出它的分界点。那么 。这个直接上单调队列。时间复杂度为 。 代码 #include<bits/stdc++.h> using namespace st...
哲哥
2020-09-12
3
562
牛客小白月赛27 G
分析 讨论 和其它三个字母出现次数的大小就可以了。有且只有两种状态。 和 的情况。 代码 #include<bits/stdc++.h> using namespace std; const int N = 1e7+100; char ch[N]; int ans; void sol...
哲哥
2020-09-12
3
552
牛客小白月赛27 F
分析 因为不等号具有传递性。可以对于一个节点连接比他大的数字,最后看他可以到多少个节点就是答案了。 代码 #include<bits/stdc++.h> using namespace std; const int N = 1e3+100; int f[N],n,m,ans;vector...
哲哥
2020-09-12
3
513
首页
上一页
1
2
3
4
5
6
下一页
末页