P1339 [USACO09OCT]热浪Heat Wave
我太lj了,所以趁着夜色刷了道最短路的水题。。。。然后,,我炸了。
题目描述:
The good folks in Texas are having a heatwave this summer. Their Texas Longhorn cows make for good eating but are not so adept at creating creamy delicious dairy products. Farmer John is leading the charge to deliver plenty of ice cold nutritious milk to Texas so the Texans will not suffer the heat too much.
FJ has studied the routes that can be used to move milk from Wisconsin to Texas. These routes have a total of T (1 <= T <= 2,500) towns conveniently numbered 1..T along the way (including the starting and ending towns). Each town (except the source and destination towns) is connected to at least two other towns by bidirectional roads that have some cost of traversal (owing to gasoline consumption, tolls, etc.). Consider this map of seven towns; town 5 is the
source of the milk and town 4 is its destination (bracketed integers represent costs to traverse the route):

Traversing 5-6-3-4 requires spending 3 (5->6) + 4 (6->3) + 3 (3->4) = 10 total expenses.
Given a map of all the C (1 <= C <= 6,200) connections (described as two endpoints R1i and R2i (1 <= R1i <= T; 1 <= R2i <= T) and costs (1 <= Ci <= 1,000), find the smallest total expense to traverse from the starting town Ts (1 <= Ts <= T) to the destination town Te (1 <= Te <= T).
德克萨斯纯朴的民眾们这个夏天正在遭受巨大的热浪!!!他们的德克萨斯长角牛吃起来不错,可是他们并不是很擅长生產富含奶油的乳製品。Farmer John此时以先天下之忧而忧,后天下之乐而乐的精神,身先士卒地承担起向德克萨斯运送大量的营养冰凉的牛奶的重任,以减轻德克萨斯人忍受酷暑的痛苦。
FJ已经研究过可以把牛奶从威斯康星运送到德克萨斯州的路线。这些路线包括起始点和终点先一共经过T (1 <= T <= 2,500)个城镇,方便地标号為1到T。除了起点和终点外地每个城镇由两条双向道路连向至少两个其它地城镇。每条道路有一个通过费用(包括油费,过路费等等)。
给定一个地图,包含C (1 <= C <= 6,200)条直接连接2个城镇的道路。每条道路由道路的起点Rs,终点Re (1 <= Rs <= T; 1 <= Re <= T),和花费(1 <= Ci <= 1,000)组成。求从起始的城镇Ts (1 <= Ts <= T)到终点的城镇Te(1 <= Te <= T)最小的总费用。
输入输出格式:
输入格式:
第一行: 4个由空格隔开的整数: T, C, Ts, Te
第2到第C+1行: 第i+1行描述第i条道路。有3个由空格隔开的整数: Rs, Re和Ci
输出格式:
一个单独的整数表示从Ts到Te的最小总费用。数据保证至少存在一条道路。
输入输出样例:
输入样例:

输出样例:

说明
【样例说明】 5->6->1->4 (3 + 1 + 3)
LCA的爱情,被一道‘热浪’冲毁了??????
调了一个小时的热浪还没调出来,我的dijkstra怎么了??????
#include"bits/stdc++.h"
#define maxn 11111
using namespace std;
int cnt,s,t,n,m/*,g[maxn][maxn]*/,head[maxn],dis[maxn],y,z;
bool vis[maxn];
struct edge{
int u,v,w;
int next;
}a[maxn];
/*inline int read() {
int x=0,f=1;
char c=getchar();
while(c<'0'||c>'9') {
if(c=='-')f=-1;
c=getchar();
}
while(c>='0'&&c<='9') {
x=x*10+c-'0';
c=getchar();
}
return x*f;
}*/
void add_edge(int aa,int b,int c){
cnt++;
a[cnt].u=aa;
a[cnt].v=b;
a[cnt].w=c;
a[cnt].next=head[aa];
head[aa]=cnt;
}
/*void floyed() {
for(int k=1; k<=n; k++) {
for(int i=1; i<=n; i++) {
if(k!=i)
for(int j=1; j<=i; j++)
if(i!=j&&j!=k&&g[i][j]>g[i][k]+g[k][j])
g[i][j]=g[i][k]+g[k][j];
}
}
}*/
void dijkstra(){
priority_queue <pair<int,int> > Q;
memset(dis,0x3f,sizeof(dis));
dis[s]=;
Q.push(make_pair(,s));
while(!Q.empty()){
int x=Q.top().second;
Q.pop();
if(vis[x]) continue;
vis[x]=;
for(int i=head[x];i;i=a[i].next)
y=a[i].v,z=a[i].w;
if(dis[y]>dis[x]+z)
dis[y]=dis[x]+z;
Q.push(make_pair(-dis[y],y));
}
}
int main() {
ios::sync_with_stdio(false);
cin>>n>>m>>s>>t;
//n=read(); m=read(); s=read(); t=read();
/* for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
g[i][j]=0x3f3f3f3f;*/
memset(vis,,sizeof(vis));
for(int i=; i<=m; i++) {
int x,y,z;
cin>>x>>y>>z;
//x=read();y=read();z=read();
add_edge(x,y,z);
/*g[x][y]=z;
g[y][x]=z;*/
}
// floyed();
// cout<<g[s][t];
dijkstra();
cout<<dis[s];
return ;
}
迷茫之处:(这种BC错误真的没脸说)
1.不将a[i].w用z表示就会显示错误。
2.输出永远是0(应该是我的dijkstra错了)
3.惨兮兮,有时候真的怀疑我是不是BC。。
AC代码:
#include"bits/stdc++.h"
#define maxn 12222
using namespace std;
int cnt=,s,t,n,m,head[maxn],dis[maxn],y,z;
bool vis[maxn];
struct edge {
int u,v,w;
int next;
} a[maxn];
priority_queue <pair<int,int> > Q; void add_edge(int aa,int b,int c) {
cnt++;
a[cnt].u=aa;
a[cnt].v=b;
a[cnt].w=c;
a[cnt].next=head[aa];
head[aa]=cnt;
} void dijkstra() {
memset(dis,0x3f,sizeof(dis));
memset(vis,,sizeof(vis));
dis[s]=;
Q.push(make_pair(,s));
while(Q.size()) {
int x=Q.top().second;
Q.pop();
if(vis[x]) continue;
vis[x]=;
for(int i=head[x]; i; i=a[i].next) {
y=a[i].v,z=a[i].w;
if(dis[y]>dis[x]+z) {
dis[y]=dis[x]+z;
Q.push(make_pair(-dis[y],y));
}
}
}
} int main() {
ios::sync_with_stdio(false);//
cin>>n>>m>>s>>t;
for(int i=; i<=m; i++) {
int x,y,z;
cin>>x>>y>>z;
add_edge(x,y,z);
add_edge(y,x,z);
}
dijkstra();
cout<<dis[t];
return ;
}
**之处:
1.括号全忘了
2.怒删注释和快读?
3.打了个这个priority_queue <edge> Q。
4.震惊!!是人性的丧失还是lyq的泯灭????
耗费一个半小时,我真的是lj
P1339 [USACO09OCT]热浪Heat Wave的更多相关文章
- 洛谷—— P1339 [USACO09OCT]热浪Heat Wave
P1339 [USACO09OCT]热浪Heat Wave 题目描述 The good folks in Texas are having a heatwave this summer. Their ...
- [最短路]P1339 [USACO09OCT]热浪Heat Wave
题目描述 The good folks in Texas are having a heatwave this summer. Their Texas Longhorn cows make for g ...
- luogu P1339 [USACO09OCT]热浪Heat Wave
题目描述 The good folks in Texas are having a heatwave this summer. Their Texas Longhorn cows make for g ...
- 洛谷 P1339 [USACO09OCT]热浪Heat Wave (堆优化dijkstra)
题目描述 The good folks in Texas are having a heatwave this summer. Their Texas Longhorn cows make for g ...
- 洛谷P1339 [USACO09OCT]热浪Heat Wave(最短路)
题目描述 The good folks in Texas are having a heatwave this summer. Their Texas Longhorn cows make for g ...
- 洛谷 P1339 [USACO09OCT]热浪Heat Wave
题目链接:https://www.luogu.org/problemnew/show/P1339 解题思路: 一道简单的最短路水题,dijkstra解法模板思路:https://www.cnblogs ...
- 洛谷 P1339 [USACO09OCT]热浪Heat Wave(dijkstra)
题目链接 https://www.luogu.org/problemnew/show/P1339 最短路 解题思路 dijkstra直接过 注意: 双向边 memset ma数组要在读入之前 AC代码 ...
- P1339 [USACO09OCT]热浪Heat Wave(SPFA)
-------------------------------------- 农夫约翰再显神威,双向热浪,双倍数组 (双倍大小,否则RE) ------------------------------ ...
- 洛谷 P1339 [USACO09OCT]热浪Heat Wave(最短路)
嗯... 题目链接:https://www.luogu.org/problem/P1339 这道题是水的不能在水的裸最短路问题...这里用的dijkstra 但是自己进了一个坑—— 因为有些城市之间可 ...
随机推荐
- 玩转Spring Cloud之熔断降级(Hystrix)与监控
本文内容导航目录: 前言:解释熔断降级一.搭建服务消费者项目,并集成 Hystrix环境 1.1.在POM XML中添加Hystrix依赖(spring-cloud-starter-netflix-h ...
- SpringBoot系列——jar包与war包的部署
前言 Spring Boot支持传统部署和更现代的部署形式.jar跟war都支持,这里参考springboot参考手册学习记录 两种方式 jar springboot项目支持创建可执行Jar,参考手册 ...
- PHP面向对象和面向过程
编程界不论是PHP.Python都有这么两种编程思想,oop面向对象.pop面向过程,这两种在功能上没有多大区别,但是在代码编写上却有很大区别.今天就记录一下面向对象和面向过程的优点.缺点.定义.实现 ...
- ServiceStack.Redis 请求次数6000次异常
Redis是一个非常NB的内存级的数据库,我们可以把很多”热数据“(即读写非常多的数据)放入其中来操作,这样就减少了和关系型数据库(如SqlServer/My Sql等)之间的交互,程序的响应速度也大 ...
- react native中一次错误排查 Error:Error: Duplicate resources
最近一直在使用react native中,遇到了很多的坑,同时也学习到了一些移动端的开发经验. 今天在做一个打包的测试时,遇到了一个问题,打包过程中报错“Error:Error: Duplicate ...
- webpack4介绍
https://github.com/wallstreetcn/webpack-and-spa-guide
- iOS多线程GCD的使用
1. GCD 简介 Grand Central Dispatch(GCD)是异步执行任务的技术之一.一般将应用程序中记述的线程管理用的代码在系统级中实现.开发者只需要定义想执行的任务并追加到适当的Di ...
- SpringCloud微服务Zuul跨域问题
目前项目结构是VUE做前端,后端采用微服务架构,在开发时前端需要跨域请求数据,通过ZuulFilter配置解决了简单跨域请求需要.但当需要在请求的header中增加token信息时,出现了请求失败的情 ...
- 51Nod 1004 n^n的末位数字
思路:首先将0~9的平方的尾数放在一个数组a里面,方便后面直接调用,因为不论多大的数做什么运算,得到的结果的最后一位数只和运算前所有数的最后一位数有关系.新建变量d,z一个是底数,一个是幂次.循环判断 ...
- 浏览器仿EXCEL表格插件 - 智表ZCELL产品V1.4发布
智表(zcell)是一款浏览器仿excel表格jquery插件.智表可以为你提供excel般的智能体验,支持双击编辑.设置公式.设置显示小数精度.下拉框.自定义单元格.复制粘贴.不连续选定.合并单元格 ...