题意:

给出n个城市,然后给出m条单向路,给出了每条路的距离和花费,问一个人有k coins,在不超过money的情况下从1到n最短路径路径。

思路:

我相信很多人在上面那道题的影响下,肯定会想想,在保证最短路的前提下维护下最小花费?还是保证最小花费下维护一个最短路?这样两个想法的bug都非常明显啊。第一个,那是大错特错了,人家首要给你的条件满足<=k,你还抱住最短路长度不放,给你wa是同情。第二个,有个bug就是他是最小花费,可能存在一条路的花费大于最小花费但是他的路长度才是最短路,给你wa也不冤啊。

//#include <bits/stdc++.h>
#include<iostream>
#include<cstdio>
#include<string.h>
#include<math.h>
#include<queue>
#include<algorithm> using namespace std;
typedef long long LL;
typedef unsigned long long ULL;
const double eps=1e-6;
const double pi=acos(-1.0);
const int mod=998244353;
const int INF=0x3f3f3f3f; const int N=1e2+10;
struct asd{
int to;
int w;
int c;
int next;
};
asd q[N*N*2];
int tol,head[N*N*2];
bool vis[N];
int used[N];
int n,k; void add(int a,int b,int c,int d)
{
q[tol].to=b;
q[tol].w=c;
q[tol].c=d;
q[tol].next=head[a];
head[a]=tol++;
}
struct node{
int id,dis,time;
friend bool operator<(node a,node b)
{
if(a.dis==b.dis)
return a.time>b.time;
return a.dis>b.dis;
}
};
int spfa(int s,int t)
{
priority_queue<node>e;
node u;
u.id=s;
u.dis=u.time=0;
e.push(u);
while(!e.empty())
{
u=e.top();
e.pop();
if(u.id==n){
return u.dis;
}
for(int i=head[u.id];i!=-1;i=q[i].next)
{
node v;
v.id=q[i].to;
if(u.time+q[i].c<=k){
v.dis=u.dis+q[i].w;
v.time=u.time+q[i].c;
e.push(v);
}
}
}
return -1;
}
int main()
{
int m;
cin>>k;
cin>>n;
cin>>m;
tol=0;
memset(head,-1,sizeof(head));
for(int i=0;i<m;i++){
int a,b,c,d;
scanf("%d%d%d%d",&a,&b,&c,&d);
add(a,b,c,d);
}
int ans=spfa(1,n);
printf("%d\n",ans);
return 0;
}

最新文章

  1. salesforce 零基础学习(三十)工具篇:Debug Log小工具
  2. iOS:JSON格式字符串转字典,字典转JSON格式字符串
  3. python---生成随机密码
  4. [ubuntu] ubuntu13.04安装rabbitcvs管理svn
  5. tomcat服务器不输出访问日志
  6. 在.NET2.0中解析Json和Xml
  7. 【Winform】 无法将类型为“System.Windows.Forms.SplitContainer”的对象强制转换为类型“System.ComponentModel.ISupportInitialize”。
  8. SHELL学习笔记----IF条件判断,判断条件
  9. 建造者模式-&gt;代码示例
  10. Google浏览器的缓存文件过大(mega网站导致的)
  11. PTA天梯 L3-007 天梯地图
  12. Django REST Framework extensions
  13. 安装最新nginx
  14. BZOJ 1087 互不侵犯King 状态压缩DP
  15. 28 个 C/C++ 开源 JSON 程序库性能及标准符合程度评测
  16. 第七节 认识SpringMVC中的表单标签
  17. 【Spring Boot&amp;&amp;Spring Cloud系列】Spring Boot项目集成Swagger UI
  18. mysql数据类型和使用方法
  19. Struts 2 官方文档中文版
  20. 同一台电脑的多ssh 配置

热门文章

  1. vim列块操作
  2. uml精粹——10.状态机图
  3. [Adobe Analytics] Segments types
  4. setState 是异步的
  5. Git多账号登陆
  6. CellularAutomation(细胞自己主动机)
  7. C#语言 语句
  8. Network Booting
  9. Kafka知识点汇总
  10. Tomcat 安装与配置规范