記憶體限制 65536 kb
正義的夥伴褋祈和葬儀社的機械人fuyuneru正在被**的ghq部隊追殺。眼看著快要逃不掉了,祈就把重要的東西塞到了機械人體內,讓它先跑,自己吸引火力。
假設fuyuneru帶上東西開始逃跑時所處的點為原點,朝向為正北。操縱fuyuneru的指令有如下四種:
right x: x是1-359之間的整數,fuyuneru的前進方向順時針轉x度。
left x: x是1-359之間的整數,fuyuneru的前進方向逆時針轉x度。
forward x: x是整數(0<=x<=1000),fuyuneru向當前朝向前進x公尺。
backward x: x是整數(0<=x<=1000),fuyuneru向當前朝向後退x公尺。
現在祈嚮fuyuneru體內輸入了n(1<=n<=50)個這樣的指令。可是由於此前fuyuneru被ghq部隊擊中,它出了一點小問題:這n個指令執行的順序是不確定的。
問:fuyuneru最遠可能逃出多遠?
即,fuyuneru在執行完n條指令之後,距離原點最遠的可能距離是多少?
第一行是乙個整數t,代表測試資料有t組。
每組測試資料中,第一行是乙個整數n,代表指令有n條;
隨後緊跟n行,每一行代表乙個指令(格式保證是上述四種中的一種,資料保證合法)
對於每組資料,輸出一行:最遠的可能逃亡距離,精確到小數點後3位。
33
forward
100backward
100left
90
4left
45
forward
100right
45
forward
1006
left
10
forward
40right
30
left
10
backward
4forward
4
141.421
200.000
40.585
#include
#include
#include
#include
#include
#include
#include
#define pi acos(-1.0)
using
namespace
std;
double
dis(double a,double b,double ang)
intmain
()
}
multiset
<
int>::iterator it;
vis[
0]=1;
for(it=turn.begin();it!=turn.end();it++)}}
mina=
180;
//防止沒有旋轉指令
for(i=
0;i<
360;i++)
if(vis[i])
if(abs(
180-i)
mina=
abs(
180-i);
//printf("mina:%d\n",mina);
printf(
"%.3lf\n",dis(up,down,
180-mina));
}return
0;
}
北郵oj 最遠距離
題目 把所有能轉出的角度都列舉出來,然後找最接近180度的。另外計算浮點數一定要注意精讀,把int型轉為double型再計算!我找了一下午發現是因為這個沒有ac!include include define pi acos 1.0 using namespace std double dis dou...
北郵oj 最遠距離
如圖所示,可以將所有的操作歸結為 第一步 將所有的forward操作一併做完,到達途中n軸上的一點。第二步 將所有的left轉化為 360 left 360,即將所有的轉向操作都變成右轉,然後挑選這些右轉操作,最終目的是使得min夾角盡可能大,讓forward與backward夾角盡可能大,兩邊不變...
2012北郵網研院上機題
a 列印字串 時間限制 1000 ms 記憶體限制 65536 kb 題目描述 老師有乙個問題想考考mabo,但是mabo不會,所以想請你來幫幫忙。問題如下 給一串字串,統計其中某個字元的個數。輸入格式 首先輸入乙個整數t,表示一共有t組資料 0 t 10。接下來每行乙個字母x x為 a z 或者 ...