2019網易校招筆試題 瞌睡

2021-09-24 20:12:07 字數 1240 閱讀 5959

小易覺得高數課太無聊了,決定睡覺。不過他對課上的一些內容挺感興趣,所以希望你在老師講到有趣的部分的時候叫醒他一下。你知道了小易對一堂課每分鐘知識點的感興趣程度,並以分數量化,以及他在這堂課上每分鐘是否會睡著,你可以叫醒他一次,這會使得他在接下來的k分鐘內保持清醒。你需要選擇一種方案最大化小易這堂課聽到的知識點分值。

第一行 n, k (1 <= n, k <= 105) ,表示這堂課持續多少分鐘,以及叫醒小易一次使他能夠保持清醒的時間。

第二行 n 個數,a1, a2, ... , an(1 <= ai <= 104) 表示小易對每分鐘知識點的感興趣評分。

第三行 n 個數,t1, t2, ... , tn 表示每分鐘小易是否清醒, 1表示清醒。

小易這堂課聽到的知識點的最大興趣值。
示例1

6 3

1 3 5 2 5 4

1 1 0 1 0 0

16
只能叫醒一次,直接處理,時間複雜度o(nk), 可以通過90%

#include #include using namespace std;

const int n = 100010;

int nums[n];

int t[n];

int helper(int i, int n, int k)

return res;

}int main()

} int res = 0;

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

} cout << res + sum << endl;

}

使用滑動視窗的辦法,計算連續k個0對應的最大值之和,時間複雜度優化到o(n)

通過。 注意,這裡視窗大小不一定就是k,所以迴圈的時候可以用補0的技巧處理。

總的來說,這道題目偏向模擬。

#include #include using namespace std;

const int n = 100010;

int nums[n];

int t[n];

int helper(int i, int n, int k)

return res;

}int main()

} int res = 0;

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

} cout << res + sum << endl;

}

2019網易校招

尺取法滑動視窗 時間複雜度o n 字首和後二分 時間複雜度o mlogn 暴力列舉每團雜物4 4次旋轉 時間複雜度o 256 n 1 include2 include3 include4 using namespace std 56 struct point 1011 point operator ...

2017網易校招內推筆試題

本人筆試的計算機視覺方向,程式設計題和其他研發崗位類似。歡迎小夥伴們一起討論出正確答案。共20個選擇題,3個程式設計題,1個簡答題 1.linux中,提供tcp ip包過濾功能的軟體叫什麼?a.iptables b.route c.rarp d.filter 2.設一組初始關鍵字序列為,則第4趟氣泡...

牛客網 2019校招 瞌睡

小易覺得高數課太無聊了,決定睡覺。不過他對課上的一些內容挺感興趣,所以希望你在老師講到有趣的部分的時候叫醒他一下。你知道了小易對一堂課每分鐘知識點的感興趣程度,並以分數量化,以及他在這堂課上每分鐘是否會睡著,你可以叫醒他一次,這會使得他在接下來的k分鐘內保持清醒。你需要選擇一種方案最大化小易這堂課聽...