https://www.lydsy.com/JudgeOnline/problem.php?id=1975

我好像到现在了第k短路都不会写,mdzz。

先spfa求出最短路,然后扫点存各种前置路径已经决定的最短路,小根堆暴力即可。

有向图要存反向边,写完才发现的,临时添成两种了,丑也没办法

 #include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
using namespace std;
#define pa pair<double,int>
const int maxn=;
const double inf=1e17;
int n,m;double ene;
struct nod{
int y,next;double v;
}e[][maxn*];
int head[][maxn]={},tot[]={};
double dis[maxn]={};
bool vis[maxn]={};
queue<int>q;
priority_queue< pa , vector< pa > , greater< pa > >q1;
void init(int x,int y,double v,int op){
e[op][++tot[op]].v=v;e[op][tot[op]].y=y;e[op][tot[op]].next=head[op][x];head[op][x]=tot[op];
}
void spfa(){
for(int i=;i<=n;i++)dis[i]=inf;
dis[n]=;vis[n]=;q.push(n);
int x,y;double v;
while(!q.empty()){
x=q.front();q.pop();
for(int i=head[][x];i;i=e[][i].next){
y=e[][i].y;v=e[][i].v;
//cout<<x<<y<<v<<dis[y]<<endl;
if(dis[y]>dis[x]+v){
dis[y]=dis[x]+v;
if(!vis[y]){
vis[y]=;
q.push(y);
}
}
}vis[x]=;
}
}
int getit(){
q1.push(make_pair(dis[],));
int ans=;double vq,v;int x;
while(!q1.empty()){
x=q1.top().second; v=q1.top().first; q1.pop();
vq=v-dis[x];
if(x==n){
if(ene-v>=){ene-=v;ans++;}
else break;
}
for(int i=head[][x];i;i=e[][i].next){
q1.push(make_pair(vq+e[][i].v+dis[e[][i].y],e[][i].y));
}
}
return ans;
}
int main(){
scanf("%d%d%lf",&n,&m,&ene);
int x,y;double v;
for(int i=;i<=m;i++){scanf("%d%d%lf",&x,&y,&v);init(x,y,v,);init(y,x,v,);}
spfa();
printf("%d\n",getit());
return ;
}

BZOJ 1975: [Sdoi2010]魔法猪学院 大水题 第k短路 spfa的更多相关文章

  1. Bzoj 1975: [Sdoi2010]魔法猪学院 dijkstra,堆,A*,K短路

    1975: [Sdoi2010]魔法猪学院 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1357  Solved: 446[Submit][Statu ...

  2. bzoj 1975: [Sdoi2010]魔法猪学院 [k短路]

    1975: [Sdoi2010]魔法猪学院 裸题... 被double坑死了 #include <iostream> #include <cstdio> #include &l ...

  3. bzoj 1975 [Sdoi2010]魔法猪学院

    1975: [Sdoi2010]魔法猪学院 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1758  Solved: 557[Submit][Statu ...

  4. 洛谷 P2483 BZOJ 1975 [SDOI2010]魔法猪学院

    题目描述 iPig在假期来到了传说中的魔法猪学院,开始为期两个月的魔法猪训练.经过了一周理论知识和一周基本魔法的学习之后,iPig对猪世界的世界本原有了很多的了解:众所周知,世界是由元素构成的:元素与 ...

  5. bzoj 1975 [Sdoi2010]魔法猪学院(k短路)

    题目描述 iPig在假期来到了传说中的魔法猪学院,开始为期两个月的魔法猪训练.经过了一周理论知识和一周基本魔法的学习之后,iPig对猪世界的世界本原有了很多的了解:众所周知,世界是由元素构成的:元素与 ...

  6. BZOJ 1975: [Sdoi2010]魔法猪学院——K短路,A*

    传送门 http://www.lydsy.com/JudgeOnline/problem.php?id=1975 题意&简要做法 一张有向图,求出最多的互不相同的路径,满足路径长度之和\(\l ...

  7. BZOJ 1975 SDOI2010 魔法猪学院 A*k短路

    题目大意:给定一个值E 求起点到终点的最多条路径 使长度之和不超过E k短路的A*算法--每一个点有一个估价函数=g[x]+h[x] 当中g[x]是从源点出发已经走了的长度 h[x]是从这个点到汇点的 ...

  8. [SDOI2010]魔法猪学院(A*,最短路)

    [SDOI2010]魔法猪学院(luogu) Description 题目描述 iPig在假期来到了传说中的魔法猪学院,开始为期两个月的魔法猪训练.经过了一周理论知识和一周基本魔法的学习之后,iPig ...

  9. 【BZOJ】1975: [Sdoi2010]魔法猪学院

    题意 \(n(2 \le n \le 5000)\)个点,找尽量多的不同\(1\)到\(n\)的路径,每一次的花费就是路径的全值和,要求在费用不超过\(E\)的情况下路径最多. 分析 裸的最段路. 题 ...

随机推荐

  1. 20165227 学习基础和C语言基础调查

    学习基础和C语言基础调查 技能学习经验和感悟 你有什么技能比大多人(超过90%以上)更好? 如果非要说出来一个的话,那就是篮球了.从热爱篮球,到热爱打篮球,经历挫折阻碍,不断反思学习,一步一步地向前迈 ...

  2. 子查询优化--explain与profiling分析语句

    今天想的利用explain与progiling分析下语句然后进行优化.本文重点是如何通过explain与profiling分析SQL执行过程与性能.进而明白索引的重要性. 表的关系如下所示: 原始的查 ...

  3. JS函数的几种用法

    1.正常使用:

  4. 【FCS NOI2018】福建省冬摸鱼笔记 day1

    省冬的第一天. 带了本子,笔,一本<算法导论>就去了.惊讶于为什么同学不带本子记笔记. 他们说:“都学过了.”,果然这才是巨神吧. 第一天:数论,讲师:zzx 前几页的课件挺水,瞎记了点笔 ...

  5. 一步一步搭建11gR2 rac+dg之配置单实例的DG(八)【转】

    RAC主库配置单实例ActiveDataguard 本文文档结构: 这里配置的过程中需要注意的一项是多看看rac1和rac2以及dg的告警日志会对配置过程有更深刻的理解...配置oracle rac的 ...

  6. Git log diff config高级进阶

    Git 历史相关和 git config 高级进阶 前一段时间分享了一篇<更好的 git log>简要介绍怎么美化 git log 命令,其中提到了 alias命令,今天再继续谈谈 git ...

  7. 大数据系列之分布式大数据查询引擎Presto

    关于presto部署及详细介绍请参考官方链接 http://prestodb-china.com PRESTO是什么? Presto是一个开源的分布式SQL查询引擎,适用于交互式分析查询,数据量支持G ...

  8. axios通过django的csrf验证

    django会在浏览器的cookie里面保存一项csrftoken=GvzB3ilhlgadishmascacsilreclherlkjhaklsdv3qx4M96XRG88omScDPQaKoMxJ ...

  9. Django BoundField

    一.BoundField from django.forms.boundfield import BoundField BoundField是一个将字段添加数据的一个类,给对应的form字段封装上数据 ...

  10. 解决eclipse Debug时提示source not found的问题

    解决办法: 选择Change Attached  Source,添加自己的project,clean项目,重启eclipse即可.