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

白云网站 建设信科网络seo专业培训费用

白云网站 建设信科网络,seo专业培训费用,无锡做网页设计的公司,win7 做服务器开网站写在前面 自己玩了很多项目,但是最近准备秋招的过程中,发现自己对于算法和编程语言的基本功夫实在是太欠缺了。 投递了华为的实习岗位,4.26参加机考,一做题就发现了自己很多地方都不会。这里写下笔试后的复盘以警醒自己。 题目 …

写在前面

自己玩了很多项目,但是最近准备秋招的过程中,发现自己对于算法和编程语言的基本功夫实在是太欠缺了。
投递了华为的实习岗位,4.26参加机考,一做题就发现了自己很多地方都不会。这里写下笔试后的复盘以警醒自己。

题目

按照记忆来回顾题目,仅供参考。解法为自己复盘所写,没有经过数据集测试,不保真。
如果有发现问题,欢迎提出,非常感谢!
机考第一题,分值(100分)

题目描述

在n*n的矩阵范围内,有K个配送站和N个客户点,配送点和客户的坐标给出。如何计算最短路径让K个配送点能够全部覆盖N个客户点。配送站和客户点的距离表示如:distance = |x1-x2| + |y1 - y2|

解题思路

复盘的时候,理解到这道题是一个匹配问题。
解题思路如下:

  • 先建立配送站和客户点的位置地图。地图大小是n*n矩阵,并将配送站和客户点的位置存储。
  • 求出所有配送站与客户的距离distance_all[K][N],并在计算的过程中记录最大距离max_distance。下图中D[K][N]表示第K的配送点和第N的客户的距离
    在这里插入图片描述
  • 然后开始从0到max_distance开始循环,每次循环的值为distance,再对距离数组先从上到下遍历,再从左到右遍历。
  • 如果在该列中存在D小于distance,那么代表有一个配送站能到达此客户点,那么跳出此列,进入下一列,直至遍历所有列。如果有一列不存在D小于distance,说明有一个客户点没有配送站能到达,那么跳出行遍历,distance++
  • 由于一定存在一个distance能够满足要求,因此无需考虑不存在distance的情况。如果行列遍历均结束,则跳出distance循环,并输出当前distance
    在这里插入图片描述

代码

因为是笔试后复盘,未经过数据集检验。解法也不一定是最优解。如果有问题或者别的思路,欢迎提出。

#include <stdio.h>      
#include <string.h>
#include <math.h>
#include <stdlib.h>
int main()
{int R,C;scanf("%d %d", &R, &C);                             //扫描矩阵范围行*列:R*C//printf("%d", R);int people_num;scanf("%d", &people_num);                           //扫描客户数量//printf("%d", people_num);int R_location[people_num],C_location[people_num];  //初始化地图矩阵for(int i=0; i<people_num; i++){scanf("%d %d", &R_location[i],&C_location[i]);  //获得客户的地址//printf("\n%d %d\n", R_location[i],C_location[i]);}int send;scanf("%d", &send);                                 //配送站的数量int R_send[send],C_send[send];int distance_all[send][people_num];                 //配送站到客户的距离for(int i=0; i<send; i++){scanf("%d %d", &R_send[i],&C_send[i]);          //配送站的地址//printf("\n%d %d\n", R_send[i],C_send[i]);}//计算每个配送站到客户的距离并存储到distance_all中,并存储最大距离int max_distance=0;for(int i=0; i<send; i++){for(int j=0; j<people_num; j++){                distance_all[i][j] = abs(R_send[i]-R_location[j]) + abs(C_send[i] - C_location[j]);if(distance_all[i][j] > max_distance)max_distance = distance_all[i][j];printf("%d ",distance_all[i][j]);}}printf("\n");//从最短配送距离0到最长配送距离max_distance,因为最大的可能就是max_distanceint distance = 0,i=0,j=0;for(distance = 0; distance<=max_distance; distance++){for(i=0; i<people_num; i++){for(j=0; j<send; j++){                if(distance_all[j][i] <= distance)break;//printf("%d ",distance_all[i][j]);}if(j >= send)   //如果配送站到某一个用户距离比当前距离大,说明该用户无法被配送到,距离更新break;}if(i >= people_num) //如果有一个距离满足了所有用户都至少有一个配送站能到,说明该距离已经符号break;}printf("%d",distance);return 0;
}
http://www.r43.cn/news/149734.html

相关文章:

  • 做旅游攻略网站好国内重大新闻十条
  • 酒类网站建设方案电商是做什么的
  • 做淘宝网站java代码吗看广告赚钱的平台
  • 做动态二维码的网站云搜索
  • 个人网站开发工具免费网站代理访问
  • 合肥网站建设司图百度seo按天计费
  • 网站建设开发费怎么做账seo友情链接
  • wordpress文章会员seo的公司排名
  • 网站开发文档步骤应该怎么写dw网页制作详细步骤
  • 模版网站建设百度风云榜小说排行榜
  • 所有复刻手表网站市场seo是什么意思
  • 个人网站策划书模板徐州网页关键词优化
  • 做装修效果图的网站有哪些软件上海搜索排名优化公司
  • 怎么做本地网站三只松鼠搜索引擎推广
  • 做58同城网站需要多少钱谷歌seo网站建设
  • 如何做网站代理中国新闻网
  • 找公司做网站需要咨询什么问题石家庄百度搜索引擎优化
  • 昆山建设银行网站首页百度投放广告流程
  • 网站app制作hao123网址导航
  • 浙江省网站备案时间站长工具域名查询社区
  • 微信小程序可以做网站用网络优化大师手机版
  • wordpress 旅游优化法治化营商环境
  • 建立网站请示搜索推广是什么意思
  • 苏州网站开发建设方法百度地图排名可以优化吗
  • 西安市建设协会网站今日头条十大热点
  • 网站商城系统设计广州网页seo排名
  • 郴州市地图全图廊坊优化外包
  • 毕业设计做网站起个名字邯郸网站seo
  • php做网站特效搜狗seo优化
  • 小程序加盟平台seo网站首页推广