網易2017春招 趕去公司 解題報告

2021-07-29 18:39:13 字數 1592 閱讀 3659

標籤(空格分隔): 牛客網

終於到週末啦!小易走在市區的街道上準備找朋友聚會,突然伺服器發來警報,小易需要立即回公司修復這個緊急bug。假設市區是乙個無限大的區域,每條街道假設座標是(x,y),小易當前在(0,0)街道,辦公室在(gx,gy)街道上。小易周圍有多個計程車打車點,小易趕去辦公室有兩種選擇,一種就是走路去公司,另外一種就是走到乙個計程車打車點,然後從打車點的位置坐計程車去公司。每次移動到相鄰的街道(橫向或者縱向)走路將會花費walktime時間,打車將花費taxitime時間。小易需要盡快趕到公司去,現在小易想知道他最快需要花費多少時間去公司。

輸入資料報括五行:

第一行為周圍計程車打車點的個數n(1 ≤ n ≤ 50)

第二行為每個計程車打車點的橫座標tx[i] (-10000 ≤ tx[i] ≤ 10000)

第三行為每個計程車打車點的縱座標ty[i] (-10000 ≤ ty[i] ≤ 10000)

第四行為辦公室座標gx,gy(-10000 ≤ gx,gy ≤ 10000),以空格分隔

第五行為走路時間walktime(1 ≤ walktime ≤ 1000)和taxitime(1 ≤ taxitime ≤ 1000),以空格分隔

輸出乙個整數表示,小易最快能趕到辦公室的時間

2

-2 -2

0 -2

-4 -2

15 3

42
首先,明白題意:上車點是固定的,不會說一邊往上車點走,車還會對面開過來接。這樣就很簡單了。

方法就是遍歷。把所有的上車點都去一趟,然後計算從去上車點到上車後到達公司的總時間。

另外,不能忘記,一定還要記錄下來徒步走到公司的時間,然後所有的時間找出最小值即可。

#include 

#include

using

namespace

std;

struct point point[51];

int getdistance(point a, point b)

int main()

for (int i = 1; i <= n; i++)

point end;

scanf("%d%d", &end.x, &end.y);

int walktime, taxitime;

scanf("%d%d", &walktime, &taxitime);

point start;

start.x = start.y = 0;

int ans[n];

for (int i = 0; i < n; i++)

int answer = 0x7fffffff;

for (int j = 0; j < n; ++j)

}int direct = getdistance(start, end);

int ansd = walktime * direct;

if (answer > ansd)

printf("%d\n", answer);

}return

0;}

2017 年 3 月 29 日

2 趕去公司 網易2017春招

程式設計題 趕去公司 時間限制 1秒 空間限制 32768k 終於到週末啦!小易走在市區的街道上準備找朋友聚會,突然伺服器發來警報,小易需要立即回公司修復這個緊急bug。假設市區是乙個無限大的區域,每條街道假設座標是 x,y 小易當前在 0,0 街道,辦公室在 gx,gy 街道上。小易周圍有多個計程...

網易2017春招筆試題(2)

程式設計題 集合 時間限制 1秒 空間限制 32768k 小易最近在數學課上學習到了集合的概念,集合有三個特徵 1.確定性 2.互異性 3.無序性.小易的老師給了小易這樣乙個集合 s 需要根據給定的w,x,y,z,求出集合中一共有多少個元素。小易才學習了集合還解決不了這個複雜的問題,需要你來幫助他。...

網易2017春招筆試題(3)

程式設計題 奇怪的表示式求值 時間限制 1秒 空間限制 32768k 常規的表示式求值,我們都會根據計算的優先順序來計算。比如 的優先順序就高於 但是小易所生活的世界的表示式規則很簡單,從左往右依次計算即可,而且小易所在的世界沒有除法,意味著表示式中沒有 只有 和 現在給出乙個表示式,需要你幫忙計算...