COdevs 2823 鎖妖塔

來源:互聯網
上載者:User

標籤:開始   default   animate   mil   pre   block   大量   icon   輸出   

2823 鎖妖塔

 時間限制: 1 s    空間限制: 128000 KB    題目等級 : 黃金 Gold

題目描述 Description

瑣妖塔會在一會兒後倒塌。大量妖魔湧出塔去,塔內的樓梯都擠滿了人(哦,錯了,是妖),(那他們怎麼不飛下去--)要求是,景天一行一定要下塔,瑣妖塔一共N層,但是他突然大發慈悲,覺得妖怪是無辜,所以他不想踩死這些妖魔,所以他的速度最多比妖怪速度大K(否則會踩死妖怪的),並且速度不能比妖怪們慢,否則會被踩死。瑣妖塔一共有N層,並且每層怪物逃跑的速度都不相同,景天每下一層,可以選擇將他的速度加快一個單位或者減慢一個單位或者保持原來的速度不變。並且他下每一層的速度之和除以(N-1)要盡量大。當然跑下樓時他一定要活著。
現在景天剛拿到鎮妖劍,頭有點熱,不能思考了,請你編個程式幫幫他吧!
提示:1樓不需要再下了,N層樓只需要下N-1層。並且在第N層樓到N-1層時必須為初始速度。

輸入描述 Input Description

第一行,三個整數N,V(初始速度),K(最多比其他妖快的速度值)
第二行,N-1個整數,分別代表從第二層到第N層的妖怪的速度
其中2〈=N〈=100,0〈=K〈=100,1〈=V〈=100。

輸出描述 Output Description

若能下樓,輸出速度之和除以(N-1),保留兩位小數。
若不能,那就仰天大吼一聲,輸出“REN JIU SHI BU NENG REN CI!”(不含引號)

範例輸入 Sample Input

Input1
3 3 2
2 2

Input2
3 3 0
2 2

範例輸出 Sample Output

Output1
3.50
Output2
REN JIU SHI BU NENG REN CI!

資料範圍及提示 Data Size & Hint

RT

 1 #include<cstdio> 2 #include<queue> 3 #include<algorithm> 4 using namespace std; 5 typedef double db; 6 int n,v,k; 7 struct meico{ 8     int v; 9     int ceng;10     int tot;11 };12 db ans=0;13 const int maxn=1000;14 int spd[maxn],cg[]={0,1,0,-1},maxs[maxn];15 bool flag;16 void dfs(int vv,int ceng,int tot){17     if(ceng==1){18         flag=1;ans=max(ans,(db)((db)(tot)/db(n-1)));19         return ;20     }21     if(flag) return;22     for(int i=1;i<=3;i++){23         int v1=vv+cg[i];24         if(vv>=spd[ceng-1]&&(vv-spd[ceng-1])<=k){25             if(ceng-1!=1)26               dfs(v1,ceng-1,tot+v1);27             else dfs(v1,ceng-1,tot);28         }29     }30 }31 int main()32 {33     scanf("%d%d%d",&n,&v,&k);34     for(int i=1;i<n;i++)35       scanf("%d",&spd[i]);36     37     if(v>=spd[n-1]&&v-spd[n-1]<=k){38         dfs(v,n,v);39         if(ans!=0)40           printf("%.2lf\n",ans);41         else printf("REN JIU SHI BU NENG REN CI!"); 42     }43     else{44         printf("REN JIU SHI BU NENG REN CI!");45         return 0;46     }47     48     return 0;49 }

剛開始一見這題,仙劍奇俠傳!!!!!夢幻西遊!!!!!!!鬼吹燈!!!!!!!!

由於題目下面寫的寬搜,於是我一開始就打了寬搜….結果3^100直接MLE。 
所以用深搜。 
這題我們枚舉下樓的情況時,把速度+1放在最前面,這樣能減掉不少枝,當搜到第一層的時候,更新答案,然後如果後面的最優答案小於當前最優答案,就減掉。

COdevs 2823 鎖妖塔

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.