Ipenija TopCoder Ṣii 2019: ge paii naa si awọn ege mẹfa

Ipenija TopCoder Ṣii 2019: ge paii naa si awọn ege mẹfa
Ni awọn igbesẹ “Tiwa bori: Ṣii TopCoder 2019” Mo ṣe atẹjade awọn iṣoro lati ọna alugoridimu (Seto ere idaraya kilasika. Ni wakati kan ati idaji o nilo lati yanju awọn iṣoro mẹta ni Java, C #, C ++ tabi Python.)

1. Paii fun mẹfa

Igbekalẹ iṣoro naa

Awọn akoko iye to wa ni 4 aaya.

O ni paii kan. Nigbati a ba wo lati oke, akara oyinbo naa ni apẹrẹ ti polygon convex kan (muna). A fun ọ ni awọn ipoidojuko ti awọn inaro ni awọn nọmba X ati Y.

O ni awọn ọrẹ marun. O fẹ pin paii si awọn ege mẹfa ti agbegbe dogba (ṣugbọn kii ṣe apẹrẹ kanna). Nitoribẹẹ, ẹnikẹni le ṣe ni awọn gige marun, ṣugbọn pro nikan le ṣe ni awọn gige mẹta.

Wa awọn gige mẹta ni awọn laini taara nipasẹ aaye kan ti yoo pin paii si awọn ẹya dogba mẹfa. Tẹjade {x, y, d1, d2, d3}, nibiti (x, y) jẹ aaye ti o wọpọ ti gbogbo awọn gige mẹta, ati d1, d2, d3 jẹ awọn igun itọsọna ti awọn gige ni awọn radians.

definitionKilasi: CakeForSix
Ọna: ge
Awọn paramita: int[], int[] Awọn ipadabọ: ilọpo[] Ibuwọlu ọna: ilopo[] ge (int[] x, int[] y)
(rii daju pe ọna rẹ jẹ ti gbogbo eniyan)

Awọn akọsilẹ

  • Itọnisọna rere lẹgbẹẹ x-axis jẹ 0 (radians), itọsọna rere pẹlu y-axis jẹ pi/2 (radians).
  • Ge ni itọsọna d jẹ iru si gige ni itọsọna pi*k+d fun eyikeyi odidi k.
  • O le jade awọn itọnisọna eyikeyi, wọn ko ni lati wa lati [0, pi).
  • Awọn grader yoo ṣe iṣiro agbegbe ti awọn ege akara oyinbo mẹfa rẹ ni ilọpo meji. Idahun naa yoo gba ti ibatan tabi iyatọ pipe laarin wọn kere ju 10 ^ (-4).
  • Ni deede diẹ sii, jẹ ki X ati Y jẹ eyiti o kere julọ ati ti o tobi julọ ninu awọn agbegbe mẹfa rẹ ti a ṣe iṣiro nipasẹ grader. Lẹhinna idahun rẹ yoo gba ti Y
  • (Ẹya atilẹba ti iṣoro naa lo deede ti 1e-7 dipo 1e-4. Lati yanju iṣoro yii ni ile-iwe pamosi, a ti dinku opin konge nitori wiwa awọn ọran pipe ti yoo jẹ ki iṣoro naa ko yanju pẹlu pipe. ti 1e-7. Ninu aye pipe, awọn opin ko gba laaye iru awọn ọran ati pe o tun nilo pipe to gaju, nitorinaa lohun iṣoro naa pẹlu diẹ ninu iṣapeye nọmba gbogbogbo kii ṣe rọrun.)

Awọn idiwọn

  • x ni lati awọn eroja 3 si 50 pẹlu.
  • y ni nọmba kanna ti awọn eroja bi x.
  • gbogbo awọn ipoidojuko laarin 0 ati 10 pẹlu
  • x ati y setumo polygon convex kan ni itọsọna wiwọ aago.

Atilẹba ni English

Gbólóhùn Iṣoro

Iye akoko jẹ iṣẹju-aaya 4.

O ni akara oyinbo kan. Ti a rii lati oke, akara oyinbo naa jẹ polygon ti o tẹẹrẹ (muna). A fun ọ ni awọn ipoidojuko ti awọn inaro rẹ ninu int[]sx ati y.

O ni awọn ọrẹ marun. Bayi o fẹ ge akara oyinbo naa si awọn ege mẹfa ti agbegbe dogba (ṣugbọn kii ṣe apẹrẹ deede). Nitoribẹẹ, ẹnikẹni le ṣe iyẹn ni awọn gige marun - ṣugbọn pro otitọ nikan le ṣe ni mẹta!

Wa awọn gige laini taara mẹta ti o kọja nipasẹ aaye kanna ti o ge akara oyinbo naa si awọn ẹya mẹfa ti o tobi deede. Pada {x, y, d1, d2, d3}, nibiti (x, y) jẹ aaye ti o wọpọ ti awọn gige mẹta, ati d1, d2, d3 jẹ awọn itọnisọna wọn ni awọn radians.

definition

Kilasi: CakeForSix
Ọna: ge
Awọn paramita: int[], int[] Awọn ipadabọ: ilọpo[] Ibuwọlu ọna: ilopo[] ge (int[] x, int[] y)
(rii daju pe ọna rẹ jẹ ti gbogbo eniyan)

awọn akọsilẹ
- Itọnisọna rere lẹgbẹẹ ipo x jẹ 0 (radians), itọsọna rere lẹgbẹẹ y axis jẹ pi/2 (radians).
— A ge ni itọsọna d jẹ kanna bi gige ni itọsọna pi*k+d fun eyikeyi odidi k.
- O le da awọn itọnisọna eyikeyi pada, wọn ko ni lati wa lati [0,pi).
- Awọn grader yoo ṣe iṣiro awọn agbegbe ti awọn ege akara oyinbo mẹfa rẹ ni ilọpo meji. Idahun naa yoo gba ti ibatan tabi iyatọ pipe laarin wọn kere ju 10 ^ (-4).
- Ni deede diẹ sii, jẹ ki X ati Y jẹ eyiti o kere julọ ati ti o tobi julọ ninu awọn agbegbe mẹfa rẹ, bi a ti ṣe iṣiro nipasẹ grader. Lẹhinna, idahun rẹ yoo gba ti Y <max ( X + 10^ (-4), X * (1+10^ (-4))).
- (Awọn atilẹba ti ikede ti awọn isoro ti a lo 1e-7 konge dipo 1e-4. Fun soke isoro yi ni awọn pamosi opin konge ti a lo sile nitori awọn aye ti ipenija igba ti o seese ṣe awọn iṣẹ-ṣiṣe unsolvable pẹlu 1e-7 konge Ni agbaye pipe awọn ihamọ ko ni gba iru awọn ọran laaye ati pe o tun nilo pipe to gaju, nitorinaa ko rọrun lati yanju iṣoro naa nipasẹ diẹ ninu iṣapeye nọmba gbogbogbo.)

Awọn inira
- x yoo ni laarin awọn eroja 3 ati 50, pẹlu.
— y yoo ni nọmba kanna ti awọn eroja bi x.
- Gbogbo awọn ipoidojuko yoo wa laarin 0 ati 10,000, pẹlu.
— x ati y yoo ṣapejuwe polygon convex kan ni tito-ọja atako.

Awọn apẹẹrẹ

0)

