当前位置: 首页 > news >正文

网站盈利方法pc 移动网站 模板

网站盈利方法,pc 移动网站 模板,哪家网站开发好,网站备案文件照片题目:(出差) 题目描述(13届 C&C B组E题) 解题思路: 问题分析 问题实质是一个带权图的最短路径问题,但路径的权重包含两个部分: 从当前城市到下一个城市的路程时间。 当前城市的…

题目:(出差)

题目描述(13届 C&C++ B组E题)

解题思路:

  • 问题分析

    • 问题实质是一个带权图的最短路径问题,但路径的权重包含两个部分:

      1. 从当前城市到下一个城市的路程时间。

      2. 当前城市的离开时间。

    • 需要计算从城市1到城市N的最短时间。

  • 图的表示

    • 用邻接矩阵表示图,将不存在的边初始化为无穷大。

  • 路径规划

    • 使用Dijkstra算法,从城市1开始,动态更新到其他城市的最短路径时间。

  • 特殊处理

    • 起点城市(城市1)的离开时间staytime[0]设为0,因为小明可以直接出发。

  • 时间复杂度

    • Dijkstra的时间复杂度为 O(N2)O(N^2)O(N2) (由于使用邻接矩阵实现),在节点数较小时仍然可行。

代码实现(C语言):

#define maxn 1001
#define inf INT_MAX
#define edgetype int#include <stdio.h>
#include <stdlib.h>
#include <limits.h>void initedges(edgetype graph[maxn][maxn], int n)
{int i, j;for (i = 0; i < n; i++){for (j = 0; j < n; j++){graph[i][j] = inf;}}
}void addedges(edgetype graph[maxn][maxn], int u, int v, int w)
{if (graph[u][v] == inf || w < graph[u][v]){graph[u][v] = w;}if (graph[v][u] == inf || w < graph[v][u]){graph[v][u] = w;}
}void dijkstra(edgetype graph[maxn][maxn], int s, int n, edgetype dist[maxn], edgetype staytime[maxn])
{int visited[maxn];int i;for (i = 0; i < n; i++){dist[i] = inf;visited[i] = 0;}dist[s] = 0;while (1){int minindex = -1;int min = inf;for (int i = 0; i < n; i++){if (!visited[i] && dist[i] < min) {min = dist[i];minindex = i;}}if (min == inf){break;}visited[minindex] = 1;for (i = 0; i < n; i++){int u = graph[minindex][i];if (visited[i]){continue;}if (u == inf){continue;}if (dist[i] == inf || dist[i] > min + u + staytime[i]){dist[i] = min + u + staytime[i];}}}
}int main(int argc, char *argv[])
{int N, M, i, u, v, w;edgetype staytime[maxn], graph[maxn][maxn], dist[maxn];scanf("%d %d", &N, &M);for (i = 0; i < N; i++){scanf("%d", &staytime[i]);}staytime[0] = 0;initedges(graph, N);for (i = 0; i < M; i++){scanf("%d %d %d", &u, &v, &w);addedges(graph, u - 1, v - 1, w);}dijkstra(graph, 0, N, dist, staytime);printf("%d", dist[N - 1] - staytime[N - 1]);return 0;
}

得到运行结果:

代码分析: 

  • 图的初始化

    • initedges 函数将图中所有的边权值初始化为无穷大(inf),表示没有直接连通的路径。

  • 添加边

    • addedges 函数会将边(u, v)及其权值w加入到邻接矩阵中,同时判断是否已有更短路径,如果有就更新。

  • Dijkstra算法

    • 核心部分是 dijkstra 函数:

      • 使用一个 visited 数组标记已确定最短路径的节点。

      • 每次找到当前未访问节点中距离起点最近的节点。

      • 松弛操作:尝试更新所有相邻节点的最短距离,考虑路径花费和目标节点的离开时间。

  • 输入输出

    • 输入部分:城市数量N、道路数量M、每个城市离开时间以及M条双向边信息。

    • 输出部分:从起点城市1到终点城市N的最短时间。

  • 重要逻辑

    • dijkstra 中更新距离时,将离开时间加入权值计算:dist[i] = min + u + staytime[i]

难度分析

⭐️⭐️⭐️⭐️⭐️难难难难难急急急急急急急

总结

本代码解决了一个加权图中的特殊最短路径问题,考虑到离开时间的影响。
它适用于小型的城市网络,提供了可靠的解法。

http://www.yayakq.cn/news/555853/

相关文章:

  • 信息化网站建设的请示做网站外包好做吗
  • 网站建设步骤图网站开发 天津
  • 梧州高端网站建设服务济南网站建设的公司
  • 宜阳县网站建设wordpress+解密成md5
  • 上海网站设计案例网站建设报什么专业
  • 网站开发5000做公司网站需要多少钱
  • 给网站可以怎么做外链东莞网站包年优化
  • 广西桂川建设集团网站外贸人常去的网站
  • 上海电子网站建设微信网站建设报价单
  • 夏津网站开发app图片怎么制作
  • 深圳网站建设外贸公司排名友情链接图片
  • 两学一做网站安徽省危机公关处理方案
  • 网站是哪个公司做p2p网站开发公司
  • 网站访客qq提取莱芜二手房出售信息最新房源
  • 网站建设 风险说明深圳seo网站
  • 源码网站建设步骤佛山建网站的公司
  • 福州做网站设计外包有哪些做投行网站
  • 公司网站简历刷新怎么做上海的外贸公司排名
  • 如何建立一个网站论坛泰安市网站建设
  • 网站变灰 兼容网络营销的特征包括
  • 30天网站建设 视频教程职业教育网站开发
  • wordpress返回404页面齐齐哈尔企业网站排名优化
  • 网站做好了怎样推广淘宝网站内站建设
  • 自己有域名要怎么制作网站海南网站建设
  • 定州网站设计wordpress 腾讯qq登陆
  • 企业网站建设账务处理网络规划设计师(高级)
  • 保定企业建网站wordpress绑定二级域名
  • 做网站 seo电商网站建设解决方案
  • 做手机网站用什么程序好马化腾称视频号是全公司希望
  • 北京快三下载官方网站seo外包网站