先按di排序,(從小到大)。然後依次完成合同,若發現第i個合同無法在截止日期前完成,便從之前已經完成的任務中選乙個aj最大的合同,付錢來使得這個合同盡快完成。
#include
#include
#include
#include
#include
using namespace std;
struct node
{int q;
int w;
bool operator < (const node& t) const {
return qq;
int main()
{int a;
//priority_queueq;
while(~scanf("%d",&a))
{while(!q.empty())
q.pop();
for(int i=0;iyy[i].e&&!q.empty())
{node ee=q.top();
q.pop();
if(ee.w
poj 2010(優先佇列)
題意 奶牛大學 奶大招生,從c頭奶牛中招收n頭。它們分別得分score i,需要資助學費aid i。希望新生所需資助不超過f,同時得分中位數最高。求此中位數。解題思路 這裡要求最大中位數,中位數肯定是在這些人中間,故可以列舉中位數,可以先對分數進行排序,然後用二分去找最大中位數。每次列舉的中位數應該...
POJ 2431(優先佇列)
題意 從起點到終點距離為n,走1單位路程消耗1單位油,路上會有m個加油站分別出現在si的位置,路過加油站時可以選擇是否加油。問到達加油站最少需要加幾次油,不能到輸出 1.分析 整體上來看,汽車每經過乙個加油站就擁有了在這個加油站加油的能力,可以將加油站加入優先佇列,沒油時優先選取大的。收穫 路過即獲...
POJ 2010 優先佇列
題目大意 有c個牛,每個牛有分數c和學費f,現一共總可以提供f的學費給n個牛,問所有情況中c的中位數最大是多少 題目解析 首先按照c排序,再列舉每頭牛作為中位數進行判斷,先預處理出l和r陣列,代表第i頭牛左邊和右邊n 2頭牛f總和的最小值 一開始看著書上以為是二分,還能過,其實是不可以的,因為那個條...