TopCoder Open 2019 challenge: ʻoki i ka pai i ʻeono ʻāpana

TopCoder Open 2019 challenge: ʻoki i ka pai i ʻeono ʻāpana
Ma na kapuai Ua lanakila kā mākou hui: TopCoder Open 2019 Ke hoʻopuka nei au i nā pilikia mai ke ala Algorithm. (ʻO ka papahana hoʻokūkū maʻamau. Pono ʻoe e hoʻoponopono i ʻekolu mau pilikia ma Java, C#, C++, a i ʻole Python i loko o hoʻokahi hola a me ka hapa.)

1. Pai no ʻeono

Ka hoʻokumu ʻana i ka pilikia

Palena manawa: 4 kekona.

He pai kāu. Ke nānā ʻia mai luna mai, ua like ke ʻano o ka pai me kahi polygon convex (koʻikoʻi). Hāʻawi ʻia iā ʻoe nā hoʻonohonoho helu piha o nā piko, X a me Y.

ʻElima ou mau hoaaloha. Makemake ʻoe e puʻunaue i kahi pai i ʻeono mau ʻāpana like ka nui (akā, ʻaʻole pono ke ʻano like). ʻOiaʻiʻo, hiki i kekahi ke hana ia mea i ʻelima mau ʻoki, akā ʻo ka mea akamai wale nō ke hana ia mea i ʻekolu.

E huli i ʻekolu ʻoki me nā laina pololei ma o kahi kiko like e puʻunaue ana i ka pai i ʻeono mau ʻāpana like. E paʻi iā {x, y, d1, d2, d3}, kahi (x, y) ke kiko like o nā ʻoki ʻekolu, a ʻo d1, d2, d3 nā kihi o nā ʻoki ma nā radians.

DefinitionPapa: CakeForSix
ʻAno hana: ʻoki
Nā palena: int[], int[]
Hoʻihoʻi: pālua[]
Pūlima hana: pālua[] ʻoki(int[] x, int[] y)
(e hōʻoia i ka lehulehu o kāu hana)

Nā memo

  • ʻO ke kuhikuhi maikaʻi ma ke axis-x he 0 (radians), ʻo ke kuhikuhi maikaʻi ma ke axis-y he pi/2 (radians).
  • Ua like ka ʻoki ma ke kuhikuhi d me ka ʻoki ma ke kuhikuhi pi*k+d no kekahi helu holoʻokoʻa k.
  • Hiki iā ʻoe ke hoʻopuka i nā kuhikuhi āpau, ʻaʻole pono lākou mai [0, pi).
  • E helu ka mea mākaʻikaʻi i nā ʻāpana o kāu mau ʻāpana keke ʻeono i nā pālua. E ʻae ʻia ka pane inā ʻoi aku ka liʻiliʻi o ka ʻokoʻa pili a i ʻole ka ʻokoʻa paʻa ma waena o lākou ma mua o 10^(-4).
  • ʻOi aku ka pololei, e ʻo X a me Y ka mea liʻiliʻi loa a me ka mea nui loa o kāu mau ʻāpana ʻeono i helu ʻia e ka mea māka. A laila e ʻae ʻia kāu pane inā ʻo Y
  • (Ua hoʻohana ka mana mua o ka pilikia i ka pololei 1e-7 ma kahi o 1e-4. No ka hoʻoponopono ʻana i kēia pilikia, ua hoʻohaʻahaʻa ʻia ka palena pololei i loko o ka waihona ma muli o ke alo o nā hihia kāhea e hiki ai ke hoʻopilikia i ka pilikia me ka pololei 1e-7. I loko o kahi honua kūpono, pale nā ​​​​palena i ia mau hihia a koi mau i ka pololei kiʻekiʻe, no laila ʻaʻole maʻalahi ka hoʻoponopono ʻana i ka pilikia me kekahi hoʻonui helu maʻamau.)

Nā palena

  • Loaʻa iā x mai 3 a 50 mau mea.
  • Loaʻa iā y ka helu like o nā mea me x.
  • nā hoʻonohonoho āpau ma waena o 0 a me 10,000 me ka hoʻokomo pū ʻana
  • Ho'ākāka 'o x a me y i kahi polygon convex ma ke kuhikuhi counterclockwise.

Kumu ma ka ʻōlelo Pelekania

Hōʻike pilikia

ʻO ka palena manawa he 4 kekona.

He keke kāu. Ke ʻike ʻia mai luna mai, he polygon convex (koʻikoʻi) ka keke. Hāʻawi ʻia iā ʻoe nā hoʻonohonoho o kona mau vertices ma ka int[]sx a me y.

ʻElima ou mau hoaaloha. Makemake ʻoe e ʻoki i ke keke i ʻeono ʻāpana like ka nui (akā, ʻaʻole pono ke ʻano like). ʻOiaʻiʻo, hiki i kekahi ke hana i kēlā ma nā ʻoki ʻelima - akā ʻo ka mea akamai maoli wale nō ke hana i ʻekolu!

E huli i ʻekolu ʻoki laina pololei e hele ana ma ke kiko like i ʻoki i ke keke i ʻeono ʻāpana like ka nui. E hoʻihoʻi i {x, y, d1, d2, d3}, kahi (x, y) ke kiko maʻamau o nā ʻoki ʻekolu, a ʻo d1, d2, d3 ko lākou mau kuhikuhi ma nā radians.

Definition

Papa: CakeForSix
ʻAno hana: ʻoki
Nā palena: int[], int[]
Hoʻihoʻi: pālua[]
Pūlima hana: pālua[] ʻoki(int[] x, int[] y)
(e hōʻoia i ka lehulehu o kāu hana)

Notes
— ʻO ke kuhikuhi maikaʻi ma ke axis x he 0 (radians), ʻo ke kuhikuhi maikaʻi ma ke axis y he pi/2 (radians).
— Ua like ka ʻoki ʻana i ke kuhikuhi d me ka ʻoki ʻana i ke kuhikuhi pi*k+d no kekahi helu piha k.
— Hiki iā ʻoe ke hoʻihoʻi i kekahi mau kuhikuhi, ʻaʻole pono lākou mai [0,pi).
— E helu ka mea hoʻopaʻa i nā ʻāpana o kāu mau ʻāpana keke ʻeono ma nā pālua. E ʻae ʻia ka pane inā ʻoi aku ka liʻiliʻi o ka ʻokoʻa pili a i ʻole ka ʻokoʻa paʻa ma waena o lākou ma mua o 10^(-4).
— ʻOi aku ka pololei, e ʻo X a me Y ka mea liʻiliʻi loa a me ka mea nui loa o kāu mau ʻāpana ʻeono, e like me ka helu ʻana a ka mea māka. A laila, e ʻae ʻia kāu pane inā ʻo Y < max( X + 10^(-4), X * (1+10^(-4)) ).
— (Ua hoʻohana ka mana mua o ka pilikia i ka pololei 1e-7 ma kahi o 1e-4. No ka hoʻoponopono ʻana i kēia pilikia ma ka waihona, ua hoʻohaʻahaʻa ʻia ka palena pololei ma muli o ke kū ʻana o nā hihia paʻakikī e hiki ai ke hoʻoholo ʻole i ka hana me ka pololei 1e-7. I loko o kahi honua kūpono, ʻaʻole e ʻae nā palena i ia mau hihia a koi mau i ka pololei kiʻekiʻe, no laila ʻaʻole maʻalahi ka hoʻoponopono ʻana i ka pilikia ma o kekahi hoʻonui helu maʻamau.)

nā palena
— e loaʻa iā x ma waena o 3 a me 50 mau mea, me ke komo pū ʻana.
— e like ka helu o nā mea o y me x.
— Aia nā hoʻonohonoho āpau ma waena o 0 a me 10,000.
— E wehewehe ʻo x a me y i kahi polygon convex ma ke kaʻina counterclockwise.

examples

0)

