首页 > 其他分享 >L3-005 垃圾箱分布

L3-005 垃圾箱分布

时间:2024-04-03 12:22:23浏览次数:25  
标签:int s2 s1 cpath L3 005 垃圾箱 mins cmins

dijkstra。

#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;
}

参考博客: http://www.manongjc.com/detail/52-kjhguymcxvgekvl.html

标签:int,s2,s1,cpath,L3,005,垃圾箱,mins,cmins
From: https://www.cnblogs.com/chengyiyuki/p/18112422

相关文章

  • L3-003 社交集群
    并查集的应用,我感觉这题不是很容易想出来。然后....代码看注释吧。写法一,#include<bits/stdc++.h>usingnamespacestd;inta[1010][1010],fa[1010];intgetf(intx){ while(fa[x]!=-1){ x=fa[x]; } returnx;}voidmerge(intx,inty){ intf1=getf(x); intf2=......
  • L3-002 特殊堆栈
    维护两个栈。一个正常放数据,另一个是排序好的数据。#include<bits/stdc++.h>usingnamespacestd;intmain(){ vector<int>data; vector<int>mdata; vector<int>::iteratorit; intn; cin>>n; while(n--){strings; cin>>s; if(s==......
  • L3-001 凑零钱
    一道很简单的DFS。#include<bits/stdc++.h>usingnamespacestd;intn,m,a[10010];vector<int>res;voiddfs(intstart,intown){ for(inti=start;i<n;i++){ if(own+a[i]>m)return; elseif(own+a[i]==m){ res.push_back(a[i]); intflag=0;......
  • POI2005 KOS-Dicing
    网络流#二分考虑二分答案,用\(Dinic\)来\(check\)具体来说,就是对每一个人限制流量,然后检查能不能把所有场全部流满#include<bits/stdc++.h>usingnamespacestd;#defineintlonglong#defineullunsignedlonglong#defineALL(a)(a).begin(),(a).end()#definepb......
  • 代码随想录算法训练营第34天| 1005. K 次取反后最大化的数组和、134. 加油站、135. 分
    1005.K次取反后最大化的数组和题目链接:K次取反后最大化的数组和题目描述:给你一个整数数组nums和一个整数k,按以下方法修改该数组:选择某个下标i并将nums[i]替换为nums[i]。重复这个过程恰好k次。可以多次选择同一个下标i。以这种方式修改数组后,返回数......
  • 手把手教你做阅读理解题-初中中考阅读理解解题技巧005-attract people to join Fitnes
    PDF格式公众号回复关键字:ZKYD005阅读理解技巧,在帮助读者有效获取和理解文本信息方面发挥着重要作用,熟练掌握如下6个技巧,可快速突破阅读理解1预览文章结构在开始深入阅读之前,快速浏览文章的标题、段落开头和结尾,可以迅速把握文章的主题、大致内容和结构标题通常能概括文章......
  • [AHOI2005] SHUFFLE 洗牌
    这是一道逆元的模板题。看到题,首先找下规律:首先想到是否存在循环,即经过多次洗牌后回到原状态的情况,但手玩了几组以后发现有循环但没有规律,只能知道循环节长度小于等于\(n\),显然会\(TLE\);所以对于一些循环节较长的数据很容易被卡掉(比如这组:900000000011)代码转载自@Ish......
  • 基于 DYNAMIXEL XL330 舵机的5自由度机械臂
    完整视频链接:https://www.bilibili.com/video/BV1Yz421f7AK/?spm_id_from=333.999.0.0&vd_source=9456951d706e2acc026e424d8a228909 ProjectDescription:A5DOFrobotarmusingtheDynamixelXL-330andArduinoMKR.Allpartsoftherobotarmare3Dprintedusing......
  • 前端学习-UI框架学习-Bootstrap5-005-颜色
    菜鸟教程学习链接字体颜色Bootstrap5提供了一些有代表意义的颜色类:.text-muted,.text-primary,.text-success,.text-info,.text-warning,.text-danger,.text-secondary,.text-white,.text-dark,.text-body(默认颜色,为黑色)and.text-light:可以设置文本颜色透明度......
  • 暖心推荐:三螺杆泵 IMO中国ACE038L3NVBP 2024已更新(每日/实时)
    暖心推荐:三螺杆泵IMO中国ACE038L3NVBP2024已更新(每日/实时)暖心推荐:三螺杆泵IMO中国ACE038L3NVBP2024已更新(每日/实时)暖心推荐:三螺杆泵IMO中国ACE038L3NVBP2024已更新(每日/实时)ACG052N7NVBP进口三螺杆泵组瑞典IMO泵IMO双螺杆泵IMO三螺杆泵瑞典IMO工业公司,......