【SDOI 2010】 魔法猪学院
【题目链接】
https://www.lydsy.com/JudgeOnline/problem.php?id=1975
【算法】
A*求k短路
【代码】
- #include<bits/stdc++.h>
- using namespace std;
- #define MAXN 5010
- #define MAXM 200010
- const double INF = 1e15;
- int i,tot,n,m,u,v;
- int head[MAXN],rhead[MAXN];
- double dist[MAXN];
- double w,val;
- struct Edge
- {
- int to;
- double w;
- int nxt;
- } e[MAXM<<];
- struct info
- {
- int s;
- double d;
- friend bool operator < (info a,info b)
- {
- return a.d + dist[a.s] > b.d + dist[b.s];
- }
- } ;
- inline void add(int u,int v,double w)
- {
- tot++;
- e[tot] = (Edge){v,w,head[u]};
- head[u] = tot;
- tot++;
- e[tot] = (Edge){u,w,rhead[v]};
- rhead[v] = tot;
- }
- inline void dijkstra(int s)
- {
- int i,u,v;
- double w;
- priority_queue< pair<double,int> > q;
- static bool vis[MAXN];
- memset(vis,false,sizeof(vis));
- while (!q.empty()) q.pop();
- for (i = ; i <= n; i++) dist[i] = INF;
- dist[s] = ;
- q.push(make_pair(,s));
- while (!q.empty())
- {
- u = q.top().second;
- q.pop();
- if (vis[u]) continue;
- vis[u] = true;
- for (i = rhead[u]; i; i = e[i].nxt)
- {
- v = e[i].to;
- w = e[i].w;
- if (dist[u] + w < dist[v])
- {
- dist[v] = dist[u] + w;
- q.push(make_pair(-dist[v],v));
- }
- }
- }
- }
- inline int Astar(int s,int t)
- {
- int i,cnt = ,v;
- double w,sum = ;
- priority_queue< info > q;
- info cur;
- while (!q.empty()) q.pop();
- q.push((info){s,});
- while (!q.empty())
- {
- cur = q.top();
- q.pop();
- if (cur.s == t)
- {
- if (sum + cur.d <= val)
- {
- sum += cur.d;
- cnt++;
- } else return cnt;
- }
- for (i = head[cur.s]; i; i = e[i].nxt)
- {
- v = e[i].to;
- w = e[i].w;
- q.push((info){v,cur.d+w});
- }
- }
- return ;
- }
- int main()
- {
- scanf("%d%d%lf",&n,&m,&val);
- for (i = ; i <= m; i++)
- {
- scanf("%d%d%lf",&u,&v,&w);
- add(u,v,w);
- }
- dijkstra(n);
- printf("%d\n",Astar(,n));
- return ;
- }
【SDOI 2010】 魔法猪学院的更多相关文章
- [SDOI 2010]魔法猪学院
Description 题库链接 给出一张 \(n\) 个点 \(m\) 条边有向图,询问最多有多少条不同的路径从 \(1\) 到 \(n\) 并且路径长度和 \(\leq E\) . \(2\leq ...
- 解题:SDOI 2010 魔法猪学院
题面 题外话:神**可持久化左偏树,你谷的人都太神了,学不来 我把这个当做A*模板题的说,先讲一讲个人对A*的理解:如果说普通的BFS是Bellman_Ford,那A*就是一个Dijkstra.以寻找 ...
- BZOJ-1975 魔法猪学院 K短路 (A*+SPFA)
1975: [Sdoi2010]魔法猪学院 Time Limit: 10 Sec Memory Limit: 64 MB Submit: 1323 Solved: 433 [Submit][Statu ...
- Bzoj 1975: [Sdoi2010]魔法猪学院 dijkstra,堆,A*,K短路
1975: [Sdoi2010]魔法猪学院 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1357 Solved: 446[Submit][Statu ...
- bzoj 1975: [Sdoi2010]魔法猪学院 [k短路]
1975: [Sdoi2010]魔法猪学院 裸题... 被double坑死了 #include <iostream> #include <cstdio> #include &l ...
- BZOJ_1975_[Sdoi2010]魔法猪学院_A*
BZOJ_1975_[Sdoi2010]魔法猪学院_A* Description iPig在假期来到了传说中的魔法猪学院,开始为期两个月的魔法猪训练.经过了一周理论知识和一周基本魔法的学习之后,iPi ...
- K短路 (A*算法) [Usaco2008 Mar]牛跑步&[Sdoi2010]魔法猪学院
A*属于搜索的一种,启发式搜索,即:每次搜索时加一个估价函数 这个算法可以用来解决K短路问题,常用的估价函数是:已经走过的距离+期望上最短的距离 通常和Dijkstra一起解决K短路 BZOJ1598 ...
- bzoj 1975 [Sdoi2010]魔法猪学院
1975: [Sdoi2010]魔法猪学院 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1758 Solved: 557[Submit][Statu ...
- P2483 [SDOI2010]魔法猪学院
P2483 [SDOI2010]魔法猪学院 摘要 --> 题目描述 iPig在假期来到了传说中的魔法猪学院,开始为期两个月的魔法猪训练.经过了一周理论知识和一周基本魔法的学习之后,iPig对猪世 ...
- 【BZOJ1975】【SDOI2010】魔法猪学院 [A*搜索]
魔法猪学院 Time Limit: 10 Sec Memory Limit: 64 MB[Submit][Status][Discuss] Description iPig在假期来到了传说中的魔法猪 ...
随机推荐
- graphite 绘图工具
graphite 绘图工具
- (转)Hibernate关联映射——一对多(多对一)
http://blog.csdn.net/yerenyuan_pku/article/details/70152173 Hibernate关联映射——一对多(多对一) 我们以客户(Customer)与 ...
- day07-列表类型/元组类型/字典类型/集合类型内置方法
目录 列表类型内置方法 元组类型内置方法 字典类型内置方法 集合类型内置方法 列表类型内置方法 用来存多个元素,[]内用逗号隔开任意数据类型的元素 1. list()强制类型转换 print(list ...
- php 在Linux下的安装
1.获取php源码 wget http://cn2.php.net/get/php-5.6.6.tar.gz/from/this/mirror mv mirror php-5.6.6.tar.gz t ...
- scp: /xxxx: not a regular file
问题描述 scp root@10.2.1.92:/home /home/wangju/databakroot@10.2.1.92's password: xxxxscp: /home: not a r ...
- C# 通知机制 IObserver<T> 和 IObservable<T>
class Program { public static void Main() { // Define a provider and two observers. LocationTracker ...
- 【VIP视频网站项目】VIP视频网站项目v1.0.3版本发布啦(程序一键安装+电影后台自动抓取+代码结构调整)
在线体验地址:http://vip.52tech.tech/ GIthub源码:https://github.com/xiugangzhang/vip.github.io 项目预览 主页面 登录页面 ...
- NOIp知识点复习——最短路计数
$Mingqi\_H$ NOIp 2017考挂了...gg 重新开始好了. 计划明年2月24号前复习完所有的NOIp知识点(毕竟很不熟练啊),之后到七月底前学习完省选的东西(flag?). 从现在开始 ...
- 42.global bucket的使用:单个品牌与所有品牌销量对比
主要知识点: _global bucket的使用 本例以搜索单个品牌和所有品牌的销量对比进行学习_global .es在进行aggregation操作时都只只是在一个scope中进行聚合等操作 ...
- net Core 中定时任务的设置
接下来的任务 采用定时任务的需求场景: 每天的数据整理,比如库存,每天的零散数据的统计,定时提醒,定时提醒到期未完成的任务-.... 1.采用的第三方类库: quartz 2文档地址:http://w ...