CF1715E. Long Way Home -决策单调性、图
link:https://codeforces.com/contest/1715/problem/E
有
现在请对于任意城市
看到花费
但也可以是在这一次之后又在图上走了一段,这部分就很麻烦了,可能需要枚举的点对很多,赛时在这里想了很久才意识到:为什么不每次转移完DP再跑一次dijkstra呢?dp求出了强制最后一下通过航班到达的最短时间,那就从
(注:不能每次dp完都加上
#include<bits/stdc++.h> #define rep(i,a,b) for(int i=(a);i<=(b);i++) #define fastio ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0) using namespace std; typedef long long ll; const int N=1e5+5; constexpr ll INF=0x3f3f3f3f3f3f3f3f; struct state{ int x; ll w; state(int x,ll w):x(x),w(w){} bool operator <(const state &rhs)const{ return w>rhs.w; } }; int n,m,k; vector<vector<pair<int,ll>>> G; vector<ll> dijkstra(int st){ vector<ll> dis(n+1); dis.assign(n+1,INF); priority_queue<state> Q; Q.emplace(st,dis[st]=0); while(!Q.empty()){ auto [x,d]=Q.top(); Q.pop(); if(dis[x]!=d)continue; for(auto [v,w]:G[x])if(dis[v]>dis[x]+w) Q.emplace(v,dis[v]=dis[x]+w); } return dis; } struct Line{ ll k,b; __int128 calc(int x){return (__int128)k*x+b;} }; int main(){ fastio; cin>>n>>m>>k; G=vector<vector<pair<int,ll>>>(n+1); rep(i,1,m){ int u,v,w; cin>>u>>v>>w; G[u].push_back({v,w}); G[v].push_back({u,w}); } int st=G[1].size(); rep(i,2,n)G[1].push_back({i,INF});//i:G[1][st+i-2], rep(tc,1,k){ auto d=dijkstra(1); vector<ll> f(n+1); vector<Line> S; rep(i,1,n){ ll b3=(ll)i*i+d[i],k3=-2*i; while(S.size()>=2){ int sz=S.size(); auto [k1,b1]=S[sz-2]; auto [k2,b2]=S[sz-1]; if((__int128)(b2-b1)*k1+(__int128)b1*(k1-k2)>(__int128)(b2-b1)*k3+(__int128)b3*(k1-k2)) S.pop_back(); else break; } S.push_back((Line){k3,b3}); } int sz=S.size(),cur=0; rep(i,1,n){ while(cur+1<=sz-1){ auto v1=S[cur].calc(i),v2=S[cur+1].calc(i); if(v1>v2)cur++; else break; } f[i]=(ll)i*i+S[cur].calc(i); } rep(i,2,n)G[1][st+i-2].second=min(G[1][st+i-2].second,f[i]); } auto d=dijkstra(1); rep(i,1,n)cout<<d[i]<<' '; return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律