说实话,看到这道题的洛谷评级我傻了(传说中的最高难度)

  然后看完题目才确定这真的是一道k短路的裸题。

  也就敲了个A*吧,15分钟竟然没有调试一遍过。

  欧洲玄学。

  看题目,主要是找几条从1走到n的路加起来小于等于给定的E即可。

  所以就是一道k短路。

  A*和DJ很像,就是把堆的比较操作从当前路径长度+该点到n点的长度。

  后面的那个就是估价函数了,打SPFA或DJ都可以。

  然后STL堆搞一波就可以了。

  CODE

// luogu-judger-enable-o2
#include<cstdio>
#include<queue>
using namespace std;
typedef double DB;
const int N=;
struct data
{
int num;
DB s;
bool operator <(const data &a) const
{
return a.s<s;
}
};
struct Astar
{
int num;
DB s,rs;
bool operator <(const Astar &a) const
{
return a.s+a.rs<s+rs;
}
};
priority_queue <data> small;
priority_queue <Astar> tree;
vector <int> a[N],b[N];
vector <DB> l[N],rl[N];
int n,m,i,x,y,ans;
DB z,tot,dis[N],sum;
bool vis[N];
inline void read(int &x)
{
x=; char ch=getchar();
while (ch<''||ch>'') ch=getchar();
while (ch>=''&&ch<='') x=x*+ch-'',ch=getchar();
}
int main()
{
read(n); read(m); scanf("%lf",&tot);
for (i=;i<=m;++i)
{
read(x); read(y); scanf("%lf",&z);
a[x].push_back(y); l[x].push_back(z);
b[y].push_back(x); rl[y].push_back(z);
}
for (i=;i<=n;++i)
dis[i]=1e9;
dis[n]=;
small.push((data){n,});
while (!small.empty())
{
int now=small.top().num; small.pop();
if (vis[now]) continue;
vis[now]=;
for (i=;i<b[now].size();++i)
{
int k=b[now][i];
if (dis[k]>dis[now]+rl[now][i])
{
dis[k]=dis[now]+rl[now][i];
small.push((data){k,dis[k]});
}
}
}
tree.push((Astar){,,dis[]});
while (!tree.empty())
{
int now=tree.top().num; DB temp=tree.top().s; tree.pop();
if (now==n) { if (sum+temp>tot) { printf("%d",ans); return ; } else ans++,sum+=temp; }
for (i=;i<a[now].size();++i)
tree.push((Astar){a[now][i],temp+l[now][i],dis[a[now][i]]});
}
return ;
}

Luogu P2483 【模板】k短路([SDOI2010]魔法猪学院)的更多相关文章

  1. 【模板篇】k短路 SDOI2010 魔法猪学院

    题目传送门 吐槽时间 题目分析 代码 题目の传送门 都成了一道模板题了OvO ============================================================= ...

  2. 洛谷 K短路(魔法猪学院)

    A*+迪杰特斯拉... 第十一个点卡爆 不管了 #include<iostream> #include<algorithm> #include<cstring> # ...

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

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

  4. K短路 (A*算法) [Usaco2008 Mar]牛跑步&[Sdoi2010]魔法猪学院

    A*属于搜索的一种,启发式搜索,即:每次搜索时加一个估价函数 这个算法可以用来解决K短路问题,常用的估价函数是:已经走过的距离+期望上最短的距离 通常和Dijkstra一起解决K短路 BZOJ1598 ...

  5. [BZOJ1975][SDOI2010]魔法猪学院(k短路,A*)

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

  6. bzoj1975: [Sdoi2010]魔法猪学院【k短路&A*算法】

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

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

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

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

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

  9. P2483 [SDOI2010]魔法猪学院

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

  10. BZOJ_1975_[Sdoi2010]魔法猪学院_A*

    BZOJ_1975_[Sdoi2010]魔法猪学院_A* Description iPig在假期来到了传说中的魔法猪学院,开始为期两个月的魔法猪训练.经过了一周理论知识和一周基本魔法的学习之后,iPi ...

随机推荐

  1. art-template模板应用

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  2. Python+Selenium笔记(一):环境配置+简单的例子

    #环境配置基于windows操作系统 #学习selenium要有一些HTML和xpth的基础,完全不会的建议先花点时间学点基础(不然元素定位,特别是xpth可能看的有点懵) #HTML :  http ...

  3. CSS3动画详解(图文教程)

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 前言 本文主要内容: 过渡:transition 2D 转换 trans ...

  4. imei和imsi

    imei.imsi是大部分应用自动采集的设备信息,Android中需要在MINIFEST声明权限,6.0以上手机还需要用户显示授权才可以正常获取.这两个标识有什么区别.联系?为什么应用这么执着于采集这 ...

  5. SQL Server 子查询错误:No column name was specified for column 2 of 'a' error (转载)

    问: I have a MySQL query and I ran it working fine but same query showing error in SQL Server. SQL Se ...

  6. Sqlserver数据库中的临时表详解

    临时表在Sqlserver数据库中,是非常重要的,下面就详细介绍SQL数据库中临时表的特点及其使用,仅供参考. 临时表与永久表相似,但临时表存储在tempdb中,当不再使用时会自动删除.临时表有两种类 ...

  7. xp_readerrorlog与sp_readerrorlog

    SQL SERVER 可以使用xp_readerrorlog 或者sp_readerrorlog来查看错误日志. xp_readerrorlog 一共有七个参数: 1. 存档编号 2. 日志类型(1为 ...

  8. [Linux|DBA]运维三十六计

    这里是腾讯两位大神梁定安.周小军总记得运维DBA三十六计--

  9. 巧用foxmail同步qq邮箱的通讯录

    如果您企业使用的qq企业邮箱,那么你在web端登陆邮箱并填写收件人时,发现QQ邮箱是可以自动完成,并且中文名称自动完成. 如何在使用foxmail邮件客户端的情况下也同步这些邮箱信息呢?需要七步,看截 ...

  10. MySQL生产环境下的主从复制启动项

    MySQL的复制参数除了我们之前搭建主从时遇到的那几个之外,还有以下两个: 1.log-slave-updates 这个参数用来配置从库上是否启动了二进制日志的功能,默认是不开启的,如果开启了那么从库 ...