程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> 經驗-addHP 二分+dp

經驗-addHP 二分+dp

編輯:編程解疑
addHP 二分+dp

問題描述 :

最近小白迷上了劍俠情緣,可惜不幸的是他千挑萬選拜入了一個叫做“萬花”的門派。事實上,這個門派的主要作用就是在別人受到傷害的時候,施展技能使得好友的生命值得以恢復。
可是萬花的技能有一個缺陷,那就是玩家所謂的讀條。
讀條就是一個技能的施法時間,也就是說當我按下一個技能的操作之後,這個技能會在S秒之後才會被釋放出來。
萬花擁有數個加血技能,它們的施法時間和加血量也不盡相同。現在小白和大家一起去下副本,責任當然是負責照顧好MT(Main Tank)。根據小白多年來的經驗,可以推算出BOSS每一次攻擊對MT造成的傷害,小白希望你幫忙算一下MT是否能夠存活下來,如果可以,那麼怎麼加血,才能使得MT的最低血量最高?(MT的血量一旦太低,會導致大家的驚恐,所以小白希望知道怎麼加血才能讓MT曾經被打擊造成的血量最低值盡可能高一些)。
輸入:

第一行輸入三個數字 n和m,HP,n 代表BOSS的攻擊次數,m代表萬花的加血技能有多少個,HP代表MT初始狀態下有多少血(此時HP為MT的上限)。
接下去n個數字,第i個數字代表BOSS在第i秒對MT造成多少傷害。
接下去m行數字,每行輸入一個time和一個add;
Time代表技能如果在k時間開始讀條,那麼會在k + time時間完成效果
Add代表該技能可以恢復多少HP,但不允許超過MT的上限。

由於我們會偷襲BOSS,所以可以看做從0時間開始加血,而BOSS的傷害從1時間點才開始計算,但是BOSS得傷害會在加血技能之前被計算。

0 <= n ,m<= 10000 ,0 <= HP, time , add <=1000 ,

輸出:

第一行輸入三個數字 n和m,HP,n 代表BOSS的攻擊次數,m代表萬花的加血技能有多少個,HP代表MT初始狀態下有多少血(此時HP為MT的上限)。
接下去n個數字,第i個數字代表BOSS在第i秒對MT造成多少傷害。
接下去m行數字,每行輸入一個time和一個add;
Time代表技能如果在k時間開始讀條,那麼會在k + time時間完成效果
Add代表該技能可以恢復多少HP,但不允許超過MT的上限。

由於我們會偷襲BOSS,所以可以看做從0時間開始加血,而BOSS的傷害從1時間點才開始計算,但是BOSS得傷害會在加血技能之前被計算。

0 <= n ,m<= 10000 ,0 <= HP, time , add <=1000 ,

樣例輸入:

10 2 100
1 1 1 1 1 1 1 1 1 1
2 10
1 1
樣例輸出:

99

最佳回答:


http://blog.csdn.net/techmonster/article/details/51383381

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved