L3-005 垃圾箱分布(dijkstra)

2024-04-03 23:20
文章标签 分布 dijkstra 005 l3 垃圾箱

本文主要是介绍L3-005 垃圾箱分布(dijkstra),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

拿起题就开始写,最后提交测试点2和测试点3就是过不去。
感觉一点问题都没有,好郁闷,找了半天,发现地点的编号是0开始的,而我一直在从1遍历....
思路就是两个dijkstra,这两次思路是完全一样的,只是一个是最短距离最少节点,一个是最短时间最短距离,所以分别需要增加一个累计经过节点数量和累计节点距离(cnt和distances)。
结果我都是用dist来存的,第一个dist表示的是最短路径,第二个表示的是最短时间。

代码:

#include <bits/stdc++.h>
using namespace std;
const int inf = 0x3f3f3f3f;
int distances[1010][1010];
int dis[1020],visited[1020];
int edges[1020][1020]; 
void dijkstra(int dis[],int visited[],int n,int s){//s起点 dis[s]=0;for(int i=1;i<=n;i++){int minv = inf,minx;for(int j=1;j<=n;j++){if(!visited[j]&&dis[j]<minv){minv=dis[j];minx=j;}}visited[minx]=1;for(int j=1;j<=n;j++){if(minv+edges[minx][j]<dis[j]){dis[j]=minv+edges[minx][j];}}}
}
int main(){memset(edges,0x3f,sizeof(edges));int n,m,k,ds;cin>>n>>m>>k>>ds;//居民点的个数 垃圾箱的个数 路径条数 最远不能超过 char s1[10],s2[10];int dist;for(int i=1;i<=k;i++){//输入 cin>>s1>>s2>>dist;int x = s1[0]=='G'?atoi(s1+1)+n:atoi(s1);int y = s2[0]=='G'?atoi(s2+1)+n:atoi(s2);edges[x][y]=edges[y][x]=dist;} for(int i=1;i<=m;i++){memset(visited,0,sizeof(visited));memset(dis,0x3f,sizeof(dis));dijkstra(dis,visited,n+m,n+i);for(int j=1;j<=n;j++){distances[i][j]=dis[j];}}vector<int> res;int mins=0,path=inf; //到所有的居民点的最短距离中最长的那个for(int i=1;i<=m;i++){//第i个垃圾箱 int cmins=inf,cpath=0;int flag = 1;for(int j=1;j<=n;j++){if(distances[i][j]>ds){//这个垃圾桶不行 flag = 0;break;}cpath=cpath+distances[i][j];//更新最短距离cmins = min(distances[i][j],cmins); }if(!flag) continue;if(cmins>mins){//更长 mins=cmins;//更新 path=cpath; res.clear();res.push_back(i);}else if(cmins==mins){//平均距离if(cpath<path) {res.clear();res.push_back(i);path=cpath;//更新 }}}if(res.size()==0){cout << "No Solution" << '\n';}else{cout << "G" << *res.begin() << '\n';printf("%.1f %.1f",(double)mins,(double)path/n);}return 0;
}

这篇关于L3-005 垃圾箱分布(dijkstra)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/874240

相关文章

poj 1502 MPI Maelstrom(单源最短路dijkstra)

题目真是长得头疼,好多生词,给跪。 没啥好说的,英语大水逼。 借助字典尝试翻译了一下,水逼直译求不喷 Description: BIT他们的超级计算机最近交货了。(定语秀了一堆词汇那就省略吧再见) Valentine McKee的研究顾问Jack Swigert,要她来测试一下这个系统。 Valentine告诉Swigert:“因为阿波罗是一个分布式共享内存的机器,所以它的内存访问

uva 10801(乘电梯dijkstra)

题意: 给几个电梯,电梯0 ~ n-1分别可以到达很多层楼。 换乘电梯需要60s时间。 问从0层到target层最小的时间。 解析: 将进入第0层的电梯60s也算上,最后减。 坑点是如果target为0输出0。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algori

hdu 3790 (单源最短路dijkstra)

题意: 每条边都有长度d 和花费p,给你起点s 终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的。 解析: 考察对dijkstra的理解。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstrin

poj 3255 次短路(第k短路) A* + spfa 或 dijkstra

题意: 给一张无向图,求从1到n的次短路。 解析: A* + spfa 或者 dijkstra。 详解见上一题:http://blog.csdn.net/u013508213/article/details/46400189 本题,spfa中,stack超时,queue的效率最高,priority_queue次之。 代码: #include <iostream>#i

全英文地图/天地图和谷歌瓦片地图杂交/设备分布和轨迹回放/无需翻墙离线使用

一、前言说明 随着风云局势的剧烈变化,对我们搞软件开发的人员来说,影响也是越发明显,比如之前对美对欧的软件居多,现在慢慢的变成了对大鹅和中东以及非洲的居多,这两年明显问有没有俄语或者阿拉伯语的输入法的增多,这要是放在2019年以前,一年也遇不到一个人问这种需求场景的。 地图应用这块也是,之前的应用主要在国内,现在慢慢的多了一些外国的应用场景,这就遇到一个大问题,我们平时主要开发用的都是国内的地

005:VTK世界坐标系中的相机和物体

VTK医学图像处理---世界坐标系中的相机和物体 左侧是成像结果                                                    右侧是世界坐标系中的相机与被观察物体 目录 VTK医学图像处理---世界坐标系中的相机和物体 简介 1 在三维空间中添加坐标系 2 世界坐标系中的相机 3 世界坐标系中vtkImageData的参数 总结:

【Python机器学习】核心数、进程、线程、超线程、L1、L2、L3级缓存

如何知道自己电脑的CPU是几核的,打开任务管理器(同时按下:Esc键、SHIFT键、CTRL键) 然后,点击任务管理器左上角的性能选项,观察右下角中的内核:后面的数字,就是你CPU的核心数,下图中我的是16个核心的。 需要注意的是,下面的逻辑处理器:32 表示支持 32 线程(即超线程技术) 图中的进程:和线程:后面的数字代表什么 在你上传的图片中,“进程:180” 和 “线程:3251”

【Get深一度】谐振腔中的电场(E Field[V_per_m])与磁场(H field[A_per_m])分布

1.模式1[TM010模]的电场和磁场分布                  模式1在腔体横截面(XY)上的电磁场分布

Dijkstra算法总结

1.如何建立图   Graph 一般是adjecent list, class DirectedGraphNode {     int label;     List<DirectedGraphNode> neighbors;     ... } 也可以使用 HashMap 和 HashSet 搭配的方式来存储邻接表 hashmap<Integer, List<Integer

BFS 到 Level Order traverse 到 UnionFind 到 Topological Sort 到 Dijkstra 思路总结

====BFS 找联通量,找component. Number of Islands (BFS, DFS 都可以做) Surrounded Regions 算法是:先收集四个周边的 O,然后用BFS或者DFS向里面扩展,visited记录connect点,最后如果没有被visited到的O,会变成X;T: O(m*n), Space: O(m*n). Is Graph Bipartite (