題目描述
有一條豪華遊輪(其實就是條小木船),這種船可以執行4種指令:
right x : 其中x是乙個1到719的整數,這個命令使得船順時針轉動x度。
left x : 其中x是乙個1到719的整數,這個命令使得船逆時針轉動x度。 forward x : 其中x是乙個整數(1到1000),使得船向正前方前進x的距離。
backward x : 其中x是乙個整數(1到1000),使得船向正後方前進x的距離。
隨意的寫出了n個命令,找出乙個種排列命令的方法,使得船最終到達的位置距離起點盡可能的遠。
輸入輸出格式
輸入格式:
第一行乙個整數n(1 <= n <= 50),表示給出的命令數。
接下來n行,每行表示乙個命令。
輸出格式:
乙個浮點數,能夠走的最遠的距離,四捨五入到6位小數。
輸入輸出樣例
輸入樣例#1:
3 forward 100
backward 100
left 90
輸出樣例#1:
141.421356
【分析】
蛋疼…貪心
【**】
//the problem 3
#include
#include
#include
#include
#include
#define m(a) memset(a,0,sizeof a)
#define fo(i,j,k) for(i=j;i<=k;i++)
using
namespace
std;
const
double pi=acos(-1.0);
const
int mxn=55;
char s[15];
int n,back,to;
int jiao[55];
int f[19000];
inline
int read()
while(ch>='0'&&ch<='9')
return x*f;
}int main()
else back+=x;
}if(to>back) v+=to,ot=back;
else v+=back,ot=to;
f[0]=1;
fo(i,1,jiao[0])
for(j=18000;j>=jiao[i];j--)
f[j]=max(f[j],f[j-jiao[i]]);
fo(j,0,18000)
if(f[j])
if(abs(180-(j%360))abs(180-(j%360));
double ang=mn;
v=v+ot*(cos(ang*pi/180.0));
double tmp=ot*(sin(ang*pi/180.0));
v=sqrt(v*v+tmp*tmp);
printf("%f\n",v);
return
0;}
洛谷 P2625 豪華遊輪
題目描述 有一條豪華遊輪 其實就是條小木船 這種船可以執行4種指令 right x 其中x是乙個1到719的整數,這個命令使得船順時針轉動x度。left x 其中x是乙個1到719的整數,這個命令使得船逆時針轉動x度。forward x 其中x是乙個整數 1到1000 使得船向正前方前進x的距離。b...
洛谷P2625 豪華遊輪
有一條豪華遊輪 其實就是條小木船 這種船可以執行4種指令 right x 其中x是乙個1到719的整數,這個命令使得船順時針轉動x度。left x 其中x是乙個1到719的整數,這個命令使得船逆時針轉動x度。forward x 其中x是乙個整數 1到1000 使得船向正前方前進x的距離。backwa...
P2625 豪華遊輪 揹包 dp ,數學
賊有意思的乙個題目。可以發現阻止我們走的更遠的就是那些需要反向走的路程。然後發現當角度越接近 180 circ 對我們最終的答案則更優。所以先是乙個揹包把可以達到的角度處理一下,然後再直接算就好了。卡精度。include define pi 3.141592653589 using namespac...