C/C++教程

Codeforces Round #805 (Div. 3)(A~F,G待更)

本文主要是介绍Codeforces Round #805 (Div. 3)(A~F,G待更),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
A B C D E F G
+ + +2 + + + -2

A

签到题不讲。

B

模拟题,每次要记录到的字母超过3个时就加一天。
时间复杂度\(\mathcal{O}(\sum|S|)\)

C

不难发现要把\(u\)先离散化一波,设车站\(x\)所处最靠前的位置为\(Min_x\),最靠后的为\(Max_x\),每次询问\(a_i,b_i\)时,若\(Min_{a_i} \le Max_{b_i}\),显然就是可以的。
Tips:先判一下\(a_i,b_i\)是否在\(u\)中。(+2,悲)

D

直接从最大的删就行。

E

若两个数对\((a,b),(c,d)\)中有两个数相等,那么这两个数对就不能放为一堆。将有相等数的数对相互连边,做一遍染色判断可行性(判断奇数个数环)。

F

设设\(a_i = 2^{k} + a'_i(a'_i \in \mathbf{N})\)(\(k\)尽可能大)若\(b_j\)能通过若干次\(\lfloor\dfrac{x}{2}\rfloor\)操作转为\(a'_i\),那么\(b_j\)就能干掉\(a_i\),易得。(乘上若干次\(2\))

这篇关于Codeforces Round #805 (Div. 3)(A~F,G待更)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!