2015Astar百度之星初赛 1001 超级赛亚ACMer
生活随笔
收集整理的這篇文章主要介紹了
2015Astar百度之星初赛 1001 超级赛亚ACMer
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
超級(jí)賽亞ACMer
Time Limit: 2000/1000 MS (Java/Others)????Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 916????Accepted Submission(s): 287
Problem Description 百小度是一個(gè)ACMer,也是一個(gè)超級(jí)賽亞人,每個(gè)ACMer都有一個(gè)戰(zhàn)斗力,包括百小度。
所謂超級(jí)賽亞人的定義,是說(shuō)如果在對(duì)抗中剛好接近極限狀態(tài),那就會(huì)激發(fā)斗志,實(shí)力提升.
具體來(lái)說(shuō),就是百小度現(xiàn)在要接受一些ACMer的挑戰(zhàn)了,這些ACMer有n個(gè)人,第i個(gè)人的戰(zhàn)斗力是a[i]。

百小度接下來(lái)可以自主安排與這n個(gè)ACMer的PK順序,他要想在PK賽中贏過(guò)另外一個(gè)ACMer,就必須使得自己的戰(zhàn)斗力不小于對(duì)方(平局情況他會(huì)按照百小度字典上的規(guī)則把自己排在第一).
如果百小度的戰(zhàn)斗力大于對(duì)方,那么百小度就會(huì)輕易獲勝,得不到鍛煉并且驕傲起來(lái),他以后的戰(zhàn)斗力將保持在這個(gè)值,再也不會(huì)發(fā)生改變。
如果百小度的戰(zhàn)斗力等于對(duì)方,那么百小度在獲勝的同時(shí)也會(huì)感到很吃力,但是這會(huì)激發(fā)百小度的斗志,使得他刻苦刷題,在下場(chǎng)PK賽之前,戰(zhàn)斗力最多提升k點(diǎn)(即可以提升0~k點(diǎn)任意值).
k是百小度的潛力提升上限,會(huì)被給定一個(gè)初始值,這個(gè)潛力提升上限k在后面的比賽中會(huì)下降.
每戰(zhàn)勝一個(gè)ACMer,這個(gè)潛力上限k將減少1(因?yàn)槌?jí)賽亞人百小度也會(huì)感到累),但k最低只會(huì)減少到0,即不會(huì)出現(xiàn)戰(zhàn)斗力下降的情況
。也就是第一次比賽如果激發(fā)了百小度的斗志,他能把戰(zhàn)斗力提升0~k的任一值,如果第二次比賽繼續(xù)被激發(fā)斗志,他能在第一次提升后的基礎(chǔ)上,把戰(zhàn)斗力再提升 0?max(0,k?1) ,依次類推…
m是百小度的初始戰(zhàn)斗力上限,也就是百小度第一次進(jìn)行PK賽的時(shí)候,可以選擇0~m的任意一個(gè)值作為他的戰(zhàn)斗力.
現(xiàn)在希望你編寫(xiě)程序,判斷一下百小度是否戰(zhàn)勝所有的ACMer.
Input 輸入包含多組數(shù)據(jù)(數(shù)據(jù)不超過(guò)500組)
第一行一個(gè)整數(shù)T,表示T組數(shù)據(jù)
對(duì)于每組數(shù)據(jù),第一行包括三個(gè)整數(shù) n,m,k(1≤n≤104,1≤m,k≤108)
第二行包括n個(gè)正整數(shù),表示彪形大漢的戰(zhàn)斗力(戰(zhàn)斗力為不超過(guò) 1012 的正整數(shù))
Output 對(duì)于每組數(shù)據(jù),先輸出一行Case #i:? (1≤i≤T)
如果百小度能打敗所有的ACMer,再輸出"why am I so diao?"
否則再輸出"madan!"
Sample Input 2 5 11 3 15 13 10 9 8 5 11 3 8 9 10 13 16
Sample Output Case #1: why am I so diao? Case #2: madan!Hint第一組樣例解釋 5個(gè)ACMer,初始戰(zhàn)斗力選擇范圍是[0,11],接下來(lái)每場(chǎng)戰(zhàn)斗力提升上限是3,2,1,0,0,...,0 百小度首先使得自己的初始戰(zhàn)斗力為10,打敗戰(zhàn)斗力為10的第一個(gè)ACMer, 然后選擇戰(zhàn)斗力提升3,變成13,打敗戰(zhàn)斗力為13的第二個(gè)ACMer, 然后選擇戰(zhàn)斗力提升2,變成15,打敗戰(zhàn)斗力為15的第三個(gè)ACMer, 之后再以任意順序打敗剩下的ACMer
Source 2015年百度之星程序設(shè)計(jì)大賽 - 初賽(1)
/* Problem : 5246 ( 超級(jí)賽亞ACMer ) Judge Status : Accepted RunId : 13813141 Language : G++ Author : 24862486 Code Render Status : Rendered By HDOJ G++ Code Render Version 0.01 Beta */ #include <cstdio> #include <cstring> #include <algorithm> using namespace std; typedef __int64 LL; const int maxn=10000+5; int T,n,m,k; LL man[maxn]; int main() {//freopen("D://imput.txt","r",stdin);scanf("%d",&T);for(int i=1; i<=T; i++) {scanf("%d%d%d",&n,&m,&k);for(int j=0; j<n; j++) {scanf("%I64d",&man[j]);}sort(man,man+n);bool success=false;if(m>=man[n-1])success=true;else if(m<man[0]) {}else {int ks,j;ks=lower_bound(man,man+n,m)-man;for(j=ks; j<n-1; j++) {if(man[j]+k<man[j+1])break;//分析得到,對(duì)于當(dāng)當(dāng)前這個(gè)數(shù)可以用前一位數(shù)到達(dá)//時(shí),證明他可以訪問(wèn)到//題目很簡(jiǎn)單,簡(jiǎn)單理解為,后面一位是否可以//通過(guò)前一位加上一個(gè)值而超越k--;}if (j>=n-1) success=true;}printf("Case #%d:\n",i);if(success) {printf("why am I so diao?\n");} else {printf("madan!\n");}}return 0; }
總結(jié)
以上是生活随笔為你收集整理的2015Astar百度之星初赛 1001 超级赛亚ACMer的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: CentOS 7 安装 MariaDB
- 下一篇: 文件及目录操作