以下是我做題的經驗,如有錯誤,請諒解並指正
(s代表賣家,b代表買家)
1.最好不要以s的**來選取開盤價p0;題目中已說明:如果有多個符合條件的開盤價,你的程式應當輸出最高的那乙個。b**應比s的高
以s的**來選取p0的**(提交後錯誤):
**一:
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
struct pp;
int i,j,n;
int a[5001]=;
pp p[5001],s[5001],b[5001];
int is=0,ib=0;
double mpr=0,repr=0;
long long mam=0,ream=0;
long long alls=0.00,allb=0.00;
int main()
else
}for(i=1;ifor(i=0;is[j].pr)}}
for(i=0;ib[j].pr)}}
for(i=0;i=mpr)
}mam=min(alls,allb);
if(mam>ream)
}printf("%.2lf %lld\n",repr,ream);
return 0;
}以下為正確**:
**二#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
struct pp;
int i,j,n;
int a[5001]=;
pp p[5001],s[5001],b[5001];
int is=0,ib=0;
double mpr=0,repr=0;
long long mam=0,ream=0;
long long alls=0.00,allb=0.00;
int main()
else
}for(i=1;is[j].pr)}}
for(i=0;ib[j].pr)}}
for(i=ib-1;i>=0;i--)
alls+=s[j].am;
}mam=min(alls,allb);
if(mam>ream)
}printf("%.2lf %lld\n",repr,ream);
return 0;
}一下測試資料 就可得錯誤的原因:
sell 8.92 400
sell 9.0 1000
buy 8.88 175
buy 8.95 400
buy 100.0 50
**一的結果為8.92 400;
**二的結果為8.95 400;
ccf 集合競價
問題描述 試題編號 201412 3 試題名稱 集合競價 時間限制 1.0s 記憶體限制 256.0mb 問題描述 問題描述 某 交易所請你編寫乙個程式,根據開盤前客戶提交的訂單來確定某特定 的開盤價和開盤成交量。該程式的輸入由很多行構成,每一行為一條記錄,記錄可能有以下幾種 1.buy p s 表...
12 競態條件 時序競態
sleep函式幾點說明 1 sleep函式作用,讓程序睡眠。2 能被訊號打斷,然後處理訊號函式以後,就不再睡眠了。直接向下執行 3 sleep函式的返回值,是剩餘的秒數 sleep是可被中斷的睡眠,但不一定睡夠100s sleep是可中斷的睡眠 void handler int num if 1 v...
如何確定競品物件 如何收集競品資料
該什麼時候進行?通常來說沒有明確的時間規定,也沒有明確的次數限制。在產品開發迴圈中的任意乙個環節開始都可以得到大量有效的資訊。怎樣確定競品?看上去是個很容易的活,但其實則比你想象的難。我們需要在腦中建立乙個清晰的 標尺 來將各種潛在的對手分級。確定了競品名單之後做什麼?接下來就需要把每個競品的詳細資...