亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

CCF201412-3 集合競價(100分)

2019-11-10 17:50:01
字體:
來源:轉載
供稿:網友

問題鏈接:CCF201412試題。

問題描述

  某股票交易所請你編寫一個程序,根據開盤前客戶提交的訂單來確定某特定股票的開盤價和開盤成交量。  該程序的輸入由很多行構成,每一行為一條記錄,記錄可能有以下幾種:  1. buy p s 表示一個購買股票的買單,每手出價為p,購買股數為s。  2. sell p s 表示一個出售股票的賣單,每手出價為p,出售股數為s。  3. cancel i表示撤銷第i行的記錄。  如果開盤價為p0,則系統可以將所有出價至少為p0的買單和所有出價至多為p0的賣單進行匹配。因此,此時的開盤成交量為出價至少為p0的買單的總股數和所有出價至多為p0的賣單的總股數之間的較小值。  你的程序需要確定一個開盤價,使得開盤成交量盡可能地大。如果有多個符合條件的開盤價,你的程序應當輸出最高的那一個。  輸入數據有任意多行,每一行是一條記錄。保證輸入合法。股數為不超過108的正整數,出價為精確到恰好小數點后兩位的正實數,且不超過10000.00。  你需要輸出一行,包含兩個數,以一個空格分隔。第一個數是開盤價,第二個是此開盤價下的成交量。開盤價需要精確到小數點后恰好兩位。問題分析:這是一個競價匹配的問題。數據可以存儲在結構數組中,但未必是好的方案。使用兩個優先隊列,一個用于存儲購入訂單,按價格從大到小排列;另外一個用于存儲賣出訂單,按價格從小到大排列;然后進行價格的匹配處理。

程序說明:(略)。

提交后得100分的C++語言程序如下:

