博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 4571 floyd+动态规划
阅读量:5054 次
发布时间:2019-06-12

本文共 909 字,大约阅读时间需要 3 分钟。

思路:

我们先求一遍floyd,将各点的最短距离求出,然后将点按si的升序排序。dp[i][k]表示第i个点在第j时间所获得的最大效益,那么

dp[i][k]=max(dp[ i ][ k ]  ,  dp[ j ][ k-p[ i ].c-dis[ i ][ j ] ]+p[ i ].s);     dis[i][j]为i与j的最短路径。

#include
#include
#include
#include
#include
#define inf 1<<28using namespace std;struct Point{ int c,s,num; int operator <(const Point &temp) const { return s
p[j].s) for(k=t;k>=p[i].c+dis[p[i].num][p[j].num]&&k>=0;k--) { if(dp[j][k-p[i].c-dis[p[i].num][p[j].num]]!=-1) dp[i][k]=max(dp[i][k],dp[j][k-p[i].c-dis[p[i].num][p[j].num]]+p[i].s); } } } for(i=1;i<=n;i++) { if(p[i].num==E) break; } int ans=0; for(j=0;j<=n;j++) { for(k=0;k<=t;k++) { if(k+dis[p[j].num][E]>t) break; ans=max(ans,dp[j][k]); } } printf("Case #%d:\n%d\n",++Case,ans); } return 0;}

 

转载于:https://www.cnblogs.com/wangfang20/p/3199117.html

你可能感兴趣的文章
WPF Layout 系统概述——Arrange
查看>>
PIGOSS
查看>>
几款Http小服务器
查看>>
iOS 数组排序
查看>>
第三节
查看>>
PHP结合MYSQL记录结果分页呈现(比较实用)
查看>>
Mysql支持的数据类型
查看>>
openSuse beginner
查看>>
Codeforces 620E(线段树+dfs序+状态压缩)
查看>>
Windows7中双击py文件运行程序
查看>>
Market entry case
查看>>
bzoj1230 开关灯 线段树
查看>>
LinearLayout
查看>>
学习python:day1
查看>>
css3动画属性
查看>>
第九次团队作业-测试报告与用户使用手册
查看>>
Equal Sides Of An Array
查看>>
CentOS笔记-用户和用户组管理
查看>>
Mongodb 基本命令
查看>>
Qt中QTableView中加入Check列实现
查看>>