“蔚来杯“2022牛客暑期多校训练营5 A题: Don‘t Starve

A题: Don’t Starve

原题链接:https://ac.nowcoder.com/acm/contest/33190/A

题目大意

在二维平面上,有 n ( 1 ≤ n ≤ 2000 ) n(1\le n\le 2000) n(1n2000) 个位置有食物。从原点出发,每次直线前往其他任意一个有食物的位置收集食物。收集完后再次前往下一个点。每当离开一个有食物的点后,该点的食物就会刷新。并且每次的移动距离必须严格递减。

题解

称食物点间的距离为边权。
为了方便处理 初始从原点开始 这个条件,我们可以考虑反向进行 d p dp dp
设状态 d p x dp_x dpx 表示从点 x x x 出发后能达到的最多食物点数,因为是反向 d p dp dp ,我们按边权从小到大枚举边进行转移,这样可以保证每次向前转移时,后面的边权一定是比当前边小的。
转移式显然:
d p x = d p y + 1 dp_x=dp_y+1 dpx=dpy

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值