小易覺得高數課太無聊了,決定睡覺。不過他對課上的一些內容挺感興趣,所以希望你在老師講到有趣的部分的時候叫醒他一下。你知道了小易對一堂課每分鐘知識點的感興趣程度,並以分數量化,以及他在這堂課上每分鐘是否會睡著,你可以叫醒他一次,這會使得他在接下來的k分鐘內保持清醒。你需要選擇一種方案最大化小易這堂課聽到的知識點分值。
第一行 n, k (1 <= n, k <= 105) ,表示這堂課持續多少分鐘,以及叫醒小易一次使他能夠保持清醒的時間。第二行 n 個數,a1, a2, ... , an(1 <= ai <= 104) 表示小易對每分鐘知識點的感興趣評分。
第三行 n 個數,t1, t2, ... , tn 表示每分鐘小易是否清醒, 1表示清醒。
小易這堂課聽到的知識點的最大興趣值。示例1
6 31 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分鐘內保持清醒。你需要選擇一種方案最大化小易這堂課聽...