TopCoder Open 2019 wero: tapahia te porowhita kia ono nga wahanga

TopCoder Open 2019 wero: tapahia te porowhita kia ono nga wahanga
Kei te ara "I wikitoria ta maatau: TopCoder Open 2019" Ka whakaputa raru ahau mai i te ara Algorithm (he hotaka hakinakina matarohia. I roto i te kotahi me te hawhe haora me whakaoti rapanga e toru ki Java, C#, C++, Python ranei.)

1. Porohita mo te ono

Kaupapa raru

E 4 hēkona te tepe wā.

He porowhita koe. Ina tirohia mai i runga ake, he rite te ahua o te keke ki tetahi polygon convex. Ka hoatu ki a koe nga taunga o nga poupou i roto i nga tauoti X me Y.

Tokorima ou hoa. E hiahia ana koe ki te wehewehe i te porowhita kia ono nga wahanga o te horahanga rite (engari kaua e rite te ahua). Ko te tikanga, ka taea e tetahi te mahi i roto i nga tapahi e rima, engari ka taea e te pro anake te mahi i roto i nga tapahi e toru.

Kimihia kia toru nga tapahi raina tika i roto i te waahi kotahi ka wehewehe te porowhita kia ono nga wahanga rite. Taahia te {x, y, d1, d2, d3}, kei hea (x, y) te ira noa o nga tapahi e toru, me te d1, d2, d3 ko nga koki ahunga o nga tapahi i roto i nga radians.

definitionTe karaehe: CakeForSix
Tikanga: tapahia
Tawhā: int[], int[] Whakahoki: rua[] Tikanga waitohu: rua[] tapahia(int[] x, int[] y)
(kia mohio kei te whanui to tikanga)

Tuhipoka

  • Ko te ahunga takatika i te tuaka-x he 0 (radians), ko te ahunga pai i te tuaka-y he pi/2 (radians).
  • He rite te tapahi i te ahunga d ki te tapahi i te ahunga pi*k+d mo tetahi tauoti k.
  • Ka taea e koe te whakaputa i nga ahunga katoa, kaore e tika mai i [0, pi).
  • Ka tatauhia e te kaikoeke te horahanga o to wahanga keke e ono kia takirua. Ka whakaaehia te whakautu mena he iti iho i te 10^(-4) te rereketanga o te whanaungatanga me te tino rerekee i waenga i a raatau.
  • Kia tika ake, kia X me Y te mea iti rawa me te nui rawa atu o o waahi e ono kua tatauhia e te kaikoeke. Na ka whakaaehia to whakautu mena ko Y
  • (Ko te putanga taketake o te rapanga i whakamahia te tika o te 1e-7 hei utu mo te 1e-4. Hei whakaoti i tenei raru i roto i te purongo, i whakahekehia te tepe tika na te mea he waea waea ka kore e taea te whakaoti i te raru me te tika. o 1e-7. I roto i te ao pai, kaore nga rohe e whakaae ki nga keehi penei me te hiahia tonu kia tino tika, na reira ehara i te mea ngawari te whakaoti rapanga me etahi arotautanga tau.)

Whakataunga

  • x kei roto mai i te 3 ki te 50 nga huānga whakauru.
  • He rite tonu te maha o nga huānga ki te x.
  • nga taunga katoa i waenga i te 0 me te 10 whakauru
  • x me y te tautuhi i te tapawha porowhita i roto i te aronga karaka.

taketake i te reo Ingarihi

Tauākī Raru

He 4 hēkona te rohe wā.

He keke koe. Ka kitea mai i runga, ko te keke he (tino) poroporoporo. Ka hoatu ki a koe nga taunga o ona poupou i roto i te int[]sx me te y.

Tokorima ou hoa. Ka hiahia koe ki te tapahi i te keke kia ono nga wahanga o te horahanga rite (engari ehara i te mea he rite te ahua). Ae ra, ka taea e tetahi te mahi i roto i nga tapahi e rima - engari ka taea e te pro pono anake te mahi i roto i te toru!

Kimihia etahi tapahanga raina-tika e toru e haere ana i te waahi kotahi i tapahia te keke kia ono nga wahanga rite te rahi. Whakahokia {x, y, d1, d2, d3}, ko te (x, y) te ira noa o nga tapahi e toru, me te d1, d2, d3 ko o ratou ahunga i roto i nga raana.

definition

Te karaehe: CakeForSix
Tikanga: tapahia
Tawhā: int[], int[] Whakahoki: rua[] Tikanga waitohu: rua[] tapahia(int[] x, int[] y)
(kia mohio kei te whanui to tikanga)

Notes
— Ko te ahunga pai i te tuaka x he 0 (radians), ko te ahunga takatika i te tuaka y he pi/2 (radians).
— He rite te tapahi i te ahunga d ki te tapahi i te ahunga pi*k+d mo tetahi tauoti k.
— Ka taea e koe te hoki mai i etahi huarahi, kaore e tika mai i [0,pi).
— Ka tatauhia e te kaikoeke nga waahi o to wahanga keke e ono kia takirua. Ka whakaaehia te whakautu mena he iti iho i te 10^(-4) te rereketanga o te whanaungatanga me te tino rerekee i waenga i a raatau.
— Kia tika ake, kia X me Y te mea iti rawa me te nui rawa atu o o waahi e ono, e ai ki te tatau a te kaikoeke. Na, ka whakaaetia to whakautu ki te Y < max( X + 10^(-4), X * (1+10^(-4)) ).
— (Ko te putanga taketake o te rapanga i whakamahia te 1e-7 tika hei utu mo te 1e-4. Mo te whakatika i tenei raru i roto i te purongo i whakahekehia te tepe tika na te mea he keehi wero e kore e taea te mahi me te 1e-7 tino tika. I roto i te ao tino pai karekau nga here e whakaae ki enei keehi me te hiahia tonu kia tino tika, kia kore ai e ngawari ki te whakaoti rapanga ma te arotautanga tau whanui.)

Nga Whakatapu
— x kei waenga i te 3 ki te 50 nga huānga, whakauru.
— y ka rite te maha o nga huānga ki te x.
— Ko nga taunga katoa kei waenga i te 0 me te 10,000, ka uru.
— Ka whakaahua te x me te y i tetahi polygon convex i roto i te raupapa takakaraka.

tauira

0)

