
思维
Togt
这个作者很懒,什么都没留下…
展开
-
Avito Code Challenge 2018 E
传送 题意:给定一些区间增加值的集合,要求任选若干子集之后的最大值,求出所有可能值。 题解:仔细看题目数据可以发现,它要求得值[1,n],即可以以值枚举区间,对每个值枚举出其可能覆盖的区间,然后其它新加入的值加入这样的区间时进行组合。 #include<bits/stdc++.h> using namespace std; int r[10005]; struct N{ ...原创 2018-05-28 15:08:29 · 245 阅读 · 0 评论 -
Avito Code Challenge 2018 C
传送 题意:给定一棵树,将树拆分成一些没有重叠的路径,要求任何两条路径之间必须要有一个交点。 题解:稍微分析,除了只有一条路径的情况,有多条路径时,要满足两两香叫,必然所有的路径相加与一点,否则会成环,那就不是树了,排除这两种情况后就是没法划分的树了。要找出这样的路径:端点度数为1,或者度数等于度数为1的顶点个数。 #include<bits/stdc++.h> using ...原创 2018-05-28 15:19:41 · 246 阅读 · 0 评论 -
Codeforces Round #486 (Div. 3) D
传送 题意:给你2∗1052∗1052*10^5个数,要你找出最大的一个子集,每两个数差的绝对值是2的指数幂。 题解:思维,在思维,排序,以第一个数a为基准,考虑一下与a的差为2的指数幂的数小于32个,再考虑一下这32个数中两两都要为2的指数幂时的最大个数时,似乎有点复杂,再想想,|2x−2y||2x−2y||2^x-2^y|要等于2的幂,似乎只有|x-y|=2的时候能满足,其实确实就是如此。...原创 2018-06-02 01:04:23 · 1085 阅读 · 0 评论 -
Codeforces Round #486 (Div. 3) C
传送 题意:找出两个序列,各删除一个数后序列和相等,问删除哪两个序列的哪两个数 题解:预处理出删除每个数后的序列和,set存一下。 #include<bits/stdc++.h> using namespace std; int k,a,sum[200005]; vector<int> b[200005]; set<pair<int ,int> ...原创 2018-06-02 01:09:38 · 435 阅读 · 0 评论