牛客網 牛牛找工作

2021-08-18 11:38:10 字數 1485 閱讀 4432

時間限制:2秒

空間限制:65536k

為了找到自己滿意的工作,牛牛收集了每種工作的難度和報酬。牛牛選工作的標準是在難度不超過自身能力值的情況下, 牛牛選擇報酬最高的工作。在牛牛選定了自己的工作後,牛牛的小夥伴們來找牛牛幫忙選工作,牛牛依然使用自己的標 准來幫助小夥伴們。牛牛的小夥伴太多了,於是他只好把這個任務交給了你。 輸入描述: 每個輸入包含乙個測試用例。 每個測試用例的第一行包含兩個正整數,分別表示工作的數量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

輸出100

1000

1001

超時演算法:
#include #include #include #include #include#includeusing namespace std;

struct job job[100001];

int ai;

bool cmp(struct job a, struct job b)

int main()

sort(job, job + n, cmp);

for (int i = 0; i < m; i++) job[100001];

struct ai ai[100001];

bool cmp(struct job a, struct job b)

bool cmp2(struct ai a, struct ai b)

bool c***(struct ai a, struct ai b)

int main()

sort(job, job + n, cmp);

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

sort(ai, ai + m, cmp2);

//多思考,

//人的能力 10 30 45 70

//工作需要的能力 12 13 14 15 37 59

// 30人的能力 大於 工作的能力12 13 14 15 所以選其中最大的賦值給30能力的人

int j=0;

int maxmoney=0;

for(int i=0;iai[i].power)

maxmoney=max(maxmoney,job[j].pi);

j++;

}ai[i].money=maxmoney;

}sort(ai, ai + m, c***);

for(int i=0;i

牛客網 牛牛找工作 python解法

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

牛牛找工作

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

牛客網 牛牛的數列

題目描述 牛牛現在有乙個n個數組成的數列,牛牛現在想取乙個連續的子串行,並且這個子串行還必須得滿足 最多隻改變乙個數,就可以使得這個連續的子串行是乙個嚴格上公升的子串行,牛牛想知道這個連續子串行最長的長度是多少。一開始看到這個題,總是被繞進 改變乙個數 中,就想說是不是遍歷陣列,然後每個數都嘗試改變...