{0, 20, 30, 50, 30, 20}
{10, 0, 0, 10, 20, 20}
Hoʻi mai:
{24.999999999437453, 9.999999999500002, 0.0, 0.7266423406817211, 2.4149503129080787}

He hexagon like, akā ʻano ʻole. Pili ka pane hoʻohālike i ka ʻoki ʻana iā ia i ka hapalua ākea a hana i ʻelua ʻoki ʻē aʻe i lalo i ke kikowaena, e puʻunaue ana i kēlā me kēia hapalua i ʻekolu.

TopCoder Open 2019 challenge: ʻoki i ka pai i ʻeono ʻāpana

1)

{0, 1000, 0}
{0, 0, 1000}
Hoʻi mai:
{333.3333333331763, 333.3333333332546, 0.7853981633986264, 2.0344439357948154, 2.6779450445891753}

Huinakolu ʻākau. Eia hou, hiki iā kākou ke hoʻomaka me kekahi o nā ʻoki ʻekolu ma ke axis o symmetry.

TopCoder Open 2019 challenge: ʻoki i ka pai i ʻeono ʻāpana

2)

{40, 70, 90, 90, 50}
{30, 20, 40, 100, 60}
Hoʻi mai:
{69.79517771922892, 52.77575974637605, 2.0616329654335885, 3.637826104091601, 4.32123485812475}

Pentagon kūlike ʻole.

TopCoder Open 2019 challenge: ʻoki i ka pai i ʻeono ʻāpana

3)

{300, 400, 300, 200}
{500, 600, 700, 600}
Hoʻihoʻi: {299.99999999974995, 599.9999999995, 0.0, 1.107148717794088, 2.034443935795705}

Ua hoʻohuli ʻia kahi huinahā he 45 degere.

TopCoder Open 2019 challenge: ʻoki i ka pai i ʻeono ʻāpana

[Puna]

Hiki i nā mea hoʻohana i hoʻopaʻa inoa ʻia ke komo i ka noiʻi. Eʻe, e 'oluʻolu.

Ua hoʻoponopono au i ka pilikia ma

  • ma lalo o 10 mau minuke

  • NUMNUMX-10 mau minuke

  • NUMNUMX-30 mau minuke

  • Nā hola 1-2

  • ʻoi aku ma mua o 2 mau hola

  • kekahi'ē aʻe

42 mea hoʻohana i koho. Ua hōʻole nā ​​mea hoʻohana 47.

Source: www.habr.com

E kūʻai i ka hoʻokipa hilinaʻi no nā pūnaewele me ka pale DDoS, nā kikowaena VPS VDS 🔥 E kūʻai i ka hoʻokipa pūnaewele hilinaʻi me ka pale DDoS, nā kikowaena VPS VDS | ProHoster