码迷,mamicode.com
首页 > 其他好文 > 详细

Codeforces Round #486 (Div. 3)

时间:2020-05-19 12:43:34      阅读:46      评论:0      收藏:0      [点我收藏+]

标签:构造   power   class   字符   元素   log   sub   points   ORC   

_vb92xHWx8zQTc_34

A. Diverse Team

题意:从 \(n\) 个数里选出 \(k\) 个不同的,构造方案,无解输出-1。

\(n,k,a_i \leq 100\)

题解:开个桶,扫一遍

\(O(n)\)

B. Substrings Sort

题意:给 \(n\) 个字符串,问能不能重排后使得所有 \(i\in [i,n-1]\) 满足第 \(i\) 个是第 \(i+1\) 个的子串

\(n,length \leq 100\)

题解:按长度排序,判断一下就好了

\(O(n\log n+\sum length)\)

C. Equal Sums

题意:给 \(k\) 个序列,问是否存在两个序列使得各删掉恰好一个元素之后和相等。

\(k \leq 2\times 10^5\)\(\sum n \leq 2 \times 10^5\)

题解:把所有和拿map存一下

\(O(\sum n \log n)\)

D. Points and Powers of Two

题意:有 \(n\) 个不同的整数,求最大的一个子集使得两两之差都是 \(2^k\)

\(n \leq 2 \times 10^5\)

题解:

首先发现选出集合的大小 \(<4\)

因为如果 \(\geq 4\),可以选出 \(4\) 个数 \(a,a+2^x,a+2^x+2^y,a+2^x+2^y+2^z\),则 \(2^x+2^y\)\(2^y+2^z\) 均可以表示成 \(2^k\),所以 \(x=y=z\),所以 \(2^x+2^y+2^z\) 不能被表示成\(2^k\),矛盾。

如果是 \(3\) 个数,一定是长度为 \(3\),公差为 \(2^k\) 的等差数列,枚举首项和公差,拿 map 判一下存不存在。

\(2\) 个数也随便拿 map 判一下,一个数就随便选就好了。

\(O(n\log n\log a)\)

Codeforces Round #486 (Div. 3)

标签:构造   power   class   字符   元素   log   sub   points   ORC   

原文地址:https://www.cnblogs.com/wangziji/p/12916096.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!