目录
Contest Info
[Practice Link](https://codeforc.es/contest/1207)
Solved | A | B | C | D | E | F | G |
---|---|---|---|---|---|---|---|
7/7 | O | O | O | O | O | O | Ø |
- O 在比赛中通过
- Ø 赛后通过
- ! 尝试了但是失败了
- - 没有尝试
Solutions
A. There Are Two Types Of Burgers
签到。
B. Square Filling
签到。
C. Gas Pipeline
题意:
给出一个(01)串,那一位为(1)表明那里需要一个高度为(2)的天桥,如果为(0)表示只需要一个高度为(1)的。
但是所有天桥是需要连接起来,并且首尾的高度都要是(1)。
但是天桥的成本和支架的成本不同,求最少花费。
天桥像这样:
思路:
首先天桥的有一部分花费是固定的。
花费不同在于什么时候天桥往下走,再走上来,或者选择直接用支架撑起来,平铺过去。
对于每一个(0)的连续段判一下即可,取少的那部分花费
D. Number Of Permutations
题意:
给出(n)个二元组((a_i, b_i)),问有多少种重新排列的方案使得以第一关键字来看它不是非递减并且以第二关键字来看它也不是非递减的
思路:
正难则反,考虑有多少方案数使得以第一关键字来看它是非递减,或者以第二关键字来看它是非递减的。
那么容斥一下即是以第一关键字来看非递减的数量 + 以第二关键字来看它是非递减的 - 以两个关键字同时看它都是非递减的方案数
再用总的减去它的即可
E. XOR Guessing
题意:
有一个数(x(x in [0, 2 ^{14} - 1])),可以询问两次,每次询问(100)个数(a_i),系统每次随机选择一个数(a_i),告诉你(x oplus a_i)的结果。
你需要根据两次询问结果,确定(x)
思路:
注意到每次需要给出(100)个数,发现(2^7 = 128)
- 那么第一次询问的数保证后(7)位全(0),那么就能确定后(7)位的结果
- 第二次询问的数保证前(7)位为(0),那么就能确定前(7)位的值
F. Remainder Problem
题意:
给出一个长度为(500000)的序列(a_i),开始时(a_i = 0),支持两种操作:
- 将(a_x)变成(a_x + y)
- 计算所有(i \% y = x)的(a_i)的和。
思路:
分块即可。