Timeline
07:50-08:20
通看了一遍题目,怎么感觉都好难,忘了海伦公式具体是什么然后考场现推近半小时(((,把 A 题 70 分暴力写了
08:20-09:10
把三题最低档暴力写了
09:20-09:40
把 C 题 4,5,6 写了
09:40-10:10
把 B 题 3,4,5 写了,开始罚坐
Result
30+50+0+40
A 题海伦公式爆精度 −40,C 题两个包各有一个错,第一个包还 nt 了 −60,输麻了。
Summary
-
有时间要检查自己暴力有没有写对
-
坐标系求面积不要用海伦公式,以后用这个:
S=2∣xAyB−yAxB+xByC−yBxC+xAyC−yAxC∣
Problem
T1
平面直接坐标系上给定 n 个点,问任选三点能组成多少面积为整数的三角形
n≤50000。
Solution
由面积公式可看出只与横纵坐标奇偶性有关,统计下奇偶性情况,枚举三点横纵坐标奇偶性然后排列组合计算方案数即可。
时间复杂度 O(n)。
T2
有 n+1 种无限多物品,体积分别为 0,1,…,n,价值为 wi。
q 次询问,选择恰好 k 个物品,使总体积恰好为 v,最大化价值。
0≤k,v≤n≤2500,q≤3×105
Solution
设 fi,j,k 为考虑体积为 i,…,n 的物品,选择了 j 件,总体积为 k 的最大价值,注意所有考虑过的东西体积至少为 i:
fi,j,k=maxfi+1,j−1,k−i+wi←j≤in
第一维只和 i+1 维有关,故省去一维。
体积为 0 的物品怎么办?设初值为 fi,0=i×w0,且转移后再特别转移一次:
fj,k=maxfj,k−1+w0
时间复杂度 O(n2logn+q)。
T3
有长度为 n 的序列 ai≤m,有 q 条信息,有以下种类:
-
某些数的最小值 ∈[l,r]
-
某些数的最大值 ∈[l,r]
求 ∑i=1nai 的最小可能值和最大可能值。
n≤8,q≤500
Solution
枚举排列 pi,设 xpi≤xpi+1,由 q 条信息得到每个数的取值范围 [li,ri],因为 xpi≤xpi+1,有 lpi≤lpi+1 和 rpi≤rpi+1,枚举子集即可得到一组解。
时间复杂度 O(n!2n)。
T4
给定 n 个数对 (pi,vi) 及整数 k,对于每个长度为 k 的区间 [i,i+k−1],求出不考虑该区间时 pi 不下降子序列中 ∑vi 的最大值。
n≤105
Solution
设 fi 为考虑 [1,i] 且选 i 时 ∑vi 的最大值,gi 为考虑 [i,n] 且选 i 时 ∑vi 的最大值,然后用线段树优化,需要删除时仅需将对应点的值改成极小值即可。
时间复杂度 O(nlogn)。