日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

2015Astar百度之星初赛 1001 超级赛亚ACMer

發(fā)布時(shí)間:2024/3/13 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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(1n104,1m,k108)

第二行包括n個(gè)正整數(shù),表示彪形大漢的戰(zhàn)斗力(戰(zhàn)斗力為不超過(guò) 1012 的正整數(shù))
Output 對(duì)于每組數(shù)據(jù),先輸出一行Case #i:? (1iT)

如果百小度能打敗所有的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)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。