GDCPC 2018

原题选手或成最大赢家。

A: Chika’s Math Homework

题目大意

1 T 10 5 , 1 n 10 18 ,求

i = 0 n i 2 C n i

题解

比赛的时候队友打表找规律大师秒杀。。太强大了。
可以看出来原式就是 n ( n + 1 ) 2 n 2 。快速幂即可。

B: Letter Kingdom

题目大意

一个有向图有 n ( 2 n 26 ) 个点, n 条边,每个点有唯一一条出边,有 m ( 1 m 2 × 10 5 ) 个士兵分布在各个点,有 q ( 1 q 2 × 10 5 ) 次询问,可以是将编号在 [ l , r ] 内的士兵沿出边走到相邻点,或者是将编号是 x 的倍数的士兵沿出边走到相邻点,或者查询某个士兵现在在那个点。

题解

因为有向图每个点只有一条出边,因此从一个点出发必定会进入一个环,也就是一个环带一个尾巴的那种。所以我们预处理出来每个点出发走多少次能到那些点。
对于第一种操作,我们用树状数组维护每个士兵走了多少次,对于第二种操作,因为一个数的因数很少,我们每次标记 x ,那么在第三种操作查询的时候直接暴力 O ( n ) 时间找到 n 的所有因数,统计一次,加上树状数组维护的值就可以知道这个士兵走了多少次了,也就知道走到哪个点。

C: Xor Tree

题目大意

给定一棵树, 1 n 2 × 10 5 ,1为根节点,每个点有一个正的权值, m ( 1 m 2 × 10 5 ) 次询问,查询 u v 路径上点权值与 x 的异或值最大为多少。

题解

我们先考虑序列上的情况。给定一个序列,我们每次查询区间上的数与x的异或值最大为多少。我们可以想到可持久化Trie。这样我们可以方便地得到区间的Trie,那么我们通过贪心就可以得到异或值的最大值了(即每次尽量走相反的位)。那么树上的话,树链剖分就可以解决了。
码力题。。不过30min还是能写完的。

D: Bipartite Coloring

题目大意

给定一个二分图,每个点的权值,以及点集 V 的两个不相交子集 B 1 , B 2

E: Lottery

题目大意

给定 P ( 2 P 10 14 ) ,求 2 m n , n P ,使得 m n × m 1 n 1 = 1 2

题解

我们变换一下形式(我们令 m 为自变量):

(1) m n × m 1 n 1 = 1 2 (2) 2 m ( m 1 ) = n ( n 1 ) (3) 2 m 2 2 m = n 2 n (4) 2 m 2 2 m n 2 + n = 0 (5) Δ =

F: Find the Number

题目大意

1.. n n ( 1 n 10 9 ) 个数字,C心里想一个数字 x ,A和B轮流询问C, x 是否大于某个数,C会回答是或者不是,然后对于A和B, x 所在的范围就会缩小,直到区间长度为1的时候此时的人赢。

题解

f i 表示剩下的 x 所在的可能区间的长度为i时的先手胜率,那么有:

f i = max { j i × ( 1 f j ) + i j i × ( 1 f i j ) }

g i = i f i ,那么有 g i = max { i g j g i j } 。打表可以发现:
g i = { i 2 + 2 , i  mod  4 = 0 i 2 2 , i  mod  4 = 2 i + 1 2 , i  mod  2 = 1

G: Commemorate

BZOJ 3514…

题目大意

N个点M条边的无向图,多次询问保留图中编号在 [ l , r ] 的边的时候图中的联通块个数。

H: Number String

题目大意

给定各个元素在 [ 1..9 ] 内的正整数序列,长度 n ( 1 n 5 × 10 6 ) 。现在你可以使用两种操作:删掉一个数,或者合并两个相邻的数为两数的和(要求和不超过9),找到经过一些操作后能得到的字典序最大的序列,且操作次数最少。
如:182736,合并18,27,36得到999,操作次数为3。如6723,删去6,合并72得到93,操作次数为2。如67211,合并62,11得到92,操作次数为2。如900,不进行任何操作。

题解

贪心:我们从左到右扫,扫过的区间 [ l , r ] 如果恰好就可以组合出可以组合得到的最大的数(也就是说能组合得到 [ l , n ] 能组合到的最大的数的情况下 r 最小),那么将这个区间直接替换成最大的数,就可以了。

I: Convex Hull

题目大意

有不超过10组数据,有 n ( 3 n 1000 ) 个点( 0 x i , y i 10000 ),令为 A 0 , A 1 , , A n 1 ,以逆时针方向排序。一个点 P 是好的当 i = 0 n 1 S Δ P A i A ( i + 1 ) % n = w ,如果设这些点的凸包面积为 S ,那么有 1.1 S < w < 1.2 S 。现在你需要计算所有 P 围成的区域的面积,精度2位小数。

J: Maximum × Minimum

题目大意

给定序列 { a n } ( 1 n 10 5 ) ,求

l = 1 n r = l n max { a l , a l + 1 , , a r } × min { a l , a l + 1 , , a r }

10 9 + 7 的模。

题解

我们计算出所有点作为最大值的区间和最小值的区间。然后线段树7个域暴力搞一发,舒服。

猜你喜欢

转载自blog.csdn.net/huanghongxun/article/details/80238537