Dúshlán TopCoder Open 2019: gearr an pióg ina sé phíosa

Dúshlán TopCoder Open 2019: gearr an pióg ina sé phíosa
Sa chos “Bhuaigh sinne: TopCoder Open 2019” Foilsím fadhbanna ón rian Algartam (clárú spóirt clasaiceach. I gceann uair go leith ní mór duit trí fhadhb a réiteach i Java, C#, C++ nó Python.)

1. Pie ar feadh sé

An fhadhb a fhoirmiú

Is é an teorainn ama ná 4 soicind.

Tá pióg agat. Nuair a bhreathnaítear air ón taobh thuas, bíonn cruth polagán dronnach (díreach) ar an gcíste. Tugtar comhordanáidí na rinn i slánuimhreacha X agus Y duit.

Tá cúigear cairde agat. Ba mhaith leat an pie a roinnt ina sé phíosa d'achar comhionann (ach ní gá go mbeadh an cruth céanna orthu). Ar ndóigh, is féidir le duine ar bith é a dhéanamh i gcúig ghearradh, ach ní féidir ach le pro a dhéanamh i dtrí ghearradh.

Faigh trí ghearradh líne dhíreach trí phointe amháin a roinnfidh an pióg ina sé chuid chothroma. Priontáil {x, y, d1, d2, d3}, áit a bhfuil (x, y) an pointe comónta do na trí ghearradh ar fad, agus d1, d2, d3 mar uillinneacha treo na gearrthacha i raidian.

SainmhíniúRang: CakeForSix
Modh: gearrtha
Paraiméadair: int[], int[] Fill ar ais: dúbailte[] Síniú modh: dúbailte[] gearrtha(int[] x, int[] y)
(Bí cinnte go bhfuil do mhodh poiblí)

Nótaí

  • Is é 0 (raidiain) an treo dearfach feadh an x-ais agus is é pi/2 (raidiain) an treo deimhneach feadh an y-ais.
  • Tá gearradh sa treo d cosúil le gearradh sa treo pi*k+d d’aon slánuimhir k.
  • Is féidir leat aon treoracha a aschur, ní gá dóibh a bheith ó [0, pi).
  • Ríomhfaidh an grádóir achar do shé phíosa cáca ina dúbailtí. Glacfar leis an bhfreagra más lú ná 10^(-4) an difríocht choibhneasta nó iomlán eatarthu.
  • Níos cruinne, bíodh gurb iad X agus Y na cinn is lú agus is mó de do shé réimse arna ríomh ag an ngrádóir. Ansin glacfar le do fhreagra má tá Y
  • (D'úsáid bunleagan na faidhbe beachtas 1e-7 in ionad 1e-4. Chun an fhadhb seo a réiteach sa chartlann, laghdaíodh an teorainn bheachtais mar gheall ar chásanna glao a bheith ann a d'fhágfadh gur dócha go bhféadfaí an fhadhb a réiteach go beacht. I saol idéalach, ní cheadaíonn na teorainneacha cásanna den sórt sin agus fós éilíonn siad cruinneas ard, mar sin níl sé éasca an fhadhb a réiteach le roinnt leas iomlán a bhaint uimhriúil ginearálta.)

Srianta

  • x tá idir 3 agus 50 eilimint san áireamh.
  • tá an líon céanna dúile le x.
  • gach comhordanáidí idir 0 agus 10 san áireamh
  • sainmhíníonn x agus y polagán dronnach i dtreo tuathalach.

Bunaidh i mbéarla

Ráiteas Fadhbanna

Is é 4 soicind an teorainn ama.

Tá cáca agat. Le feiceáil ón méid thuas, is polagán dronnach (go docht) é an císte. Tugtar comhordanáidí a rinn san int[]sx agus y.

Tá cúigear cairde agat. Ba mhaith leat anois a ghearradh ar an císte i sé phíosa achar comhionann (ach ní gá go cruth comhionann). Ar ndóigh, is féidir le duine ar bith é sin a dhéanamh i gcúig chiorrú - ach ní féidir ach le pro fíor é a dhéanamh i dtrí cinn!

Faigh trí ghearradh dronlíneach ag dul tríd an bpointe céanna a ghearr an cáca ina sé chuid chomh mór. Fill {x, y, d1, d2, d3}, áit a bhfuil (x, y) an pointe comónta de na trí ghearradh, agus d1, d2, d3 a dtreonna i raidian.

Sainmhíniú

Rang: CakeForSix
Modh: gearrtha
Paraiméadair: int[], int[] Fill ar ais: dúbailte[] Síniú modh: dúbailte[] gearrtha(int[] x, int[] y)
(Bí cinnte go bhfuil do mhodh poiblí)

nótaí
— Is é 0 (raidiain an treo deimhneach feadh na x-ais), agus is é pi/2 (raidiain) an treo dearfach feadh na hais y.
— Is ionann gearrtha i dtreo d agus gearradh i dtreo pi*k+d d’aon slánuimhir k.
— Féadfaidh tú aon treoracha a thabhairt ar ais, ní gá gur ó [0,pi) iad.
— Ríomhfaidh an grádóir réimsí do shé phíosa císte ina dúbailtí. Glacfar leis an bhfreagra más lú ná 10^(-4) an difríocht choibhneasta nó iomlán eatarthu.
— Níos cruinne, bíodh gurb iad X agus Y an ceann is lú agus an ceann is mó de na sé réimse atá agat, mar a ríomhann an grádóir é. Ansin, glacfar le do fhreagra má tá Y < max( X + 10^(-4), X * (1+10^(-4)) ).
— (Úsáidtear beachtas 1e-7 in ionad 1e-4 i mbunleagan na faidhbe. Chun an fhadhb seo a réiteach sa chartlann laghdaíodh an teorainn bheachtais toisc go raibh cásanna dúshláin ann a d’fhágfadh gur dócha go mbeidh an tasc do-réiteach le beachtas 1e-7 I ndomhan idéalach ní cheadódh na srianta cásanna dá leithéid agus bheadh ​​ardchruinneas ag teastáil fós, ionas nach mbeadh sé éasca an fhadhb a réiteach trí leas iomlán a bhaint as uimhriúil ginearálta.)

Shrianta
— beidh idir 3 agus 50 eilimint ag x, go huile.
— beidh an líon céanna dúile ag x agus x.
— Beidh na comhordanáidí uile idir 0 agus 10,000, go huile.
— déanfaidh x agus y cur síos ar pholagán dronnach in ord tuathalach.

Примеры

0)

