Phephetso ea TopCoder Open 2019: khaola pie likotoana tse tšeletseng

Phephetso ea TopCoder Open 2019: khaola pie likotoana tse tšeletseng
Dikgatong "Ea rona e hlotse: TopCoder Open 2019" Ke phatlalatsa mathata ho tsoa pina ea Algorithm (lenaneo la lipapali tsa khale. Ka hora le halofo u hloka ho rarolla mathata a mararo ho Java, C #, C++ kapa Python.)

1. Pie bakeng sa tse tšeletseng

Mokhoa oa bothata

Moeli oa nako ke metsotsoana e 4.

U na le phae. Ha e talingoa ho tsoa holimo, kuku e na le sebopeho sa polygon (e thata) ea convex. U fuoa likhokahano tsa li-vertices ho linomoro tsa X le Y.

U na le metsoalle e mehlano. U batla ho arola pie ka likotoana tse tšeletseng tsa sebaka se lekanang (empa eseng hakaalo sebopeho se tšoanang). Ha e le hantle, mang kapa mang a ka e etsa ka litsela tse hlano, empa ke setsebi feela se ka e etsang ka litsela tse tharo.

Fumana likheo tse tharo meleng e otlolohileng ka ntlha e le 'ngoe e tla arola pie ka likarolo tse tšeletseng tse lekanang. Hatisa {x, y, d1, d2, d3}, moo (x, y) e leng ntlha e tloaelehileng ea likarolo tse tharo, 'me d1, d2, d3 ke li-angles tsa tataiso tsa li-radians.

TlhalosoSehlopha: CakeForSix
Mokhoa: khaola
Liparamente: int[], int[] Returns: habeli[] Mokgwa tshaeno: habedi[] seha(int[] x, int[] y)
(etsa bonnete ba hore mokhoa oa hau ke oa sechaba)

Lintlha

  • Tataiso e ntle haufi le axis ea x ke 0 (radians), tataiso e ntle haufi le axis ea y ke pi/2 (radians).
  • Ho seha ho d ho tšoana le ho seha ka pi*k+d bakeng sa palo efe kapa efe ea k.
  • O ka hlahisa litsela leha e le life, ha ho hlokahale hore li tsoe ho [0, pi).
  • Grader e tla bala sebaka sa likuku tsa hau tse tšeletseng ka makhetlo a mabeli. Karabo e tla amoheloa haeba phapang ea leloko kapa e felletseng lipakeng tsa bona e ka tlase ho 10^(-4).
  • Ka nepo, tlohella X le Y hore e be tse nyane le tse kholo ho fetisisa libakeng tsa hau tse tšeletseng tse baliloeng ke grader. Joale karabo ea hau e tla amoheloa haeba Y
  • (Phetolelo ea pele ea bothata e sebelisitse ho nepahala ha 1e-7 sebakeng sa 1e-4. Ho rarolla bothata bona polokelong ea litaba, moeli o nepahetseng o ile oa theoleloa ka lebaka la boteng ba linyeoe tsa ho letsetsa tse ka 'nang tsa etsa hore bothata bo se ke ba rarolloa ka ho nepahala. Lefatšeng le letle, meeli ha e lumelle linyeoe tse joalo 'me e ntse e hloka ho nepahala ho phahameng, kahoo ho rarolla bothata ka ho ntlafatsa linomoro ka kakaretso ha ho bonolo.)

Lithibelo

  • x e na le likarolo tse 3 ho isa ho tse 50 kaofela.
  • y e na le palo e lekanang le ea x.
  • lihokahanyo tsohle pakeng tsa 0 le 10 li kenyelelitsoe
  • x le y li hlalosa poligone e khobehla ka tsela e khahlano le oache.

original in English

Polelo ea Bothata

Moeli oa nako ke metsotsoana e 4.

U na le kuku. Ha e bonoa ka holimo, kuku ke polygon (e tiileng) e nang le convex. U fuoa likhokahano tsa li-vertices tsa eona ho int[]sx le y.

U na le metsoalle e mehlano. Hona joale u batla ho khaola kuku ka likotoana tse tšeletseng tsa sebaka se lekanang (empa eseng hakaalo sebopeho se lekanang). Ehlile, mang kapa mang a ka etsa joalo ka makhetlo a mahlano - empa ke setsebi sa 'nete feela se ka se etsang ka makhetlo a mararo!

Fumana litsela tse tharo tse otlolohileng tse fetang ntlha e le 'ngoe e khaolang kuku ka likarolo tse tšeletseng tse kholo ka ho lekana. Khutlisetsa {x, y, d1, d2, d3}, moo (x, y) e leng ntlha e tloaelehileng ea likarolo tse tharo, 'me d1, d2, d3 ke litsela tsa bona ka radians.

Tlhaloso

Sehlopha: CakeForSix
Mokhoa: khaola
Liparamente: int[], int[] Returns: habeli[] Mokgwa tshaeno: habedi[] seha(int[] x, int[] y)
(etsa bonnete ba hore mokhoa oa hau ke oa sechaba)

Notes
- Taelo e ntle ho latela axis ea x ke 0 (radians), tataiso e ntle ho latela axis ea y ke pi/2 (radians).
- Sehoe se lebileng d se tšoana le sehiloeng se lebileng pi*k+d bakeng sa palo efe kapa efe ea k.
- U ka khutlisa litsela life kapa life, ha lia tlameha ho tsoa ho [0,pi).
- Mohlophisi o tla bala likarolo tsa likuku tsa hau tse tšeletseng ka makhetlo a mabeli. Karabo e tla amoheloa haeba phapang ea leloko kapa e felletseng lipakeng tsa bona e ka tlase ho 10^(-4).
- Ka nepo, tlohella X le Y hore e be tse nyane le tse kholo ho fetisisa libakeng tsa hau tse tšeletseng, joalo ka ha ho baloa ke grader. Joale, karabo ea hau e tla amoheloa haeba Y < max( X + 10^(-4), X * (1+10^(-4)) ).
- (Phetolelo ea pele ea bothata e sebelisitse ho nepahala ha 1e-7 sebakeng sa 1e-4. Bakeng sa ho rarolla bothata bona polokelong ea polokelo moeli o nepahetseng o ile oa theoleloa ka lebaka la ho ba teng ha linyeoe tsa phephetso tseo ho ka etsahalang hore ebe li etsa hore mosebetsi o se ke oa rarolloa ka ho nepahala ha 1e-7. Lefatšeng le letle, litšitiso li ne li ke ke tsa lumella linyeoe tse joalo, 'me li ntse li hloka ho nepahala ho phahameng, e le hore ho se be bonolo ho rarolla bothata ka ho sebelisa lipalo tse akaretsang.)

Liphephetso
- x e tla ba le lintlha tse pakeng tsa 3 le 50, ho kenyeletsoa.
- y e tla ba le palo e lekanang le ea x.
- Likhokahanyo tsohle li tla ba lipakeng tsa 0 le 10,000, li kenyelelitsoe.
— x le y li tla hlalosa poligone e khobehla ka tatellano ea lioache.

mehlala

0)

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

Hexagon e lekanang empa e sa tloaeleha. Karabo ea mohlala e lumellana le ho e seha ka halofo e tšekaletseng le ho etsa likheo tse ling tse peli ho theosa le bohareng ho arola sengoathoana ka seng likotoana tse tharo.

Phephetso ea TopCoder Open 2019: khaola pie likotoana tse tšeletseng

1)

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

khutlotharo e nepahetseng. Hape, re ka qala ka e 'ngoe ea likheo tse tharo ho latela axis ea symmetry.

Phephetso ea TopCoder Open 2019: khaola pie likotoana tse tšeletseng

2)

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

Pentagon e sa tloaelehang.

Phephetso ea TopCoder Open 2019: khaola pie likotoana tse tšeletseng

3)

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

Sekwere se potoloha likhato tse 45.

Phephetso ea TopCoder Open 2019: khaola pie likotoana tse tšeletseng

[Mohloli]

Ke basebelisi ba ngolisitsoeng feela ba ka kenyang letsoho phuputsong. kenaka kopo.

Ke rarolle bothata bakeng sa

  • ka tlase ho metsotso e 10

  • 10-30 metsotso

  • 30-60 metsotso

  • Lihora tse 1-2

  • ka lihora tse fetang 2

  • tse ling

Basebelisi ba 42 ba ile ba khetha. Basebelisi ba 47 ba ile ba hana.

Source: www.habr.com

Eketsa ka tlhaloso