洛谷P2625 豪華遊輪

2022-05-14 01:32:32 字數 2698 閱讀 6436

有一條豪華遊輪(其實就是條小木船),這種船可以執行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
貪心思想。命令可以隨意排列,那麼開場肯定是全軍突擊(誤),把所有前進指令都用完(走一半拐彎再走,肯定不如全程直走好),然後轉向,盡可能接近180°,再倒著走。

求最適合的轉向角度,我選擇偷懶暴搜。偷懶的結果就是50分,剩下50分t掉了。

1

/*by silvern

*/2 #include3 #include4 #include5 #include6 #include7

using

namespace

std;

8const

int mxn=60;9

const

double pi=3.141592653;10

intread()

13while(ch>='

0' && ch<='9')

14return x*f;15}

16double

an[mxn];

17double

fw[mxn];

18double

nx,ny;

19int acnt=0,rcnt=0;20

double dist(double x1,double y1,double x2,double

y2)23

intn;

24double ans=0;25

double ttd=0;26

void dfs(int rk,double

now)

36 dfs(rk+1

,now);

37//

printf("%.5f\n",now+an[rk]);

38 dfs(rk+1,now+an[rk]);

39return;40

}41intmain()

51if(ch[0]=='b'

)54if(ch[0]=='l'

)59if(ch[0]=='r'

)63}64 ttd=0;65

for(i=1;i<=n;i++)

70 sort(an+1,an+acnt+1

);71 dfs(0,0

);72

//73

//74

/*printf(" %d\n",dgans);

75nx+=ttd*cos(dgans);

76ny+=ttd*sin(dgans);

*/77

//printf("%.4f %.4f\n",nx,ny);

78 printf("

%.6f\n

",ans);

79return0;

80 }

dfs正解是dp。懶得寫了,從rlt那裡抄了**233

1 #include2 #include3 #include4 #include5

using

namespace

std;

6const

double pi=3.1415926535;7

int n,sf,sb,p,ang[55];8

double

ans;

9bool f[105][405

];10

intmain()

1127 f[0][0]=1;28

for(int i=1;i<=ang[0];i++)

29for(int j=0;j<360;j++)

30if(f[i-1

][j])

31 f[i][j]=1,f[i][(j+ang[i]+720)%360]=1

;32 p=180;33

for(int i=0;i<360;i++)

34if(f[ang[0

]][i])

35 p=min(p,abs(i-180

));36 ans=sqrt(sf*sf+sb*sb+2*sb*sf*cos(p*pi/180

));37 printf("

%.6f\n

",ans);

38return0;

39 }

正解dp

洛谷 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的距離。b...

P2625 豪華遊輪 揹包 dp ,數學

賊有意思的乙個題目。可以發現阻止我們走的更遠的就是那些需要反向走的路程。然後發現當角度越接近 180 circ 對我們最終的答案則更優。所以先是乙個揹包把可以達到的角度處理一下,然後再直接算就好了。卡精度。include define pi 3.141592653589 using namespac...