Her TopCoder Open 2019: torrwch y pastai yn chwe darn

Her TopCoder Open 2019: torrwch y pastai yn chwe darn
Ar y llwybr “Ennill ni: TopCoder Open 2019” Rwy'n cyhoeddi problemau o'r trac Algorithm (rhaglenu chwaraeon clasurol. Mewn awr a hanner mae angen i chi ddatrys tair problem yn Java, C#, C++ neu Python.)

1. Pei i chwech

Datganiad o'r broblem

Y terfyn amser yw 4 eiliad.

Mae gennych chi bastai. O edrych arni oddi uchod, mae gan y gacen siâp polygon amgrwm (sylw iawn). Rhoddir cyfesurynnau'r fertigau mewn cyfanrifau X ac Y i chi.

Mae gennych bum ffrind. Rydych chi eisiau rhannu'r pastai yn chwe darn o arwynebedd cyfartal (ond nid o reidrwydd yr un siâp). Wrth gwrs, gall unrhyw un ei wneud mewn pum toriad, ond dim ond pro all ei wneud mewn tri thoriad.

Darganfyddwch dri thoriad llinell syth trwy un pwynt a fydd yn rhannu'r pei yn chwe rhan hafal. Argraffu {x, y, d1, d2, d3}, lle (x, y) yw pwynt cyffredin y tri thoriad, a d1, d2, d3 yw onglau cyfeiriad y toriadau mewn radianau.

DiffiniadDosbarth: CakeForSix
Dull: torri
Paramedrau: int[], int[] Yn dychwelyd: dwbl[] Llofnod dull: dwbl[] toriad(int[] x, int[] y)
(gwnewch yn siŵr bod eich dull yn gyhoeddus)

Nodiadau

  • Y cyfeiriad positif ar hyd yr echelin-x yw 0 (radianau), y cyfeiriad positif ar hyd yr echelin-y yw pi/2 (radianau).
  • Mae toriad yn y cyfeiriad d yn debyg i doriad yn y cyfeiriad pi*k+d ar gyfer unrhyw gyfanrif k.
  • Gallwch allbynnu unrhyw gyfarwyddiadau, nid oes rhaid iddynt fod o [0, pi).
  • Bydd y graddiwr yn cyfrifo arwynebedd eich chwe darn o gacen mewn dyblau. Derbynnir yr ateb os yw'r gwahaniaeth cymharol neu absoliwt rhyngddynt yn llai na 10^(-4).
  • Yn fwy manwl gywir, gadewch i X ac Y fod y lleiaf a'r mwyaf o'ch chwe maes a gyfrifir gan y graddiwr. Yna bydd eich ateb yn cael ei dderbyn os Y
  • (Defnyddiodd fersiwn wreiddiol y broblem fanylder o 1e-7 yn lle 1e-4. I ddatrys y broblem hon yn yr archif, gostyngwyd y terfyn cywirdeb oherwydd presenoldeb achosion galw a fyddai'n debygol o wneud y broblem yn un na ellir ei datrys yn fanwl gywir o 1e-7. Mewn byd delfrydol, nid yw'r terfynau'n caniatáu achosion o'r fath ac mae angen manylder uchel o hyd, felly nid yw datrys y broblem gyda rhywfaint o optimeiddio rhifiadol cyffredinol yn hawdd.)

Cyfyngiadau

  • x yn cynnwys rhwng 3 a 50 elfen yn gynwysedig.
  • y yn cynnwys yr un nifer o elfennau ag x.
  • mae pob un yn cydlynu rhwng 0 a 10 yn gynhwysol
  • mae x ac y yn diffinio polygon amgrwm i gyfeiriad gwrthglocwedd.

Gwreiddiol yn Saesneg

Datganiad Problem

Y terfyn amser yw 4 eiliad.

Mae gennych gacen. O'r uchod, mae'r gacen yn bolygon amgrwm (yn llym). Rhoddir cyfesurynnau ei fertigau i chi yn y int[]sx ac y.

Mae gennych bum ffrind. Rydych chi nawr eisiau torri'r gacen yn chwe darn o arwynebedd cyfartal (ond nid o reidrwydd siâp cyfartal). Wrth gwrs, gall unrhyw un wneud hynny mewn pum toriad - ond dim ond gwir pro all ei wneud mewn tri!

Darganfyddwch dri thoriad llinell syth yn mynd trwy'r un pwynt a dorrodd y gacen yn chwe rhan yr un mor fawr. Dychwelyd {x, y, d1, d2, d3}, lle (x, y) yw pwynt cyffredin y tri toriad, a d1, d2, d3 yw eu cyfarwyddiadau mewn radianau.

Diffiniad

Dosbarth: CakeForSix
Dull: torri
Paramedrau: int[], int[] Yn dychwelyd: dwbl[] Llofnod dull: dwbl[] toriad(int[] x, int[] y)
(gwnewch yn siŵr bod eich dull yn gyhoeddus)

Nodiadau
— Y cyfeiriad positif ar hyd yr echelin x yw 0 (radianau), y cyfeiriad positif ar hyd yr echelin y yw pi/2 (radianau).
— Mae toriad mewn cyfeiriad d yr un peth â thoriad mewn cyfeiriad pi*k+d ar gyfer unrhyw gyfanrif k.
— Gallwch ddychwelyd unrhyw gyfarwyddiadau, nid oes rhaid iddynt ddod o [0,pi).
— Bydd y graddiwr yn cyfrifo arwynebedd eich chwe darn cacen mewn dyblau. Derbynnir yr ateb os yw'r gwahaniaeth cymharol neu absoliwt rhyngddynt yn llai na 10^(-4).
— Yn fwy manwl gywir, gadewch i X ac Y fod y lleiaf a'r mwyaf o'ch chwe maes, fel y'u cyfrifir gan y graddiwr. Yna, bydd eich ateb yn cael ei dderbyn os yw Y <max( X + 10^(-4), X * (1+10^(-4)) ).
— (Defnyddiodd y fersiwn wreiddiol o'r broblem drachywiredd 1e-7 yn lle 1e-4. I ddatrys y broblem hon yn yr archif, gostyngwyd y terfyn cywirdeb oherwydd bodolaeth achosion her sy'n fwyaf tebygol o wneud y dasg yn un na ellir ei datrys gyda thrachywiredd 1e-7 Mewn byd delfrydol ni fyddai'r cyfyngiadau'n caniatáu achosion o'r fath ac mae angen manylder uchel o hyd, fel nad yw'n hawdd datrys y broblem trwy rywfaint o optimeiddio rhifol cyffredinol.)

cyfyngiadau
— bydd x yn cynnwys rhwng 3 a 50 elfen, yn gynwysedig.
— bydd gan y yr un nifer o elfennau ag x.
— Bydd yr holl gyfesurynnau rhwng 0 a 10,000, yn gynhwysol.
— bydd x ac y yn disgrifio polygon amgrwm mewn trefn wrthglocwedd.

Примеры

0)

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

