比赛地址:2016-2017学年第二十届低年级程序设计竞赛(正式赛)
Problem A: 跑得比谁都快的IDrandom
计算距离之后膜400
Problem B: 捧杯
终点减起点得到向量求和,对
x,y
绝对值进行约分,注意处理有0的情况
Problem C: 汪老司机
dp,用
f(i,j,sta)
表示第
i
段路,已经变了j次道,现在在
sta
道上,状态转移方程为
f(i,j,sta)=min(f(i−1,j,sta)+v(i−1,sta),f(i−1,j−1,1−sta)+v(i−1,1−sta))
Problem D: 蒟蒻的任务分配
注意到,物品体积范围很小,将物品分成可容和不可容,用多重背包处理之后,将可行解按顺序排列(以下称为可容序列和不可容序列),分为三种情况: 1. 不可容物品和
Sumuct
大于可容物品
Sumct
,直接输出 2. 只有一边有不可容任务,在可容序列中二分查找
Sumuct+Sumct−Sumuct2
3. 两边均有不可容任务,在不可容序列中枚举
x
,在可容序列中二分x Sumct−Sumuct2
Problem E: 杂物整理
完美三角形使用的箱子数量为
k(k+1)2
,打表之后二分枚举小于等于
n
的最大值并减去
Problem F: 火柴棒
尽量放1,也就是每4根火柴,直接放成11,对于余数分情况处理
1. 余1,如果火柴数量和为5,放成5,否则拆开两个1变成777,并将两侧的7放在末尾
2. 余2,在中间放1
3. 余3,在中间放7
Problem G: PY
该式在j>i的情况下可转换为
f(i,j)=aj+j+(ai−i)
,记录
max(ai−i)
即可
Problem H: 倒水问题
取膜
代码链接
转载请注明原文地址: https://ju.6miu.com/read-971400.html