2018-2019 9th BSUIR Open Programming Championship. Semifinal

A. Four minutes until BSUIR Open

  • 正着走,加速度<=a,减速度<=inf,考虑每个点限速,求得到每个点的最大速度v1[i]
  • 倒着走,加速度<=b,减速度<=inf,考虑每个点限速,求得到每个点的最大速度v2[i]
  • 那么在第i个点的合法的最大速度为min(v1[i],v2[i])

B. Varvara and matrix

  • 经典的 2-SAT 问题
  • 建图复杂度太卜了,可以 bitset 优化一下

C. Cockroach Racing

upsolved

  • 考虑 dp,求出方案数不难每组方案元素和。
  • 逐行考虑,(f[i][j])(i) 个数字填 (j) 的方案数。 NG!
  • 逐列考虑,(f[l][r][col][d]) 表示考虑第 (col) 到第 (m) 列,(l)(r) 行,(s[r][col])(d) 的方案数,记录一下 (sum_{*}f[][][][*]),前缀和优化转移。复杂度 (O(10n^3m))

D. Light show

E. Small business

  • 大力分类讨论,越苟越好
  • 先写个函数 check 拿一下积木能不能拼凑出合法数字。然后分类。
  1. 0 + ?
  2. 1e18 + ?, ? + 1e18
  3. 枚举第一个数长度,高位拿最小非 0,其它位从小大拿。

F. Prime or number

签到

G. Sequence exploration

  • 每次截取后m位进行变换,发现没几次就出现了循环

H. Nonfibonacci numbers

  • 只能由 4,6,8,9,0 组成。
  • 数位 dp。

I. Equal Mod Segments

J. Boedium

  • 简单概率 + 枚举题意

K. Innovations

L. The only winner

  • 钦定 ((i,j)) 是唯一的和最大的 pair,统计在此条件下分组方式。
  • 本质上是无向图完美匹配方案数问题,但是手玩一些 case 不难找到keypoint。
  • ...$$i$$j$$,根据乘法原理,决定一下最后三个 $ 分别 match 谁 ,剩下的可以乱匹配。
  • ...$$i$$j$$...i$$$$$$j 答案是一致的。
  • 枚举 (i+j) 的值即可。
原文地址:https://www.cnblogs.com/FST-stay-night/p/12717303.html