為了找到自己滿意的工作,牛牛收集了每種工作的難度和報酬。牛牛選工作的標準是在難度不超過自身能力值的情況下,牛牛選擇報酬最高的工作。在牛牛選定了自己的工作後,牛牛的小夥伴們來找牛牛幫忙選工作,牛牛依然使用自己的標準來幫助小夥伴們。牛牛的小夥伴太多了,於是他只好把這個任務交給了你。
輸入描述:
每個輸入包含乙個測試用例。輸出描述:每個測試用例的第一行包含兩個正整數,分別表示工作的數量n(n<=100000)和小夥伴的數量m(m<=100000)。
接下來的n行每行包含兩個正整數,分別表示該項工作的難度di(di<=1000000000)和報酬pi(pi<=1000000000)。
接下來的一行包含m個正整數,分別表示m個小夥伴的能力值ai(ai<=1000000000)。
保證不存在兩項工作的報酬相同。
對於每個小夥伴,在單獨的一行輸出乙個正整數表示他能得到的最高報酬。乙個工作可以被多個人選擇。輸入例子1:
3 3輸出例子1:1 100
10 1000
1000000000 1001
9 10 1000000000
100這道題跟我們之前做的滴滴的那個餐飲的筆試題一毛一樣,唯一不同的是需要記錄一下同學們的id。1000
1001
#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輸出例子1:3.x.
11...xx....xx
1貪婪法3
#include
using namespace std;
int main()
for(int i=0;icount_r)
}else if(count_r>count_l)
}else
return 0;
}#include
using
namespace
std;
int
main()
}
cout<
}
return
0;
}
思路是首先對所有矩形排序,按照底邊座標值公升序。
考慮到若將平面按照所有矩形的的底邊座標值橫向劃分,每個劃分中的最大重合情況總是出現在該劃分底部,且等價一維的區間重合問題。如圖所示
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輸出例子1:5 0
6 0
7 0
59 6 59
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:1 2 4
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表...