湖南省第七屆省賽 打怪公升級

2021-07-17 02:14:07 字數 2411 閱讀 9733

1105: 打怪公升級

time limit: 1 sec memory limit: 64 mb

submit: 181 solved: 62

[submit][status][web board]

description

對於多數rpg遊戲來說,除了劇情就是打怪公升級。本題的任務是用最短的時間取得所有戰鬥的勝利。這些戰鬥必須按照特定的順序進行,每打贏一場,都可能會獲得一些補藥,用來提公升力量。本題只有兩種補藥:「加1藥」和「乘2藥」,分別讓你的力量值加1和乘以2。

戰鬥時間取決於你的力量。每場戰鬥可以用6個引數描述:p1, p2, t1, t2, w1, w2。如果你的力量小於p1,你將輸掉戰鬥;如果你的力量大於p2,需要t2秒贏得戰鬥;如果力量位於p1和p2(包括p1和p2),戰鬥時間從t1線性遞減到t2。比如p1=50,p2=75,t1=40,t2=15,你的力量為55,則戰鬥獲勝需要35秒。注意,戰鬥時間可能不是整數。最後兩個引數w1和w2分別表示戰鬥勝利後獲得的「加1藥」和「乘2藥」的數量。注意,你不一定要立刻使用這些補藥,可以在需要的時候再用,但不能在戰鬥中使用補藥。

按順序給出每場戰鬥的引數,輸出贏得所有戰鬥所需的最短總時間。戰鬥必須按順序進行,且不能跳過任何一場戰鬥。

input

輸入最多包含25組測試資料。每組資料第一行為兩個整數n和p(1<=n<=1000, 1<=p<=100),即戰鬥的場數和你的初始力量值。以下n行每行6個整數p1, p2, t1, t2, w1, w2(1<=p1< p2<=100, 1<= t2 < t1<=100, 0<=w1,w2<=10),按順序給出各場戰鬥的引數。輸入結束標誌為n=p=0。

output

對於每組資料,輸出最短總時間(單位:秒),保留兩位小數。如果無解,輸出「impossible」(不含引號)。

sample input

1 55

50 75 40 15 10 0

2 55

50 75 40 15 10 0

50 75 40 15 10 0

3 1

1 2 2 1 0 5

1 2 2 1 1 0

1 100 100 1 0 0

1 7

4 15 35 23 0 0

1 1

2 3 2 1 0 0

0 0sample output

35.00

60.00

41.00

31.73

impossible

題解:

這道題就是乙個搜尋啊,不過有乙個地方寫錯了,還是學長幫我找的。。

找了一晚上。。

dfs(now+1,nowp+a[now].w1,m2+a[now].w2-m2used,t+fight(a[now].p1,a[now].p2,nowp,a[now].t1,a[now].t2)))
寫成了

dfs(now+1,p+a[now].w1,m2+a[now].w2-m2used,t+fight(a[now].p1,a[now].p2,nowp,a[now].t1,a[now].t2)))
看出來什麼不同了沒,nowp寫成了p,。。。狗帶。。

#include

#include

#include

#include

#include

using

namespace

std;

const

int maxn=2005;

const

int eps=1e-4;

const

double inf=100000000000;

struct note a[maxn];

int n;

int sgn(double now)

inline

double fight(double p1,double p2,double p,double t1,double t2)

double dfs(int now,double p,int m2,double t)

if(nowp>a[now].p2)break;

// printf("m2used=%d f_time=%.2f\n",m2used,fight(a[now].p1,a[now].p2,p*2.00*m2used,a[now].t1,a[now].t2));

++m2used;

}// printf("now=%.2f\n",ans);

return ans;

}int main()

double ans=dfs(0,p,0,0);

if(ans>=inf-10.000) else

}return

0;}

第七屆acm省賽總結

比賽過去很多天了,現在才開始寫。都有些忘了。然而 題寫好交上去之後tle了,我們分析了下可能是演算法不夠快,然後讓我上去敲了spfa演算法,但是敲出來好像樣例也過不了,但是時間已經到十二點多了,我們覺得一定要開始 題了,就先列印出 給小豪找下錯誤,所以我繼續開始敲 題 中間到了飯點 題其實理解了後就...

第七屆福建省賽RMQ with Shifts

這道題赤裸裸的線段樹,不過就是輸入有點難搞,加上錯的方式很離譜就寫上來了。坑 乙個陣列,求指定區間內的最小值,輸入 query 3,7 代表查詢第3至第7的最小值。shift 2,4,5,7 代表把第2 4 5 7上的數依次向左移動一位。每shift一次就更新線段樹一次 include includ...

第七屆山東ACM省賽總結

省賽總結 比賽的第一天是打cccc網路賽,因為賽前找電腦的原因讓我比賽中的狀態很不好,雖然第一階段是水題在掌控範圍內,但是由於這個是團體賽,打不好會託隊友的後腿,還是各種緊張,開局就做的很不好,老是擔心會卡題,有句話說的好,怕什麼,來什麼,果然,我卡題了。卡在了划拳那個題,賽後我去看那個題,交了足足...