随笔分类 -  斜率优化

摘要:重写一遍很久以前写过的题。 考虑链上的问题。容易想到设f[i]为i到1的最少购票费用,转移有f[i]=min{f[j]+(dep[i]-dep[j])*p[i]+q[i]} (dep[i]-dep[j]<=l[i])。套路的考虑若j转移优于k(dep[j]>dep[k]),则f[j]-dep[j]* 阅读全文
posted @ 2019-05-29 21:51 Gloid 阅读(257) 评论(0) 推荐(0)
摘要:按卖出时间排序后,设f[i]为买下第i台机器后的当前最大收益,则显然有f[i]=max{f[j]+gj*(di-dj-1)+rj-pi},且若此值<0,应设为-inf以表示无法购买第i台机器。 考虑优化,显然是一个斜率优化式子,设j转移优于k,则f[j]+gj(di-dj-1)+rj>f[k]+gk 阅读全文
posted @ 2019-01-15 01:53 Gloid 阅读(261) 评论(0) 推荐(0)
摘要:首先考虑怎么安排攻击顺序。显然如果攻击了某台兵器就应该一直连续攻击直到将其破坏,破坏所需时间可以直接算出来,设其为b。假设确定了某个破坏顺序,如果交换相邻两个兵器,显然不会对其他兵器造成影响,两种顺序的代价则分别为a1(b1-1)+a2(b1+b2-1)和a1(b1+b2-1)+a2(b2-1),那 阅读全文
posted @ 2018-11-13 00:49 Gloid 阅读(330) 评论(0) 推荐(0)
摘要:设f[i]为在i放置守卫塔时1~i的最小花费。那么显然f[i]=min(f[j]+(i-j)*(i-j-1)/2)+a[i]。 显然这是个斜率优化入门题。将不与i、j同时相关的提出,得f[i]=min(f[j]+j*(j+1)/2-ij)+i*(i-1)/2+a[i]。 套路地,假设j>k且j转移优 阅读全文
posted @ 2018-09-17 23:01 Gloid 阅读(163) 评论(0) 推荐(0)