2014 8.8 第9场个人 排位


UVA 12657 Boxes in a Line

模拟


FZU 1876 JinYueTuan 不说话

view code


ZOJ 3684 Destroy

view code


ZOJ 3676 Edward's Cola Plan (总是看英文看很久,囧)

view code


ZOJ 2899 Hangzhou Tour

 


ZOJ 3724 Icecream 线段树,离线,挺经典的

sum[n]表示距离的前缀和

情况1:

[MN(%WO~K65~`[42TBNJRRT

如果是询问从u到v的最短距离(u<v),(a到b是一条捷径(a<b),长度为len)

如果不走捷径dis1 = sumv – sumu;

如果走捷径 dis2 = sumv – sumu +len - (sumb-suma)。

走不走捷径就看len-(sumb-suma)是否小于0,(等于0,走不走无所谓)

对于多个捷径,且走捷径的情况,走len-(sumb-suma)最小的那个捷径

情况2:

ZW(AVEPCF)3EAIP`)SFF``8

如果是询问从u到v的最短距离(u>v),(a到b是一条捷径(a>b),长度为len)

这种情况必走捷径:

走捷径dis = suma – sumu + sumv – sumb + len;

对于一个询问sumv-sumu是固定的,关键要求走的捷径使suma-sumb+len最小

 

至于那些最小值就是用线段树去维护。




view code

posted @ 2014-08-09 00:03  ForeverEnjoy  阅读(145)  评论(0编辑  收藏  举报