2018icpc 南京網路賽L Magical Girl Haze
分層圖 用了堆優化的dijkstra
#include<bits/stdc++.h>
using namespace std;
#define maxn
#define maxN 100010
#define maxM 200010
#define maxK 11
#define LL long long
#define inf 1<<27
LL dis[maxN][maxK];
bool fa[maxN][maxK];
int n,m,k,tot=0;
struct ac{
int s,v;
LL d;
ac(){}
ac(int a,int b,LL c){
s=a,v=b,d=c;
}
}a[4*maxN];
vector<ac>q[maxN];
void updata(int v){
//if(v==0) return ;
if(v*2>tot) return ;
if(v*2==tot){
if(a[v].d>a[v*2].d){
swap(a[v],a[v*2]);
}
return ;
}
if(a[v].d<=a[v*2].d&&a[v].d<=a[v*2+1].d) return ;
if(a[v*2].d<a[v*2+1].d){
swap(a[v],a[v*2]);
updata(v*2);
}else{
swap(a[v],a[v*2+1]);
updata(v*2+1);
}
}
void push(int v){
if(v==1){
return ;
}
if(a[v].d<a[v/2].d){
swap(a[v],a[v/2]);
push(v/2);
}
}
void init(){
for(int j=1;j<=n;j++){
q[j].clear();
}
tot=0;
//memset(dis,0x3f,sizeof(dis));
memset(fa,0,sizeof(fa));
for(int j=0;j<=n;j++){
for(int z=0;z<=k;z++){
dis[j][z]=9999999999999;
}
}
}
void dijkstra(){
dis[1][0]=0;
a[++tot]=ac(0,1,0);
while(tot){
ac z=a[1];
swap(a[1],a[tot]);
tot--,updata(1);
int x=z.v,y=z.s;
//cout<<x<<" "<<y<<endl;
if(fa[x][y]) continue;
fa[x][y]=1;
for(int j=0;j<q[x].size();j++){
ac zz=q[x][j];
int dd=zz.d,vv=zz.v;
//cout<<dd<<" "<<vv<<endl;
if(dis[x][y]+dd<dis[vv][y]){
dis[vv][y]=dis[x][y]+dd;
tot++;
a[tot]=ac(y,vv,dis[vv][y]);
push(tot);
}
if(y<k&&dis[x][y]<dis[vv][y+1]){
dis[vv][y+1]=dis[x][y];
tot++;
a[tot]=ac(y+1,vv,dis[vv][y+1]);
push(tot);
}
//cout<<dis[x][y]<<" "<<dis[vv][y]<<endl<<endl;
}
}
}
int main(){
int t;
cin>>t;
while(t--){
cin>>n>>m>>k;
init();
for(int j=0;j<m;j++){
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
q[x].push_back(ac(0,y,z));
}
dijkstra();
LL ans=inf;
for(int j=0;j<=k;j++){
ans=min(ans,dis[n][j]);
}
cout<<ans<<endl;
}
}
相關文章
- ACM-ICPC 2018 南京賽區網路預賽__L. Magical Girl Haze 【Dijkstra演算法+分層圖思想】ACM演算法
- zoj-4053(2018ICPC青島網路賽K題)啟發式分裂
- ACM-ICPC 2018 南京賽區網路預賽__B The writing on the wall【列舉】ACM
- 沙漠or綠洲,從南京軟博會I.D.Spark網際網路創新大賽看南京網際網路發展Spark
- ACM-ICPC 2018 南京賽區網路預賽__E AC Challenge【狀態壓縮+DP】ACM
- 2019ICPC南京網路賽B super_log——擴充套件尤拉定理套件
- ACM-ICPC 2018 南京賽區網路預賽__K The Great Nim Game【博弈論+費馬小定理+DP】ACMGAM
- ACM-ICPC 2018 南京賽區網路預賽 __G Lpl and Energy-saving Lamps【線段樹+模擬】ACMLAMP
- ACM-ICPC 2018 南京賽區網路預賽__J. Sum【尤拉篩法+質因子分解+思維】ACM
- Girl Permutation
- Leetcode 481 Magical StringLeetCode
- 聚銘網路助力某南京生物科技公司全面提升網路威脅檢測能力
- 為加快南京AI產業發展,2018全球(南京)人工智慧應用大賽現公開徵集賽題原型AI產業人工智慧原型
- ACM-ICPC 2018 徐州賽區網路預賽ACM
- CF1946E Girl Permutation
- ICPC2023南京站題解(A C D F G I L M)
- ACM-ICPC 2018 瀋陽賽區網路預賽ACM
- ThinkPad L14遠端網路喚醒開機ThinkPad
- 2018 徐州網路賽 G 題解
- 2024ccpc網路賽補題
- 2020年團體程式設計天梯賽-總決賽 L2-4 網紅點打卡攻略程式設計
- 2018 ICPC南京區域賽題解 更新至 8 題
- 2024春秋杯網路安全聯賽夏季賽-PWN-Writeup
- 高校網路安全管理運維賽2024運維
- 2018華為網路技術大賽
- 神經網路損失函式中的正則化項L1和L2神經網路函式
- 2024中國工業網際網路安全大賽智慧家電行業賽道選拔賽行業
- 第三屆未來網路發展大會,助力南京打造創新名城
- 新興科技+網際網路創新大賽,科技+社會公益專項賽
- 第八屆“網際網路+”大賽 | 雲原生賽道邀你來挑戰
- Nowcoder Girl 2017題目集合詳解
- 【星榮譽】中新賽克成功入選“網安2022”南京行動優秀支撐單位
- 凱博公司會員註冊網址l846987l87l
- ACM-ICPC 2018 徐州賽區網路預賽 F. Features TrackACM
- 2021年春秋杯網路安全聯賽秋季賽 勇者山峰部分wp
- 2024高校網路安全管理運維賽 wp運維
- 2024 ICPC 網路預選賽 第 2 場
- 新興科技+網際網路創新大賽,青年創客專項賽介紹