博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ZJOI2006 物流运输trans
阅读量:7012 次
发布时间:2019-06-28

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

HYSBZ_1003

    以前一直看不懂discuss的状态转移方程,后来某天早晨醒来的时候突然就发现我终于理解了……看来还是早晨的效率比较高。

    可以用f[i]表示到第i天的时候最小费用,那么f[i]={f[j]+cost[j+1,i]+K}(0<=j<i),其中cost[i,j]表示由第i天到第j天都可以走得通的最短路。

    这样求完之后再减去一个多余的K即可。

#include
#include
#define MAXD 30 #define DAY 110 #define MAXQ 1010 #define INF 0x3f3f3f3f int N, M, K, E, D, g[MAXD][MAXD], f[DAY], q[MAXQ], h[MAXD][DAY], A[MAXD][DAY], d[MAXD], inq[MAXD]; void init() {
int i, j, k, x, y, z; memset(g, 0, sizeof(g)); for(i = 0; i < E; i ++) {
scanf("%d%d%d", &x, &y, &z); if(g[x][y] == 0 || g[x][y] > z) g[x][y] = g[y][x] = z; } memset(h, 0, sizeof(h)); scanf("%d", &D); for(i = 0; i < D; i ++) {
scanf("%d%d%d", &x, &y, &z); for(j = y; j <= z; j ++) h[x][j] = 1; } for(i = 1; i <= M; i ++) {
A[i][0] = 0; for(j = 1; j <= N; j ++) A[i][j] = A[i][j - 1] + h[i][j]; } } int SPFA(int d1, int d2) {
int i, j, k, front, rear; front = rear = 0; memset(d, 0x3f, sizeof(d)); memset(inq, 0, sizeof(inq)); q[rear ++] = 1; d[1] = 0; while(front != rear) {
i = q[front ++]; inq[i] = 0; for(j = 1; j <= M; j ++) if(g[i][j] && A[j][d2] - A[j][d1] == 0 && d[i] + g[i][j] < d[j]) {
d[j] = d[i] + g[i][j]; if(!inq[j]) {
inq[j] = 1; q[rear ++] = j; } } } return d[M]; } void solve() {
int i, j, k, t; memset(f, 0x3f, sizeof(f)); f[0] = 0; for(i = 1; i <= N; i ++) for(j = 0; j < i; j ++) {
k = SPFA(j, i); if(k != INF && ( t = f[j] + k * (i - j) + K) < f[i]) f[i] = t; } printf("%d\n", f[N] - K); } int main() {
while(scanf("%d%d%d%d", &N, &M, &K, &E) == 4) {
init(); solve(); } return 0; }

转载地址:http://zjqtl.baihongyu.com/

你可能感兴趣的文章
阿里云异构计算产品家族之数据智能,加速AI智能创新
查看>>
最新Do Not Track标准问世:网站都应尊重用户选择
查看>>
逾半数全球商业领袖认同智能自动化,但首先要解决员工的抵触情绪
查看>>
被忽视的Web安全漏洞:如何识别和解决?
查看>>
“懒惰”Linux管理员的10个关键技巧
查看>>
SDN网络的构建及通信业务与光纤引入
查看>>
高热之下有冰点 大数据产业遭遇成长期烦恼
查看>>
大数据时代零售企业如何进行精确营销
查看>>
对冷却系统进行全面分析
查看>>
淘宝造物节,“奇市江湖”里那些脑洞大开的创意产品
查看>>
AMD宣布修复RX480供电Bug 性能还提速3%
查看>>
联想武汉工厂因暴雨断电 每日损失利润百万?
查看>>
撬动智能家居市场 智慧家庭“最强大脑”被激活
查看>>
聊聊springcloud的GatewayControllerEndpoint
查看>>
聊聊sentinel的SentinelResourceAspect
查看>>
聊聊flink的SpoutWrapper
查看>>
聊聊flink的StateDescriptor
查看>>
git 使用教程,常用命令
查看>>
使用SVI实现Vlan间路由
查看>>
Linux学习笔记5月28日任务
查看>>