博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[NOI2019]回家路线
阅读量:4319 次
发布时间:2019-06-06

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

题解

同步赛时看到\(m \leq 2\times 10 ^ 5, q_i \leq 1000\)的我灵光一闪,交了个\(\mathrm{O}(mt)\)的大暴力然后\(\mathrm{AC}\)此题

\(f[i][j]\)表示当前在第\(i\)个站点,时刻为\(j\)的最小烦躁度,\(F(x) = Ax^2 + Bx + C\)

然后枚举每一条边\(i\),可以得到:\(f[y_i][j] = \min\{f[x_i][p_i] + F(j - q_i)\}\)

直接\(\mathrm{DP}\)即可。

代码

#include 
#include
inline int read(){ int data = 0, w = 1; char ch = getchar(); while (ch != '-' && (ch < '0' || ch > '9')) ch = getchar(); if (ch == '-') w = -1, ch = getchar(); while (ch >= '0' && ch <= '9') data = data * 10 + (ch ^ 48), ch = getchar(); return data * w;}const int maxn(1e5 + 10), maxm(2e5 + 10), T(1010), INF(0x3f3f3f3f);int n, m, A, B, C, maxQ, f[maxn][T];struct node { int x, y, p, q; } L[maxm];inline int operator < (const node &lhs, const node &rhs) { return lhs.q < rhs.q; }inline int F(int x) { return x * x * A + x * B + C; }void solve(){ for (int i = 1; i <= n; i++) for (int j = 1; j <= maxQ; j++) f[i][j] = INF; for (int j = 0; j <= maxQ; j++) f[1][j] = F(j); for (int i = 1; i <= m; i++) { int x = L[i].y; for (int j = L[i].q; j <= maxQ; j++) f[x][j] = std::min(f[x][j], f[L[i].x][L[i].p] + F(j - L[i].q)); } int ans = INF; for (int j = 1; j <= maxQ; j++) ans = std::min(ans, f[n][j] + j - C); printf("%d\n", ans);}int main(){ n = read(), m = read(), A = read(), B = read(), C = read(); for (int i = 1; i <= m; i++) L[i] = (node) {read(), read(), read(), read()}; for (int i = 1; i <= m; i++) maxQ = std::max(maxQ, L[i].q); std::sort(L + 1, L + m + 1), solve(); return 0;}

转载于:https://www.cnblogs.com/cj-xxz/p/11203703.html

你可能感兴趣的文章
guava入门
查看>>
Oracle to_char 转换数值
查看>>
selinux-网络服务安全
查看>>
10个维修中最常见的蓝屏代码,值得收藏!
查看>>
indexOf、instanceOf、typeOf、valueOf详解
查看>>
好程序员web前端教程:对象
查看>>
十道海量数据处理面试题与十个方法大总结
查看>>
sql表操作的基础语法
查看>>
【hdoj_1049】Climbing Worm
查看>>
android 开发之 - 百度地图 key 的申请
查看>>
SQL切换真假状态标识字段
查看>>
MySQL的数据类型
查看>>
获取控件在运行时于屏幕中的位置
查看>>
删除多个重复记录
查看>>
Meteor Shower POJ - 3669
查看>>
urllib
查看>>
.Net内存程序集的DUMP(ProFile篇)
查看>>
《Linux命令行与shell脚本编程大全 第3版》高级Shell脚本编程---40
查看>>
NIOS II 中用结构体指示灯终于正常了
查看>>
CF1009F Dominant Indices - 题解
查看>>