{0, 20, 30, 50, 30, 20}
{10, 0, 0, 10, 20, 20}
tuairisceáin:
{24.999999999437453, 9.999999999500002, 0.0, 0.7266423406817211, 2.4149503129080787 }

Heicseagán siméadrach ach neamhrialta. Freagraíonn an freagra samplach é a ghearradh ina leath go cothrománach agus dhá ghearradh eile a dhéanamh síos an lár a roinneann gach píosa ina thrí phíosa.

Dúshlán TopCoder Open 2019: gearr an pióg ina sé phíosa

1)

{0, 1000, 0}
{0, 0, 1000}
tuairisceáin:
{333.3333333331763, 333.3333333332546, 0.7853981633986264, 2.0344439357948154, 2.6779450445891753 }

Triantán ar dheis. Arís, is féidir linn tosú le ceann amháin de thrí ghearradh feadh ais na siméadrachta.

Dúshlán TopCoder Open 2019: gearr an pióg ina sé phíosa

2)

{40, 70, 90, 90, 50}
{30, 20, 40, 100, 60}
tuairisceáin:
{69.79517771922892, 52.77575974637605, 2.0616329654335885, 3.637826104091601, 4.32123485812475 }

Peinteagán neamhrialta.

Dúshlán TopCoder Open 2019: gearr an pióg ina sé phíosa

3)

{300, 400, 300, 200}
{500, 600, 700, 600}
Tuairisceáin: {299.99999999974995, 599.9999999995, 0.0, 1.107148717794088, 2.034443935795705 }

A cearnach rothlú 45 céim.

Dúshlán TopCoder Open 2019: gearr an pióg ina sé phíosa

[Foinse]

Ní féidir ach le húsáideoirí cláraithe páirt a ghlacadh sa suirbhé. Sínigh isteach, le do thoil.

Réitigh mé an fhadhb le haghaidh

  • i níos lú ná 10 nóiméad

  • Nóiméad 10 30-

  • Nóiméad 30 60-

  • uaireanta 1 2-

  • i níos mó ná 2 uair an chloig

  • eile

Vótáil 42 úsáideoir. Staon 47 úsáideoir.

Foinse: will.com

Add a comment