nyoj 125-盜夢空間 (數學ans += temp * 60 * pow(0.05, cnt))
阿新 • • 發佈:2018-07-18
空間 個數字 can badge 精彩 字符串 algo 難度 wid
125-盜夢空間
內存限制:64MB
時間限制:3000ms
特判: No
通過數:8
提交數:10
難度:2
題目描述:
《盜夢空間》是一部精彩的影片,在這部電影裏,Cobb等人可以進入夢境之中,夢境裏的時間會比現實中的時間過得快得多,這裏假設現實中的3分鐘,在夢裏就是1小時。
然而,Cobb他們利用強效鎮靜劑,可以從第一層夢境進入第二層夢境,甚至進入三層,四層夢境,每層夢境都會產生同樣的時間加速效果。那麽現在給你Cobb在各層夢境中經歷的時間,你能算出現實世界過了多長時間嗎?
比如,Cobb先在第一層夢境待了1個小時,又在第二層夢境裏待了1天,之後,返回第一層夢境之後立刻返回了現實。
那麽在現實世界裏,其實過了396秒(6.6分鐘)
輸入描述:
第一行輸入一個整數T(0<=T<=100),表示測試數據的組數。 每組測試數據的第一行是一個數字M(3<=M<=100) 隨後的M行每行的開頭是一個字符串,該字符串如果是"IN" 則Cobb向更深層的夢境出發了,如果是字符串"OUT"則表示Cobb從深層的夢回到了上一層。如果是首字符串是"STAY"則表示Cobb在該層夢境中停留了一段時間,本行隨後將是一個整數S表示在該層停留了S分鐘(1<=S<=10000000)。數據保證在現實世界中,時間過了整數秒。
輸出描述:
對於每組測試數據,輸出現實世界過的時間(以秒為單位)。
樣例輸入:
1 6 IN STAY 60 IN STAY 1440 OUT OUT
樣例輸出:
396
C/C++ AC:
1 #include <iostream> 2 #include <algorithm> 3 #include <cstring> 4 #include <cstdio> 5 #include <cmath> 6 #include <stack> 7 #include <set> 8 #include <map> 9 #include <queue> 10 #include <climits> 11 12 using namespace std; 13 int n, m; 14 15 int main() 16 { 17 cin >>n; 18 while (n --) 19 { 20 scanf("%d", &m); 21 int ans = 0, cnt = 0; 22 string str; 23 while (m --) 24 { 25 cin >>str; 26 if (str == "IN") cnt ++; 27 else if (str == "OUT") cnt --; 28 else 29 { 30 int temp; 31 scanf("%d", &temp); 32 ans += temp * 60 * pow(0.05, cnt); 33 } 34 } 35 printf("%d\n", ans); 36 } 37 }
nyoj 125-盜夢空間 (數學ans += temp * 60 * pow(0.05, cnt))