{0, 20, 30, 50, 30, 20}
{10, 0, 0, 10, 20, 20}
Ka hoki mai:
{24.999999999437453, 9.999999999500002, 0.0, 0.7266423406817211, 2.4149503129080787 }

He hexagon hangarite engari kōhikohiko. Ko te tauira whakautu e rite ana ki te tapahi i te haurua whakapae me te hanga kia rua etahi atu tapahi ki raro i te pokapū ka wehewehea ia waahanga kia toru nga wahanga.

TopCoder Open 2019 wero: tapahia te porowhita kia ono nga wahanga

1)

{0, 1000, 0}
{0, 0, 1000}
Ka hoki mai:
{333.3333333331763, 333.3333333332546, 0.7853981633986264, 2.0344439357948154, 2.6779450445891753 }

Tapatoru matau. Ano, ka taea e tatou te timata ki tetahi o nga tapahi e toru i te tuaka o te hangarite.

TopCoder Open 2019 wero: tapahia te porowhita kia ono nga wahanga

2)

{40, 70, 90, 90, 50}
{30, 20, 40, 100, 60}
Ka hoki mai:
{69.79517771922892, 52.77575974637605, 2.0616329654335885, 3.637826104091601, 4.32123485812475 }

taparima kōhikohiko.

TopCoder Open 2019 wero: tapahia te porowhita kia ono nga wahanga

3)

{300, 400, 300, 200}
{500, 600, 700, 600}
Whakahoki: {299.99999999974995, 599.9999999995, 0.0, 1.107148717794088, 2.034443935795705 }

He tapawha i huri 45 nga nekehanga.

TopCoder Open 2019 wero: tapahia te porowhita kia ono nga wahanga

[Puna]

Ko nga kaiwhakamahi kua rehita anake ka uru ki te rangahau. Waitohu maitēnā.

I whakaotihia e ahau te raruraru mo

  • i raro iho i te 10 meneti

  • 10-30 meneti

  • 30-60 meneti

  • 1-2 haora

  • neke atu i te 2 haora

  • atu

42 nga kaiwhakamahi i pooti. 47 nga kaiwhakamahi i aukati.

Source: will.com

Tāpiri i te kōrero