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演算法
- 沙漠or綠洲,從南京軟博會I.D.Spark網際網路創新大賽看南京網際網路發展Spark
- zoj-4053(2018ICPC青島網路賽K題)啟發式分裂
- ACM-ICPC 2018 南京賽區網路預賽__B The writing on the wall【列舉】ACM
- 南京銘岱網路簡介
- ACM-ICPC 2018 南京賽區網路預賽__E AC Challenge【狀態壓縮+DP】ACM
- ACM-ICPC 2018 南京賽區網路預賽__K The Great Nim Game【博弈論+費馬小定理+DP】ACMGAM
- 2019ICPC南京網路賽B super_log——擴充套件尤拉定理套件
- 江蘇南京-網路安全解決方案(科來網路分析)
- ACM-ICPC 2018 南京賽區網路預賽__J. Sum【尤拉篩法+質因子分解+思維】ACM
- 南京銘岱網路產品明細
- 江蘇南京-高校網路管理解決方案(科來網路分析)
- Girl Permutation
- 南京銘岱網路:實時阻止網站被篡改網站
- ACM-ICPC 2018 南京賽區網路預賽 __G Lpl and Energy-saving Lamps【線段樹+模擬】ACMLAMP
- Nu1L戰隊再奪冠!賽博地球杯工業網際網路安全大賽線下決賽圓滿落幕!
- 南京銘岱網路:網際網路時代,您的網路需要上網行為管理裝置
- 江蘇南京-能源行業網路管理解決方案行業
- 南京銘岱網路主營產品介紹
- 網際網路時代,您的網路需要上網行為管理裝置 -南京銘岱
- NJUST 1746 Similar Number(南京邀請賽 J題)MILA
- 南京銘岱網路:INFORGUARD 網頁防篡改版本劃分網頁
- 南京銘岱網路:INFORGUARD網頁防篡改常見問題網頁
- 南京銘岱網路提供網站防篡改解決方案 (inforguard)網站
- 南京銘岱網路提供上網行為管理解決方案
- 南京銘岱網路科技有限公司聯絡方法
- VPC網路ECS搭建L2TPVPN
- 為加快南京AI產業發展,2018全球(南京)人工智慧應用大賽現公開徵集賽題原型AI產業人工智慧原型
- 電影《南京!南京!》將在日本最大影片網站上映網站
- 聚銘網路助力某南京生物科技公司全面提升網路威脅檢測能力
- Leetcode 481 Magical StringLeetCode
- HDU4941Magical Forest(map)REST
- 南京銘岱網路:企業網路安全成為當前CIO們最關心問題
- 網路安全技能大賽首登網路安全周舞臺
- 新興科技+網際網路創新大賽,科技+社會公益專項賽
- 江蘇南京-山石網科防火牆防火牆
- ACM-ICPC 2018 徐州賽區網路預賽ACM
- 一路走來之“網路技術大賽”