0, 20, 30, 50, 30, 20}
10, 0, 0, 10, 20, 20}
Awọn ipadabọ
{24.999999999437453, 9.999999999500002, 0.0, 0.7266423406817211, 2.4149503129080787}

A ṣe iwọn-ara ṣugbọn hexagon alaibamu. Idahun apẹẹrẹ ni ibamu si gige ni idaji ni ita ati ṣiṣe awọn gige meji miiran si isalẹ aarin ti o pin nkan kọọkan si awọn ẹya mẹta.

Ipenija TopCoder Ṣii 2019: ge paii naa si awọn ege mẹfa

1)

{0, 1000, 0}
{0, 0, 1000}
Awọn ipadabọ
{333.3333333331763, 333.3333333332546, 0.7853981633986264, 2.0344439357948154, 2.6779450445891753}

Onigun ọtun. Lẹẹkansi, a le bẹrẹ pẹlu ọkan ninu awọn gige mẹta lẹgbẹẹ ipo ti ami-ara.

Ipenija TopCoder Ṣii 2019: ge paii naa si awọn ege mẹfa

2)

40, 70, 90, 90, 50}
30, 20, 40, 100, 60}
Awọn ipadabọ
{69.79517771922892, 52.77575974637605, 2.0616329654335885, 3.637826104091601, 4.32123485812475}

Pentagon alaibamu.

Ipenija TopCoder Ṣii 2019: ge paii naa si awọn ege mẹfa

3)

{300, 400, 300, 200}
{500, 600, 700, 600}
Awọn ipadabọ: {299.99999999974995, 599.9999999995, 0.0, 1.107148717794088, 2.034443935795705}

Oni onigun mẹrin yiyi iwọn 45.

Ipenija TopCoder Ṣii 2019: ge paii naa si awọn ege mẹfa

[Orisun]

Awọn olumulo ti o forukọsilẹ nikan le kopa ninu iwadi naa. wọle, Jowo.

Mo yanju iṣoro naa fun

  • ni kere ju iṣẹju 10

  • Awọn iṣẹju 10-30

  • Awọn iṣẹju 30-60

  • Awọn wakati 1-2

  • ni diẹ ẹ sii ju 2 wakati

  • omiiran

42 olumulo dibo. 47 olumulo abstained.

orisun: www.habr.com

Fi ọrọìwòye kun