摘要:
题意:有一辆车要从起点0,到终点L处,中间有若干个加油站.给出车的油箱容量200,每行驶1km耗油1L.给出加油站的坐标,以及每个加油站的油价.一开始油箱里有100L的油,到达终点时必须还有100L的油,求最少花多少钱在加油上.分析:DP.对于到达终点时必须还有100L的油这个问题,只要将终点放远100米,设置为油价为0的加油站即可.F[i,j]表示到达第i个加油站有油j升的最优值.到达一个加油站时,枚举加多少油就好了.code:var f:array[0..110,0..210] of longint; g:array[0..110,0..210] of boolean; d,p:array 阅读全文
摘要:
题意:给出3*k个数,要求将其分为3个长度为k的序列,使得至少有两个序列的和大于500*k.分析:贪心+随机化.首先排序将最小的前k个去掉,剩下的才最有可能满足题意.然后随机交换[k+1,2k]和[2*k+1,3k]这两个区间内的数,知道满足题意,然后输出.因为k只有60,直接暴力即可.code:type rectype=record n,p:longint;end;var c:array[0..181] of rectype; n,k,i,x,y:longint; procedure sort(l,r:longint); var i,j,mid:longint; begin i:=l; j: 阅读全文