/* CCF201412-3 集合競價 */#include <iostream>#include <queue>#include <cstring>#include <cstdio>using namespace std;const int N = 5000;struct trading {    int orderno;    char t;    float PRice;    long long quantity;    bool Operator < (const trading& n) const {        if(t == 's')            return price > n.price;        else // t == 'b'            return price < n.price;    }};bool cancelflag[N+1];int main(){    trading t;    priority_queue<trading> sell, buy;    string strading;    // 變量初始化    memset(cancelflag, false, sizeof(cancelflag));    // 輸入數據    int no = 0, tno;    while(cin >> strading) {        if(strading[0] == 'c') {            // 設置交易號            no++;            // 輸入取消的交易號            cin >> tno;            // 設置取消標志            cancelflag[tno] = true;        } else if(strading[0] == 'b' || strading[0] == 's') {            // 設置交易號            t.orderno = ++no;            // 輸入交易價格和數量            cin >> t.price >> t.quantity;            // 將交易分別放入買入和賣出的優先隊列            if(strading[0] == 'b') {                t.t = strading[0];                buy.push(t);            } else {    // t.trading[0] == 's'                t.t = strading[0];                sell.push(t);            }        } else            break;    }    // 集合競價處理    t.price = 0;    t.quantity = 0;    trading b, s;    for(;;) {        // 清除被取消的訂單(同時將隊頭放在b和s中)        while(!buy.empty()) {            b = buy.top();            if(cancelflag[b.orderno])                buy.pop();            else                break;        }        while(!sell.empty()) {            s = sell.top();            if(cancelflag[s.orderno])                sell.pop();            else                break;        }        // 買賣隊列只要有一個為空,則處理結束        if(buy.empty() || sell.empty())            break;        // 集合競價處理        if(b.price >= s.price) {            t.quantity += min(b.quantity, s.quantity);            t.price = b.price;            if(b.quantity == s.quantity) {                buy.pop();                sell.pop();            } else if(b.quantity > s.quantity) {                b.quantity -= s.quantity;                buy.pop();                buy.push(b);                sell.pop();            } else {    // b.quantity < s.quantity                buy.pop();                s.quantity -= b.quantity;                sell.pop();                sell.push(s);            }        } else            break;    }    // 輸出結果    printf("%.2f", t.price);    cout << " " << t.quantity << endl;    return 0;}/*測試樣例:sell 8.88 100sell 8.88 175sell 9.00 400buy 8.88 400cancel 1sell 100.00 508.88 175buy 9.25 100buy 8.88 175buy 9.00 400sell 8.88 400cancel 1buy 100.00 509.00 400buy 9.25 100buy 8.88 175buy 9.00 400sell 8.79 1501cancel 1cancel 29.00 400buy 9.25 110buy 8.88 300buy 18.88 200sell 8.88 201sell 9.25 1009.25 301*/


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美噜噜久久久xxx| 91视频九色网站| 中文字幕亚洲欧美日韩高清| 日本精品va在线观看| 国产欧美一区二区| 国产91精品久久久| 亚洲日本中文字幕| 亚洲天堂影视av| 久久乐国产精品| 欧美成人午夜剧场免费观看| 国产精品色视频| 美女扒开尿口让男人操亚洲视频网站| 操人视频在线观看欧美| 操人视频在线观看欧美| 国产午夜精品免费一区二区三区| 91精品视频在线播放| 亚洲精品白浆高清久久久久久| 国产女同一区二区| 欧美日韩国产激情| 欧美黑人性猛交| 亚洲精品一区二区三区不| 国产福利视频一区二区| 国产精品美女久久久久av超清| 永久免费毛片在线播放不卡| 久久福利网址导航| 一本色道久久88综合日韩精品| 九九热最新视频//这里只有精品| 亚洲一级一级97网| 伊人亚洲福利一区二区三区| 亚洲精品国产品国语在线| 亚洲网站在线看| 欧美片一区二区三区| 国产在线播放不卡| 人妖精品videosex性欧美| 日韩av网址在线| 国产xxx69麻豆国语对白| 亚洲欧洲在线观看| 久久精品夜夜夜夜夜久久| 久久人人看视频| 欧美日韩国内自拍| 97视频免费观看| 国产91网红主播在线观看| 成人午夜在线视频一区| 国产视频久久久| 亚洲高清色综合| 性色av香蕉一区二区| 高清欧美性猛交| 精品久久久久久久久久久久久| 久久久久久久电影一区| 久久久久国产精品一区| 国产丝袜视频一区| 久久精品国产69国产精品亚洲| 伊人一区二区三区久久精品| 国产丝袜精品第一页| 久久av资源网站| 一区二区三区动漫| 亚洲xxx大片| 日韩av电影中文字幕| 久久影视电视剧免费网站清宫辞电视| 综合国产在线视频| 国产精品999| 日韩动漫免费观看电视剧高清| 免费不卡欧美自拍视频| 国产精品一区电影| 欧美色播在线播放| 成人免费视频97| 久久视频在线免费观看| 亚洲国产精品成人va在线观看| 日韩av电影中文字幕| 中文字幕国内精品| 日韩毛片在线观看| www.欧美免费| 成人亚洲欧美一区二区三区| 亚洲在线视频观看| 深夜福利亚洲导航| 亚洲国产成人爱av在线播放| 一区二区三区高清国产| 97视频免费观看| 一区二区欧美在线| 国产精品美女久久久久久免费| 久久久久久久久国产| 欧美日韩国产中文字幕| zzijzzij亚洲日本成熟少妇| 国产精品久久久av久久久| 亚洲系列中文字幕| 中文字幕自拍vr一区二区三区| 91久久夜色精品国产网站| 26uuu亚洲国产精品| 欧美黄色片免费观看| 91在线网站视频| 亚洲一级一级97网| 国产亚洲日本欧美韩国| 青青草原成人在线视频| 91av福利视频| 精品亚洲男同gayvideo网站| 亚洲国产中文字幕久久网| 欧美成人精品在线观看| 久久人人爽亚洲精品天堂| 97超级碰碰碰久久久| 日韩精品极品在线观看播放免费视频| 国产成人在线一区| 亚洲精品电影在线| 亚洲精品久久7777777| 欧美极品少妇xxxxⅹ喷水| 精品日韩美女的视频高清| 欧美日韩成人网| 精品高清一区二区三区| 亚洲天堂免费视频| 欧美激情精品久久久久久黑人| 色哟哟亚洲精品一区二区| 91在线观看免费网站| 7777kkkk成人观看| 亚洲电影av在线| 蜜臀久久99精品久久久无需会员| 久久精品一区中文字幕| 欧美精品一本久久男人的天堂| 97久久精品人人澡人人爽缅北| 亚洲国产美女久久久久| 国产不卡av在线免费观看| 久久久久国产精品免费| 亚洲国产精品女人久久久| 欧美巨猛xxxx猛交黑人97人| 国产精品99久久久久久白浆小说| 尤物yw午夜国产精品视频明星| 欧美视频国产精品| 亚洲一区免费网站| 亚洲欧美日韩直播| 国产精品永久在线| 日韩欧美aⅴ综合网站发布| 国产成一区二区| 日韩大陆毛片av| 国产小视频国产精品| 揄拍成人国产精品视频| 精品香蕉在线观看视频一| 日韩精品高清在线| 亚洲视频视频在线| 久久精品国亚洲| 动漫精品一区二区| 亚洲天堂2020| 欧美人在线视频| 超碰日本道色综合久久综合| 2018中文字幕一区二区三区| 一区国产精品视频| 欧美国产日韩精品| 亚洲欧美日韩一区在线| 日韩免费看的电影电视剧大全| 久久综合亚洲社区| 欧美精品激情视频| 欧美在线视频网站| 亚洲精品视频网上网址在线观看| 欧美另类在线观看| 成人午夜高潮视频| 久久久电影免费观看完整版| 91免费在线视频| 久久久视频免费观看| 成人激情视频免费在线| 成人免费福利视频| 久久久久久久久爱| 亚洲香蕉av在线一区二区三区| 国产一区私人高清影院| 亚洲欧美日韩成人| 日本一区二区在线免费播放| 亚洲精品自拍偷拍| 国产精品自在线|