洛谷 P2625 豪華遊輪

2021-07-23 05:03:48 字數 1551 閱讀 7915

題目描述

有一條豪華遊輪(其實就是條小木船),這種船可以執行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...