時間限制: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個數組成的數列,牛牛現在想取乙個連續的子串行,並且這個子串行還必須得滿足 最多隻改變乙個數,就可以使得這個連續的子串行是乙個嚴格上公升的子串行,牛牛想知道這個連續子串行最長的長度是多少。一開始看到這個題,總是被繞進 改變乙個數 中,就想說是不是遍歷陣列,然後每個數都嘗試改變...