TopCoder Open 2019 ịma aka: bee achịcha ahụ n'ime iberibe isii

TopCoder Open 2019 ịma aka: bee achịcha ahụ n'ime iberibe isii
Na nzọụkwụ "Nke anyị meriri: TopCoder Open 2019" Ana m ebipụta nsogbu site na egwu Algorithm (mmemme egwuregwu oge gboo. N'ime otu awa na ọkara ị ga-edozi nsogbu atọ na Java, C #, C++ ma ọ bụ Python.)

1. achịcha isii

Ulationkpụzi nsogbu a

Oge njedebe bụ 4 sekọnd.

Ị nwere achịcha. Mgbe a na-ele ya anya n'elu, achicha ahụ nwere ọdịdị nke polygon convex (nke ọma). Enyere gị nhazi nke vertices na ọnụọgụ X na Y.

Ị nwere ndị enyi ise. Ịchọrọ kewaa achịcha ahụ n'ime akụkụ isii nke nha nhata (ma ọ bụchaghị otu ọdịdị ahụ). N'ezie, onye ọ bụla nwere ike ime ya na nkebi ise, ma ọ bụ naanị pro nwere ike ime ya na nkwụsị atọ.

Chọta ebe atọ n'ahịrị kwụ ọtọ site n'otu isi nke ga-ekewa achịcha ahụ n'ime akụkụ isii hà nhata. Bipụta {x, y, d1, d2, d3}, ebe (x, y) bụ ihe a na-ahụkarị na mbelata atọ ahụ, na d1, d2, d3 bụ akụkụ ntụzịaka nke mbelata na radians.

definitionKlas: CakeForSix
Usoro: ịkpụ
Oke: int[], int[] lọghachi: okpukpu abụọ[] mbinye aka usoro: okpukpu abụọ[] ịkpụ(int[] x, int[] y)
(jide n'aka na usoro gị bụ nke ọha)

Ihe edeturu

  • Ntuziaka dị mma n'akụkụ x-axis bụ 0 (radians), ntụziaka dị mma n'akụkụ y-axis bụ pi / 2 (radians).
  • Mbibi n'akụkụ ụzọ d yiri mbelata na pi*k+d maka integer ọ bụla k.
  • Ị nwere ike wepụta ntụziaka ọ bụla, ha agaghị esi na [0, pi).
  • Onye grader ga-agbakọ mpaghara nke achicha isii gị na okpukpu abụọ. A ga-anabata azịza ya ma ọ bụrụ na onye ikwu ma ọ bụ ezigbo ọdịiche dị n'etiti ha erughị 10^(-4).
  • Kpọmkwem karịa, ka X na Y bụrụ ndị kacha nta na nke kachasị n'ime mpaghara isii gị nke onye grader gbakọrọ. Mgbe ahụ, a ga-anabata azịza gị ma ọ bụrụ na Y
  • (Ụdị mbụ nke nsogbu ahụ na-eji nkenke 1e-7 kama 1e-4. Iji dozie nsogbu a na ebe nchekwa ahụ, a na-ebelata njedebe nkenke n'ihi ọnụnọ nke ịkpọ oku nke nwere ike ime ka nsogbu ahụ ghara idozi ya na nkenke. nke 1e-7. N'ime ụwa zuru oke, oke anaghị ekwe ka ikpe dị otú ahụ ma ka na-achọkwa nkenke dị elu, ya mere iji dozie nsogbu ahụ na ụfọdụ njikarịcha ọnụọgụgụ n'ozuzu adịghị mfe.)

Mgbochi

  • x nwere site na 3 ruo 50 ọcha gụnyere.
  • y nwere otu ọnụọgụ ọcha dị ka x.
  • nhazi niile n'etiti 0 na 10 gụnyere
  • x na y kọwapụta polygon convex na ntụzịaka na-atụgharị elekere.

Mbụ na bekee

Nkwupụta Nsogbu

Ogologo oge bụ 4 sekọnd.

Ị nwere achicha. A na-ahụ ya n'elu, achicha ahụ bụ polygon convex (kpọmkwem). Enyere gị nhazi nke vertices ya na int[]sx na y.

Ị nwere ndị enyi ise. Ugbu a, ịchọrọ ibelata achicha ahụ n'ime akụkụ isii nke nha nhata (ma ọ bụchaghị nha nha). N'ezie, onye ọ bụla nwere ike ime nke ahụ na mbelata ise - mana naanị ezigbo pro nwere ike ime ya na atọ!

Chọta ụzọ ahịrị atọ kwụ ọtọ na-agafe n'otu ebe ahụ na-egbutu achicha ahụ n'ime akụkụ isii hà nhata. laghachi {x, y, d1, d2, d3}, ebe (x, y) bụ ihe a na-ahụkarị na mbelata atọ ahụ, na d1, d2, d3 bụ ntụzịaka ha na radian.

definition

Klas: CakeForSix
Usoro: ịkpụ
Oke: int[], int[] lọghachi: okpukpu abụọ[] mbinye aka usoro: okpukpu abụọ[] ịkpụ(int[] x, int[] y)
(jide n'aka na usoro gị bụ nke ọha)

Notes
- Ntuziaka dị mma n'akụkụ axis x bụ 0 (radians), ntụziaka dị mma n'akụkụ y axis bụ pi / 2 (radians).
- Mkpụkpụ na ntụziaka d bụ ​​otu ihe ịkpụ na ntụziaka pi*k+d maka integer ọ bụla k.
- Ị nwere ike weghachi ntụziaka ọ bụla, ha agaghị esi na [0,pi).
- Onye grader ga-agbakọ mpaghara nke achịcha isii gị na okpukpu abụọ. A ga-anabata azịza ya ma ọ bụrụ na onye ikwu ma ọ bụ ezigbo ọdịiche dị n'etiti ha erughị 10^(-4).
- Kpọmkwem, ka X na Y bụrụ ndị kacha nta na nke kachasị n'ime mpaghara isii gị, dịka onye grader gbakọrọ. Mgbe ahụ, a ga-anabata azịza gị ma ọ bụrụ Y <max( X + 10^(-4), X * (1+10^(-4))).
- (The mbụ version nke nsogbu na-eji 1e-7 nkenke kama 1e-4. N'ihi na-edozi nsogbu a na Archive, nkenke oke wedara n'ihi ịdị adị nke ihe ịma aka ikpe na-yikarịrị na-eme ka ọrụ unsolvable na 1e-7 nkenke. N'ime ụwa zuru oke, ihe mgbochi agaghị ekwe ka ụdị ikpe dị otú ahụ ma ka na-achọkwa nkenke nke ọma, nke mere na ọ dịghị mfe idozi nsogbu ahụ site na njikarịcha ọnụọgụ ọnụọgụgụ.)

Nsogbu
- x ga-enwe n'etiti 3 na 50 ọcha, gụnyere.
— y ga-enwe otu ọnụọgụgụ ihe dị ka x.
- Nhazi niile ga-adị n'etiti 0 na 10,000, gụnyere.
- x na y ga-akọwa convex polygon n'usoro n'usoro elekere.

atụ

0)

{0, 20, 30, 50, 30, 20}
{10, 0, 0, 10, 20, 20}
Alaghachi:
{24.999999999437453, 9.999999999500002, 0.0, 0.7266423406817211, 2.4149503129080787}

Hexagon nwere symmetrical mana anaghị adịkarị. Azịza ihe atụ kwekọrọ na ịkpụ ya na ọkara n'ahịrị ma mee ka abụọ ọzọ belata etiti nke na-ekewa ibe ọ bụla n'ime akụkụ atọ.

TopCoder Open 2019 ịma aka: bee achịcha ahụ n'ime iberibe isii

1)

{0, 1000, 0}
{0, 0, 1000}
Alaghachi:
{333.3333333331763, 333.3333333332546, 0.7853981633986264, 2.0344439357948154, 2.6779450445891753}

Triangle ziri ezi. Ọzọ, anyị nwere ike ịmalite site na otu n'ime mbelata atọ n'akụkụ axis nke symmetry.

TopCoder Open 2019 ịma aka: bee achịcha ahụ n'ime iberibe isii

2)

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

Pentagon na-adịghị mma.

TopCoder Open 2019 ịma aka: bee achịcha ahụ n'ime iberibe isii

3)

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

Otu square gbara ogo 45.

TopCoder Open 2019 ịma aka: bee achịcha ahụ n'ime iberibe isii

[Isi Iyi]

Naanị ndị ọrụ edebanyere aha nwere ike isonye na nyocha a. banye, Biko.

Edoro m nsogbu ahụ maka

  • n'ihe na -erughị nkeji ise

  • 10-30 nkeji

  • 30-60 nkeji

  • Awa 1-2

  • n'ime ihe karịrị awa 2

  • ọzọ

Ndị ọrụ 42 họpụtara. Ndị ọrụ 47 anabataghị.

isi: www.habr.com

Tinye a comment