此篇較長,為了節省篇幅,提前說一下哈,不是滿分**就不展開詳細講述了。
↓仔細看題↓
時間限制: 1000 ms 空間限制: 262144 kb
題目描述
今天小y準備選購一批魂靈。具體來說,這批魂靈共有n個,每乙個魂靈都具有乙個力量pi。小y特別喜歡 1 號魂靈,所以小 y一定會購買1號魂靈。
在購買完小y想要的魂靈之後,小y每天會分配b點魂力給魂靈們,每乙個魂靈得到的魂力則由它的力量值決定,假設所有購買的魂靈力量值總和為 sum,那麼i號魂靈得到的魂力則為(pi/sum)*b。
舉例而言,若小y購買的3個魂靈力量值分別為2、3、5,小y每天會分配5點魂力給它們,那麼它們每天得到的魂力就分別是1點、1.5點、2.5點。
同時,由於小y特別喜歡1號魂靈,所以小y要求 1 號魂靈每天得到的魂力值不低於 a。
現在小y想要知道他至少需要放棄多少只魂靈。
輸入
第一行三個整數n、b、a,含義見題面描述。
第二行包含n個整數pi,分別表示每個魂靈的力量值。
輸出
一行乙個整數,表示小y至少需要放棄多少只魂靈。
樣例輸入1
4 10 3
2 2 2 2
樣例輸入2
4 80 20
3 2 1 4
樣例輸入3
5 10 10
1000 1 1 1 1
樣例輸出
樣例輸出1
1樣例輸出2
0樣例輸出3
4資料範圍限制
對於30%的資料,n≤5。對於 60%的資料,n≤20。
對於100%的資料,n≤1000。
提示
在樣例1中,小y至少需要放棄 2~4 中的某乙個魂靈。
在樣例2中,1號魂靈得到的魂力足夠,小y不需要放棄魂靈。
在樣例3中,小y需要放棄 2~5 中的所有魂靈。
這道題目一開始做的時候,我沒有考慮周到,先看看零分**吧↓
//0分
#include
using
namespace std;
long
long n,b,a;
double k[
1001
],p[
1001
],s,mn=
-9999999
;int
main()
for(
int i=
1;i<=n;i++)}
if(k[1]
>=a)
else
}
這段**是我用了較少的時間做出來的第一版本,當時頭腦一熱,就先求出每只魂靈得到的魂力值,然後求出最小值,再看看需不需要拋棄,如果要就拋棄最小值的那只魂靈。結果分數出來,當時我就傻了,怎麼零分了呢?◔ ‸◔?
頓時我腦袋裡又閃過一絲想法,於是就有了接下來的n個12.5分**(這裡僅展示第乙個12.5分**)↓
分
#include
using
namespace std;
long
long n,b,a,s,p[
1001
],ans;
double k[
1001];
intmain()
for(
int i=
1;i<=n;i++)if
(k[1
]>=a)
sort
(k+2
,k+n+1)
;for
(int i=n;i>=
2;i--)}
cout
}
這份**我稍加修飾,先把除了第一只魂靈以外的其他魂靈得到的魂力值排個序,然後再依次拋棄,直到不需要拋棄為止。這份**我感覺好像對了,但是還是只拿了12.5分。
接下來看看我的25分**吧,這個是我的公升級版**,嗯,但是成績也不咋地。↓
//25
#include
using
namespace std;
long
long n,b,a,s,p[
1001
],ans;
double k[
1001];
intmain()
k[1]=
(p[1]*
1.0/s)
*b;//求出第一只魂靈得到的魂力值
for(
int i=
2;i<=n;i++
)else
if(k[i]
<
(a-k[1]
))else}if
(k[1
]>=a)
else
}
你肯定已經發現了,這份**漏洞極多,多到數不過來,天哪,太可怕了ヽ(*。>д<)o゜(具體解析看注釋)
不多說了,接下來,你猜我改對了嗎?然鵝,並沒有⊙﹏⊙‖∣,接下來我的37.5分**出爐了↓
#include
using
namespace std;
int temp1,ans,n,a,b,x,y,j,f[
1001
],temp2;
intmain()
if(x*
1.0/temp1*b>=a)
sort
(f+2
,f+n)
; y=n-1;
while
(x*1.0
/temp1*bcout
}
這份**不多解釋,就是25分**的公升級版而已,沒想到就多了12.5分。(__
) 嘻嘻
接下來,歷時兩天的ac**終於閃亮✧(≖ ◡ ≖✿)登場了↓
#include
using
namespace std;
int sum,ans,n,a,b,x,y,j,f[
1001
],maxn;
intmain()
if(x*
1.0/sum*b>=a)
sort
(f+2
,f+n+1)
;//排個序
y=n-1;
//目前魂靈數量
while
(x*1.0
/sum*bcout
}
(詳見注釋,不多解釋)
(第一次寫部落格,多多指教)
leetCode題目解析
給出兩個非空的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照逆序的方式儲存的,並且它們的每個節點只能儲存一位數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8原...
CourseGrading 題目解析
問題描述 若某元素在一組數中比它大元素越多,則說明這個數在這組數的值就越小。現請你統計出陣列中的每個元素,數一數該陣列有多少個元素比它大。輸入形式 第一行 n 第二行 n個整數 輸出形式 n個整數,各數這之間有1個空格 樣例輸入 5 4 6 12 16 8 樣例輸出 4 3 1 0 2個人答案 in...
昨天的題目解析
no.1 linux系統中,使用者檔案描述符0表示 a.標準輸入裝置檔案描述符 b.標準輸出裝置檔案描述符 c.管道檔案描述符 d.標準錯誤輸出裝置描述符 答案 a 檔案描述符0 標準輸入裝置 檔案描述符1 標準輸出裝置 檔案描述符2 標準錯誤輸出裝置 no.2 設x和y是二叉樹中的任意兩個節點,若...