7-50 畅通工程之局部最小花费问题 (35 分)(思路加详解)来呀兄弟们冲呀呀呀呀呀呀呀
一:题目
某地区经过对城镇交通状况的调查,得到现有城镇间快速道路的统计数据,并提出“畅通工程”的目标:使整个地区任何两个城镇间都可以实现快速交通(但不一定有直接的快速道路相连,只要互相间接通过快速路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建快速路的费用,以及该道路是否已经修通的状态。现请你编写程序,计算出全地区畅通需要的最低成本。
输入格式:
输入的第一行给出村庄数目N (1≤N≤100);随后的N(N−1)/2行对应村庄间道路的成本及修建状态:每行给出4个正整数,分别是两个村庄的编号(从1编号到N),此两村庄间道路的成本,以及修建状态 — 1表示已建,0表示未建。
输出格式:
输出全省畅通需要的最低成本。
输入样例:
4
1 2 1 1
1 3 4 0
1 4 1 1
2 3 3 0
2 4 2 1
3 4 5 0
输出样例:
3
二:思路
这个就是Prime算法的变型,我想的是如果这条路是已经修过,那么的话就将其的权值你设为0
三:上码
/**思路:如果是已经修过,那么的话就将其的权值你设为0*/
#include<bits/stdc++.h>
using namespace std;typedef struct GNode* PtrGraph;typedef struct GNode{int Nv;int Ne;int Data[105][105];
}gnode;int N;
//利用邻接矩阵储存图的基本信息
void CreateGraph(PtrGraph G){cin >> N;G->Nv = N;G->Ne = N*(N-1)/2;//矩阵初始化 for(int i = 1; i <= G->Nv; i++){for(int j = 1; j <= G->Nv; j++){G->Data[i][j] = 0; }}//矩阵赋值for(int i = 0; i < G->Ne; i++){int a,b,c,d;cin >> a >> b >> c >> d; if(d == 0){G->Data[a][b] = c;G->Data[b][a] = c; } }
}
//输出矩阵
void print_Graph(PtrGraph G){for(int i = 1; i <= G->Nv; i++){for(int j = 1; j <= G->Nv; j++){cout << G->Data[i][j] << ' ';}cout << endl;}
} //Prime最小成树的算法
void Prime(PtrGraph G){int dist[105];int visited[105] = {0};int count = 0;for(int i = 1; i <= G->Nv; i++){dist[i] = G->Data[1][i];//将符号为1到其他点的距离存在 dist数组中 }visited[1] = 0;count++;while(1){int m = -1;int infinite = 9999;//求取最小值for(int i = 1; i <= G->Nv; i++){if(dist[i] < infinite && visited[i] != 1){infinite = dist[i];m = i;}}visited[m] = 1;count++;if(m == -1){break;} //更新for(int i = 1; i <= G->Nv; i++){if(visited[i] != 1 && G->Data[m][i] < dist[i] ){dist[i] = G->Data[m][i];}} } int sum = 0;for(int i = 1; i <= G->Nv; i++){sum += dist[i];}cout << sum;} int main(){PtrGraph G = (PtrGraph)malloc(sizeof(struct GNode));CreateGraph(G);
// print_Graph(G);Prime(G);}
加油BOY!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
7-50 畅通工程之局部最小花费问题 (35 分)(思路加详解)来呀兄弟们冲呀呀呀呀呀呀呀相关推荐
- CCF201503-5 最小花费(100分解题链接)
试题编号: 201503-5 试题名称: 最小花费 时间限制: 4.0s 内存限制: 256.0MB 问题描述: 问题描述 C国共有n个城市.有n-1条双向道路,每条道路连接两个城市,任意两个城市之间 ...
- 畅通工程之最低成本建设问题 (30分)
某地区经过对城镇交通状况的调查,得到现有城镇间快速道路的统计数据,并提出"畅通工程"的目标:使整个地区任何两个城镇间都可以实现快速交通(但不一定有直接的快速道路相连,只要互相间接通 ...
- CCF201503-5 最小花费(30分)
试题编号: 201503-5 试题名称: 最小花费 时间限制: 4.0s 内存限制: 256.0MB 问题描述: 问题描述 C国共有n个城市.有n-1条双向道路,每条道路连接两个城市,任意两个城市之间 ...
- 【智能算法】迭代局部搜索(Iterated Local Search, ILS)详解
更多精彩尽在微信公众号[程序猿声] 迭代局部搜索(Iterated Local Search, ILS) 00 目录 局部搜索算法 简单局部搜索 迭代局部搜索 01 局部搜索算法 1.1 什么是局部搜 ...
- 九七的视觉工程 | 普通单目相机成像过程及相机内参详解
相机成像过程及相机内参详解 一.定义介绍 本节以小孔成像模型为例,详细介绍了普通单目相机的成像过程,相机内参及内参矩阵的详细含义.本节所述的成像原理与大部分相机成像原理类似,读懂此节可满足大部分与 ...
- 微型计算机典型组成原理图,51单片机最小系统原理图、PCB及组成原理详解
单片机:单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU.随机存储器RAM.只读存储器ROM.多种I/O口和中断系统.定时器 ...
- 剑指Offer #06 旋转数组的最小数字(二分查找)| 图文详解
题目来源:牛客网-剑指Offer专题 题目地址:旋转数组的最小数字 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小 ...
- Springboot分模块开发详解(2):建立子工程
1.创建base-entity 选中base工程,右键创建一个新的maven工程 自动选择了base这个目录存放子工程 创建后,pom.xml修改成如下内容: <?xml version=&qu ...
- 吴孟达《高等工程数学》第三章知识点和部分答案详解
第三章知识点 第三章部分习题详解
最新文章
- 2022-2028年中国锅炉行业投资分析及前景预测报告
- c语言英语笔试题,C语言面试题(国外英语资料).doc
- 国内哪里培训python比较好-python培训哪家机构比较好?
- Patrol 7 架构下?的处理方法
- SAP系统和微信集成的系列教程之八:100行代码在微信公众号里集成地图搜索功能
- 《Python Cookbook 3rd》笔记(1.7):字典排序
- 2017.9.10 连续攻击游戏 思考记录
- mysql存emoji_MySql存储emoji表情报错的处理方法
- idea 集成svn
- Android开发系列(十一) QQ登陆界面——Android控件使用实例
- FSG压缩壳和ImportREC的使用 - 脱壳篇05
- APM监控--(六)Dapper,大规模分布式系统的跟踪系统
- Wemos D1 Mini / nodeMcu / esp8266 + GUIslice库 驱动ST7789 TFT显示屏
- paly 框架Cannot load this JVM TI agent twice, check your java command line for duplicate jdwp options.
- Python之组合数据类型(列表、元组、集合、字典)
- win7下搭建Nginx简单图片服务器
- 关于风险回归的Cox 模型构建,森林图(1)
- 去面试了几家BATJ等N家互联网大厂
- 多线程同步与并发访问共享资源工具—Lock、Monitor、Mutex、Semaphore
- 【报错解决】为Blender构建Python模块
热门文章
- onlyoffice 20并发限制处理
- react 数组新增_React 新特性 Hooks 讲解及实例(二)
- memcache在项目中的应用
- Mysql的关联查询语句
- SQL Server 2005登录名,用户名,角色,架构之间的关系
- LeetCode之Move Zeroes
- xshell通过隧道连接_DNS安全之隧道攻击
- 这个公式竟然堪称数学界的画家......
- 你穿衣品味还不如AI,这有一款时尚着装网络模型
- 《悦趣式连锁反应》玩转STEM教育!529块积木元件,N+1款炫酷模型