LINK:回家路线 (文化课 oi 双爆炸 对 没学上的就是我.(我错了不该这么丧的. 不过还能苟住一段时间.当然是去打NOI了 这道题去年同步赛的时候做过.不过这里再次提醒自己要认真仔细的看题目 不要理解错题目的意思 导致测大样例的时候才发现自己的漏洞.导致时间上的浪费. 题目的本身还是极好的 容易得到一个\(m^2\)的dp做法. 进一步的可以得到一个\(mq\)的做法.由于数据过水 所以这样做就能过了. (当然不会告诉你去年我写了一个nqlog的做法水过去了 考虑优化 还是对m这个东西进行…
题目链接: (luogu) https://www.luogu.org/problemnew/show/P5468 题解: 爆long long毁一生 我太菜了,这题这么简单考场上居然没想到正解-- 设\(dp[i]\)表示最后一步是坐\(i\)这辆车,一共花在等待上的烦躁值(不包括最终时间)为\(f[i]\). 然后容易发现这个转移是个DAG.(我在考场上居然以为有环,于是直接放弃--) 转移方程\(dp[i]=\min_{j|y[j]=x[i]}dp[j]+A(x_i-x_j)^2+B(x_…
原题传送门 前置芝士:斜率优化 不会的可以去杜神博客学 这道题我考场上只会拆点跑最短路的70pts做法 后来回家后发现错误的爆搜都能拿满分(刀片) 还有很多人\(O(mt)\)过的,还是要坚持写正解好不好 我们先考虑\(O(mt)\)的暴力dp,先不考虑总时间对烦躁值的影响,设\(dp[id]\)表示走完第\(id\)条边最小的代价: \[dp[id]=Min(dp[j]+A(p_{id}-q_j)^2+B(p_{id}-q_j)+C)(id,j \in [1,m],q_j<=p_{id},v[…
传送门 看题目一眼斜率优化,然后写半天调不出来 结果错误的 $dfs$ 有 $95$ 分?暴力 $SPFA$ 就 $AC$ 了? 讲讲正解: 显然是斜率优化的式子: 先不考虑 $q_{s_k}$ 的贡献,设 $f[i]$ 表示当前时间为 $i$ 的最小代价 如果不考虑位置关系,有 $f[p_i]=f[q_j]+A(p_i-q_j)^2+B(p_i-q_j)+C$ 拆开来:$f[p_i]=f[q_j]+Ap_i^2-2Ap_iq_j+Aq_j^2+Bp_i-Bq_j+C$ 换一下位置 $2Ap_i…
[NOI2019]回家路线 题目大意: 有\(n\)个站点,\(m\)趟车,每趟车在\(p_i\)时从\(x_i\)出发,\(q_i\)时到达\(y_i\). 若小猫共乘坐了\(k\)班列车,依次乘坐的列车编号可用序列\(s_{1\sim k}\)表示.该方案被称作一条可行的回家路线,当且仅当它满足下列两个条件: \(x_{s_1}=1,y_{s_k}=n\): 对于所有\(j(1\le j<k)\)满足\(y_{s_j}=x_{s_{j+1}}\)且\(q_{s_j}\le p_{s_{j+1…
终于把这鬼玩意弄完了-- 为什么写的这么丑-- (顺便吐槽 routesea) 最短路的状态很显然:\(f[i]\) 表示从第 \(i\) 条线下来的最小代价. 首先明显要把那个式子拆开.直觉告诉我们这应该是个斜率优化. \[f[i]=\min(f[j]+A(p_i-q_j)^2+B(p_i-q_j)+C)(x_i=y_j,p_i\ge q_j)\] \[f[i]=\min(f[j]+Ap_i^2-2Ap_iq_j+Aq_j^2+Bp_i-Bq_j+C)(x_i=y_j,p_i\ge q_j)\…
「NOI2019」回家路线 链接 loj 思路 f[i][j]第i个点,时间为j,暴力转移 复杂度O(m*t),好像正解是斜率优化,出题人太不小心了233 代码 #include <bits/stdc++.h> using namespace std; const int N=2e5+7,INF=0x3f3f3f3f; int n,m,A,B,C,f[100007][1007]; struct node {int x,y,p,q;}a[N]; int fff(int x) {return A*…
Description 给定 \(n\) 点,这 \(n\) 个点由 \(m\) 班列车穿插连结.对于第 \(i\) 班列车,会在 \(p_i\) 时刻从 \(x_i\) 站点出发开向 \(y_i\) 站点,到站时间为 \(q_i\).现在从 \(1\) 号节点出发,经过多次换乘到达节点 \(n\).一次换乘是指对于两班列车,假设分别为 \(u\) 号与 \(v\) 号列车,若 \(y_u = x_v\) 并且 \(q_u \leq p_v\),那么小猫可以乘坐完 \(u\) 号列车后在 \(y…
想写一个 70 pts 算法,结果数据水,直接就切了 最短路: // luogu-judger-enable-o2 #include<bits/stdc++.h> using namespace std; #define setIO(s) freopen(s".in","r",stdin) #define maxn 300000 #define ll long long struct Node { int x,y,p,q; }nd[maxn]; vect…
题目传送门:LOJ #3156. 题意简述: 有一张 \(n\) 个点 \(m\) 条边的有向图,边有两个权值 \(p_i\) 和 \(q_i\)(\(p_i<q_i\))表示若 \(p_i\) 时刻在这条边的起点,则 \(q_i\) 时刻能到达这条边的终点. 你需要规划一条路线,使得从起点 \(1\) 号点出发,沿着这条路线到达终点 \(n\) 号点. 假设路线依次经过的边为 \(\{a_1,a_2,\ldots,a_k\}\),则需要保证 \(q_{a_{i-1}}\le p_{a_i}\)…