uva1598 大模擬 優先佇列

2021-09-25 01:14:11 字數 1928 閱讀 3902

思路:照著模擬就行

坑點:乙個訂單可能會被刪除多次,還有乙個點。。。優先佇列的top函式,返回的是乙個copy。。。

**如下:

/*

*/#define local

#include#include#include#include#include#include#include#include#includeusing namespace std;

#define maxn 10010

#define inf 40000000

#define ll long long

struct buy

}; struct node

;int main()

if(k.price<=nowbp)

);sellcnt[k.price]-=trade;

flag[k.id].size-=trade;

if(k.size==0)

nowbs-=trade;

if(nowbs==0) break;

}else break;

}if(nowbs)

);flag[id].cancel=0;flag[id].size=nowbs;flag[id].price=nowbp;

if(buycnt.find(nowbp)==buycnt.end()) buycnt[nowbp]=nowbs;

else buycnt[nowbp]+=nowbs;}}

else if(op[0]=='s')

if(k.price>=nowsp)//買價高於賣價

);buycnt[k.price]-=trade;

flag[k.id].size-=trade;

if(k.size==0)

nowss-=trade;

if(nowss==0) break;

}else break;

}if(nowss)

);flag[id].cancel=0;flag[id].size=nowss;flag[id].price=nowsp;

if(sellcnt.find(nowsp)==sellcnt.end()) sellcnt[nowsp]=nowss;

else sellcnt[nowsp]+=nowss;}}

else

}else}}

while(!sell.empty()&&flag[sell.top().id].cancel) sell.pop();

while(!buy.empty()&&flag[buy.top().id].cancel) buy.pop();

printf("quote ");

if(buy.empty()) printf("%d %d",0,0);

else printf("%d %d",buycnt[buy.top().price],buy.top().price);

if(sell.empty()) printf(" - %d %d\n",0,99999);

else printf(" - %d %d\n",sellcnt[sell.top().price],sell.top().price);

}} return 0;}/*

50buy 1 1

buy 2 1

buy 1000 2

sell 500 1

sell 503 1

cancel 1

11buy 100 35

cancel 1

buy 100 34

sell 150 36

sell 300 37

sell 100 36

buy 100 38

cancel 4

cancel 7

buy 200 32

sell 500 30

*/

UVA1203Argus(優先佇列)

題目 uva1203argus 優先佇列 題目大意 給你多個專案,每個專案有它發生的週期和對應的q num值。現在要求給出前k個專案,時間優先,同一時刻發生的先輸出q num值小的。解題思路 先將這幾個專案排下順序,一開始這些專案的發生時間就是週期,按照時間優先和同一時刻的q num優先的原則將這個...

UVa 10603 BFS 優先佇列

題目鏈結 解題報告 lrj紫書中路徑尋找問題的例題。大部分細節書中都有說明,不再贅述。說一點自己的感想。書裡面說演算法的正確性不是顯然的,可是我覺得應該是顯然的吧?每次找到佇列裡dist值最小的狀態,以它來更新ans值,並且拓展其他狀態。假如當前我們找到了乙個恰好有某個瓶子裡的水為d公升的狀態p,現...

UVA 10954 貪心 優先佇列

貪心策略 每次選取最小的兩個數相加,將和作為新的數加入序列,再從裡面取兩個最小的數.直到只剩下乙個數。優先佇列正好對付這題。ps 以前在學校oj做過幾乎一毛一樣的這題 ac include includeusing namespace std priority queue,greater q the...