20190405模拟测试

B KC与龙珠(earings)

因为要用连续的耳环,所以记录前缀和。若sum[n]<0,则不可能满足分组条件。

区间[l,r]中耳环的评价值和=sum[r]-sum[l-1],若该值非负且sum[l-1]非负,则是一个可行的区间。

问题转化为求sum的LIS,f[i]表示以第i个数为结尾的LIS长度,转移方程:

$f[i]=max_{0 le j < i ;and;sum[j]<=sum[i];and; sum[j]>=0}(f[j]+1)$

f[n]即为答案。

C KC喝咖啡(coffee)

0-1分数规划。

转化为:求$frac {sum_{i=1}^n v_i*x_i}{sum_{i=1}^n c_i*x_i}$的最大值($x_i=0$或$1$)。

即:二分出一个L,使$sum_{i=1}^n (v_i-c_i*L)*x_i $最接近0。

实数二分,每次给所有的$v_i-c_i*L$排序,选最大的m个相加,若值>=0,则l=mid,否则r=mid。

原文地址:https://www.cnblogs.com/xzs123456/p/10664518.html