筆試題練習(網易2019實習)

2021-08-20 12:46:53 字數 4659 閱讀 1743

為了找到自己滿意的工作,牛牛收集了每種工作的難度和報酬。牛牛選工作的標準是在難度不超過自身能力值的情況下,牛牛選擇報酬最高的工作。在牛牛選定了自己的工作後,牛牛的小夥伴們來找牛牛幫忙選工作,牛牛依然使用自己的標準來幫助小夥伴們。牛牛的小夥伴太多了,於是他只好把這個任務交給了你。

輸入描述:

每個輸入包含乙個測試用例。

每個測試用例的第一行包含兩個正整數,分別表示工作的數量n(n<=100000)和小夥伴的數量m(m<=100000)。

接下來的n行每行包含兩個正整數,分別表示該項工作的難度di(di<=1000000000)和報酬pi(pi<=1000000000)。

接下來的一行包含m個正整數,分別表示m個小夥伴的能力值ai(ai<=1000000000)。

保證不存在兩項工作的報酬相同。

輸出描述:

對於每個小夥伴,在單獨的一行輸出乙個正整數表示他能得到的最高報酬。乙個工作可以被多個人選擇。
輸入例子1:

3 3 

1 100

10 1000

1000000000 1001

9 10 1000000000

輸出例子1:

100 

1000

1001

這道題跟我們之前做的滴滴的那個餐飲的筆試題一毛一樣,唯一不同的是需要記錄一下同學們的id。

#include

#include

#include

using namespace std;

class work

};class student

};bool sortbypi(const work &w1,const work &w2)  

else

sort(vec_work.begin(),vec_work.end(),sortbypi);

for(int j=0;j>vec_student[j].ai;

vec_student[j].id=j;

}sort(vec_student.begin(),vec_student.end(),sortbyai);

int worknum=0,ans=0;

int max_pi[101000];

for(int i=0;i=vec_work[worknum].di )

max_pi[vec_student[i].id]=ans;

}for(int i=0;i題目:

q得到乙個神奇的數列: 1, 12, 123,...12345678910,1234567891011...。

並且小q對於能否被3整除這個性質很感興趣。

小q現在希望你能幫他計算一下從數列的第l個到第r個(包含端點)有多少個數可以被3整除。

輸入描述:

輸入包括兩個整數l和r(1 <= l <= r <= 1e9), 表示要求解的區間兩端。
輸出描述:

輸出乙個整數, 表示區間內能被3整除的數字個數。
輸入例子1:

2 5
輸出例子1:

3
#include

using namespace std;

int main()

}cout小q正在給一條長度為n的道路設計路燈安置方案。

為了讓問題更簡單,小q把道路視為n個方格,需要照亮的地方用'.'表示, 不需要照亮的障礙物格仔用'x'表示。

小q現在要在道路上設定一些路燈, 對於安置在pos位置的路燈, 這盞路燈可以照亮pos - 1, pos, pos + 1這三個位置。

小q希望能安置盡量少的路燈照亮所有'.'區域, 希望你能幫他計算一下最少需要多少盞路燈。

輸入描述:

輸入的第一行包含乙個正整數t(1 <= t <= 1000), 表示測試用例數

接下來每兩行乙個測試資料, 第一行乙個正整數n(1 <= n <= 1000),表示道路的長度。

第二行乙個字串s表示道路的構造,只包含'.'和'x'。

輸出描述:

對於每個測試用例, 輸出乙個正整數表示最少需要多少盞路燈。
輸入例子1:

2

3.x.

11...xx....xx

輸出例子1:

1

3

貪婪法

#include

using namespace std;

int main()

for(int i=0;icount_r)

}else if(count_r>count_l)

}else

return 0;

}#include

usingnamespacestd;

intmain()

}

cout<}

return0;

}

思路是首先對所有矩形排序,按照底邊座標值公升序。

考慮到若將平面按照所有矩形的的底邊座標值橫向劃分,每個劃分中的最大重合情況總是出現在該劃分底部,且等價一維的區間重合問題。如圖所示

cout牛牛總是睡過頭,所以他定了很多鬧鐘,只有在鬧鐘響的時候他才會醒過來並且決定起不起床。從他起床算起他需要x分鐘到達教室,上課時間為當天的a時b分,請問他最晚可以什麼時間起床

輸入描述:

每個輸入包含乙個測試用例。

每個測試用例的第一行包含乙個正整數,表示鬧鐘的數量n(n<=100)。

接下來的n行每行包含兩個整數,表示這個鬧鐘響起的時間為hi(0<=a<24)時mi(0<=b<60)分。

接下來的一行包含乙個整數,表示從起床算起他需要x(0<=x<=100)分鐘到達教室。

接下來的一行包含兩個整數,表示上課時間為a(0<=a<24)時b(0<=b<60)分。

資料保證至少有乙個鬧鐘可以讓牛牛及時到達教室。

輸出描述:

輸出兩個整數表示牛牛最晚起床時間。
輸入例子1:

3 

5 0

6 0

7 0

59 6 59

輸出例子1:

6 0
這個題目沒啥好分析的...

#include

using namespace std;

int main()

cin>>x>>hi>>mi;

goclass = hi * 60 + mi;

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

cout 牛牛準備參加學校組織的春遊, 出發前牛牛準備往揹包裡裝入一些零食, 牛牛的揹包容量為w。

牛牛家裡一共有n袋零食, 第i袋零食體積為v[i]。

牛牛想知道在總體積不超過揹包容量的情況下,他一共有多少種零食放法(總體積為0也算一種放法)。

輸入描述:

輸入包括兩行

第一行為兩個正整數n和w(1 <= n <= 30, 1 <= w <= 2 * 10^9),表示零食的數量和揹包的容量。

第二行n個正整數v[i](0 <= v[i] <= 10^9),表示每袋零食的體積。

輸出描述:

輸出乙個正整數, 表示牛牛一共有多少種零食放法。
輸入例子1:

3 10

1 2 4

輸出例子1:

8
例子說明1:

三種零食總體積小於10,於是每種零食有放入和不放入兩種情況,一共有2*2*2 = 8種情況。
如果全部能裝下,則是2^n,如果不能全部裝下,用深度優先搜尋。#include

#include

using namespace std;

long long nums = 1;

void dfs(vector& array, int size , long long w, long long sum, int pos)}}

int main()

if(total <= w)

else

cout<

return 0;

}

網易遊戲實習筆試題

時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 電子數字在生活中很常見,而許多的電子數字是由led數碼管製作而成。數字led數碼管一般由7個發光二極體封裝在一起,組成 8 字型,引線在內部連線完成。如下圖所示,我們可以對每個發光管進行編碼從1到7。而數字0到數字9可以由這七...

網易遊戲2019暑期實習開發崗筆試題

第二題第三題 第四題簽到題,給出一句話,比如 how are you 反轉輸出,如 you are how 呃呃呃。給出n個數字,找出有多少組 三個數的最大公約數為1 找出多少組 兩個互質的數字 是用莫比烏斯反演,三個數,抱歉,沒想到怎麼做。據說暴力能過百分之50資料。有n個人要做過山車,過山車有限...

2019 網易實習生筆試題目解答

牛牛去犇犇老師家補課,出門的時候面向北方,但是現在他迷路了。雖然他手裡有一張地圖,但是他需要知道自己面向哪個方向,請你幫幫他。輸入描述 每個輸入包含乙個測試用例。每個測試用例的第一行包含乙個正整數,表示轉方向的次數n n 1000 接下來的一行包含乙個長度為n的字串,由l和r組成,l表示向左轉,r表...