Hecsagon cymesur ond afreolaidd. Mae'r ateb enghreifftiol yn cyfateb i'w dorri yn ei hanner yn llorweddol a gwneud dau doriad arall i lawr y canol sy'n rhannu pob darn yn dair rhan.

Her TopCoder Open 2019: torrwch y pastai yn chwe darn

1)

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

Triongl de. Unwaith eto, gallwn ddechrau gydag un o dri thoriad ar hyd echelin cymesuredd.

Her TopCoder Open 2019: torrwch y pastai yn chwe darn

2)

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

Pentagon afreolaidd.

Her TopCoder Open 2019: torrwch y pastai yn chwe darn

3)

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

Mae sgwâr cylchdroi 45 gradd.

Her TopCoder Open 2019: torrwch y pastai yn chwe darn

[Ffynhonnell]

Dim ond defnyddwyr cofrestredig all gymryd rhan yn yr arolwg. Mewngofnodios gwelwch yn dda.

Fe wnes i ddatrys y broblem ar gyfer

  • mewn llai na 10 munud

  • Cofnodion 10-30

  • Cofnodion 30-60

  • 1-2 awr

  • mewn mwy na 2 awr

  • eraill

Pleidleisiodd 42 o ddefnyddwyr. Ymataliodd 47 o ddefnyddwyr.

Ffynhonnell: hab.com

Ychwanegu sylw