Codeforces Round #447 (Div 2 Only) Hack+FST记

上一场涨了158点rating,隔了一天又有一场,本来又想涨,结果。。

A. QAQ

Description

给定一个长度小于等于 100 100 100的串,计算有多少个子序列是“QAQ”。

Solution

数据规模小,可以直接 O ( n 2 ) O(n^2) O(n2)暴力求解。

Code

传送门

B. Ralph And His Magic Field

Description

有一个 n × m n\times m n×m的方阵,每个格子中可以填写 1 1 1 − 1 -1 1,求满足每一行的乘积、每一列的乘积都是 k k k的方阵方案总数( k = − 1 或 1 k=-1或1 k=11

Solution

容易发现答案就是 2 ( n − 1 ) ( m − 1 ) 2^{(n - 1)(m - 1)} 2(n1)(m1),然后考试的时候我就这么天真地写了,竟然还过了pretest!垃圾pretest毁我青春,然后我最后10分钟弃疗后,,被Hack了. 因为当 n n n, m m m中一个是奇数,一个是偶数时,无解.

Code

传送门

C. Marco and GCD Sequence

题外话

题目背景:

In a dream Marco met an elderly man with a pair of black glasses. The man told him the key to immortality and then disappeared with the wind of time.

。。
感觉我的博客要被封禁了

Description

有一个序列,对于它的每一个区间,取区间内所有元素的gcd,得到了一个数,将它丢到一个set里,然后给出这个set 内的元素,求构造这个序列。若无解输出-1

Solution

考试时XJB贪心,结果又过了pretest,然后又FST了
其实这个题的构造方法是这样的:
a 1 , a 2 , a 1 , a 3 , a 1 , a 4 , ⋯   , a 1 , a n a_1,a_2,a_1,a_3,a_1,a_4,\cdots,a_1,a_n a1,a2,a1,a3,a1,a4,,a1,an
(显然如果 a 1 a_1 a1不是 a 2 a_2 a2 a n a_n an中的一个数的约数,则无解)

Code

还是传送门

D. Ralph And His Tour in Binary Country

Description

有一个完全带权二叉树,每次询问给出 A i , H i A_i,H_i Ai,Hi,求 ∑ u ∈ G [ H > d i s A i , u ] H − d i s A i , u \sum_{u\in G}[H>dis_{A_i,u}]H-dis_{A_i,u} uG[H>disAi,u]HdisAi,u

Solution

比赛时XJB倍增乱搞,没刚出来。
发现可以对于每一个节点,将其子树上的所有节点到它的距离丢到一个vector 里,然后排序,对于每次询问不断“向上爬”即可。由于是一个完全二叉树,所以并不会爆空间。
时间复杂度 O ( m l o g 2 2 n ) O(mlog_2^2n) O(mlog22n)

Code

click me

E. Ralph and Mushrooms

Description

给定一个有向带权图,每条路上有一些蘑菇。
若一开始有 n n n个蘑菇,你第一次可以采到 n n n个蘑菇,第二次可以采到 n − 1 n-1 n1个蘑菇,第三次可以采到 n − 1 − 2 n-1-2 n12个蘑菇,以此类推。
给定一个起点 s s s,求最多可以采到多少蘑菇。

Solution

考虑先SCC缩点,同一个SCC内的蘑菇可以全都一起采到,然后toposort上dp即可。
注意:计算一条路径上最多可以获得多少蘑菇不能直接模拟,会TLE!可以 O ( 1 ) O(1) O(1)算,然而我太菜了,不会。可以先二分可以走多少次,然后再算, O ( l o g 2 n ) O(log_2n) O(log2n)

Code

戳我

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值