Задача А. 2-3 Деревья Задача В. Деревья Задача С. Расстояние

advertisement
Âòîðàÿ òðåíèðîâêà ãðóïïû A2 (äèíàìè÷åñêîå ïðîãðàììèðîâàíèå)
Ñàíêò-Ïåòåðáóðãñêèé Ãîñóäàðñòâåííûé Óíèâåðñèòåò, 12 êîòÿáðÿ 2009 ãîäà
Çàäà÷à A. 2-3 Äåðåâüÿ
óòðàì, à äðóãàÿ ïî íî÷àì. ×òîáû ðàñòåíèå íå çàñîõëî,
íóæíî ÷òîáû ëèáî óòðîì, ëèáî íî÷üþ îíî öåëèêîì ïîëèÈìÿ âõîäíîãî ôàéëà:
23trees.in
âàëîñü êàêîé-òî ìàøèíîé. Ò.å. îêðóæíîñòü, ïðåäñòàâëÿ23trees.out
Èìÿ âûõîäíîãî ôàéëà:
þùàÿ êàæäîå èç äåðåâüåâ, äîëæíà öåëèêîì ñîäåðæàòüñÿ
Îãðàíè÷åíèå ïî âðåìåíè:
2 ñåêóíäû
â îäíîé èëè îáåèõ îêðóæíîñòÿõ, ïðåäñòàâëÿþùèõ ïîëèÎãðàíè÷åíèå ïî ïàìÿòè:
256 ìåáèáàéò
âàëüíûå ìàøèíû.
Âû êîãäà-íèáóäü ñëûøàëè î 2-3 äåðåâüÿõ? Íåò, íå î
Äàíû êîîðäèíàòû è ðàäèóñ êàæäîãî èç äåðåâüåâ. Íàéñáàëàíñèðîâííûõ ñòðóêòóðàõ äàííûõ, à î íàñòîÿùèõ ðàñäèòå íàèìåíüøèé ðàäèóñ R, äëÿ êîòîðîãî ìîæíî ðàñïîòåíèÿõ, îïèñàííûõ â ýòîé çàäà÷å.
ëîæèòü îáå ïîëèâàëüíûå ìàøèíû òàê, ÷òîáû íè îäíî äå2-3 äåðåâî íàçâàíî òàêèì îáðàçîì, ïîòîìó ÷òî êàæäûé
ðåâî íå çàñîõëî. Ïîëèâàëüíûå ìàøèíû ìîæíî ñòàâèòü â
ãîä îíî ïåðåðîæäàåòñÿ ëèáî â 2, ëèáî â 3 íîâûõ äåðåâà,
ëþáóþ òî÷êó ïëîñêîñòè, äàæå âíóòðè äåðåâà.
à ïîòîì óìèðàåò. Êîëè÷åñòâî íîâûõ äåðåâüåâ çàâèñèò îò
êëèìàòà, òàêèì îáðàçîì, åñëè ëåòî áûëî õîëîäíûì, áóäåò Ôîðìàò âõîäíîãî ôàéëà
òîëüêî äâà íîâûõ äåðåâà, èíà÷å áóäåò òðè.
 ïåðâîé ñòðî÷êå äàíî 1 6 N 6 3 êîëè÷åñòâî äåðåÁîëåå òîãî, âñå äåðåâüÿ â 2-3 ëåñó ðàñòóò îäèíàêîãî, âüåâ. Äàëåå ñëåäóåò N ñòðîê èç öåëûõ ÷èñåë xi , yi , ri (1 6
òàêèì îáðàçîì, êàæäûé ãîä êîëè÷åñòâî äåðåâüåâ óäâàè- xi , yi , ri 6 1000) êîîðäèíàòû è ðàäèóñ äåðåâüåâ.
âàåòñÿ ëèáî óòðàèâàåòñÿ.
Íåñêîëüêî ëåò íàçàä áûëî âñåãî îäíî 2-3 äåðåâî â ìèðå. Ôîðìàò âûõîäíîãî ôàéëà
Âûâåäèòå îäíî ÷èñëî R èñêîìûé ðàäèóñ ñ òî÷íîñòüþ
Íî íà ïðîòÿæåíèè ýòèõ ëåò îíî ïåðåðîñëî â îãðîìíûé ëåñ.
íå
ìåíåå 6 çíàêîâ ïîñëå çàïÿòîé.
Òåïåðü ýêîëîãè õîòÿò âçÿòü âñå äåðåâüÿ è ïåðåìåñòèòü â
ñïåöèàëüíûé ïàðê.
Ïðèìåðû
Ïàðê èìååò ôîðìó òðåóãîëüíèêà è âàøà çàäà÷à ðàçcircles.in
circles.out
äåëèòü ïàðê íà ðàâíûå òðåóãîëüíèêè è ïîñàäèòü â êàæ3
7.000000
äûé òðåóãîëüíèê ðîâíî îäíî äåðåâî.
20 10 2
Êîîðäèíàòû âåðøèí
òðåóãîëüíîãî
ïàðêà:
(0,
0)
,
20 20 2
√
(1000, 0) è (500, 500 3).
40 10 3
3
8.000000
Ôîðìàò âõîäíîãî ôàéëà
20 10 3
Âõîäíîé ôàéë ñîäåðæèò îäíî ïîëîæèòåëüíîå öåëîå
30 10 3
÷èñëî N êîëè÷åñòâî 2-3 äåðåâüåâ â 2-3 ëåñó (1 6 N 6
40 10 3
1 000).
Ôîðìàò âûõîäíîãî ôàéëà
Çàäà÷à C. Ðàññòîÿíèå ìåæäó îòðåçêàìè
Ïðèìåð
Ôîðìàò âûõîäíîãî ôàéëà
Êàæäàÿ èç N ñòðîê âûõîäíîãî ôàéëà äîëæíà ñîäåðæàòü 6 ÷èñåë: x1 , y1 , x2 , y2 , x3 , y3 êîîðäèíàòû âåðøèí
Èìÿ âõîäíîãî ôàéëà:
distance.in
ñîîòâåòñòâóþùåãî òðåóãîëüíèêà.
Èìÿ âûõîäíîãî ôàéëà:
distance.out
Òðåóãîëüíèêè íå äîëæíû ïåðåñåêàòüñÿ è äîëæíû ëåÎãðàíè÷åíèå ïî âðåìåíè:
2 ñåêóíäà
æàòü âíóòðè èñõîäíîãî òðåóãîëüíèêà. Âñå òðåóãîëüíèêè
Îãðàíè÷åíèå ïî ïàìÿòè:
256 ìåáèáàéò
äîëæíû áûòü ðàâíû, ò.å. âîçìîæíî ïîäâèíóòü (è, ìîæåò
Íàéäèòå ðàññòîÿíèå ìåæäó äâóìÿ îòðåçêàìè.
áûòü, ïåðåâåðíóòü) òðåóãîëüíèê, ÷òîáû ïîëó÷èòü ëþáîé
äðóãîé òðåóãîëüíèê.
Ôîðìàò âõîäíîãî ôàéëà
Âûâîäèòå êîîðäèíàòû ñ òî÷íîñòüþ êàê ìèíèìóì 6 äåÂîñåìü öåëûõ ÷èñåë êîîðäèíàòû ÷åòûð¼õ êîíöîâ
ñÿòè÷íûõ çíàêîâ ïîñëå çàïÿòîé.
äâóõ îòðåçêîâ.
2
23trees.in
23trees.out
0 0 500 0 500 866.02540378443864676372317075294
1000 0 500 0 500 866.02540378443864676372317075294
Çàäà÷à B. Äåðåâüÿ
Èìÿ âõîäíîãî ôàéëà:
circles.in
Èìÿ âûõîäíîãî ôàéëà:
circles.out
Îãðàíè÷åíèå ïî âðåìåíè:
2 ñåêóíäû
Îãðàíè÷åíèå ïî ïàìÿòè:
256 ìåáèáàéò
 âàøåì ñàäó ðàñòåò íåñêîëüêî äåðåâüåâ, êîòîðûå íåîáõîäèìî ïîëèâàòü. Òàê óæ ïîëó÷èëîñü, ÷òî êàæäîå èç ðàñòåíèé èìååò ôîðìó êðóãà, ïðè÷åì íèêàêèå äâà èç íèõ íå
ïåðåñåêàþòñÿ. Âû ñîáèðàåòåñü êóïèòü äâå ïîëèâàëüíûå
ìàøèíû. Êàæäàÿ èç ìàøèí ïîëèâàåò âñþ çåìëþ âíóòðè
êðóãà ðàäèóñà R. Îäíà èç ìàøèí áóäåò âêëþ÷àòüñÿ ïî
Îäíî ÷èñëî ðàññòîÿíèå ìåæäó îòðåçêàìè ñ òî÷íîñòüþ íå ìåíåå 10−6 .
Ïðèìåð
distance.in
1 1 2 2
2 1 3 0
distance.out
0.7071067812
Çàäà÷à D. Òî÷êà â ìíîãîóãîëüíèêå
Èìÿ âõîäíîãî ôàéëà:
Èìÿ âûõîäíîãî ôàéëà:
Îãðàíè÷åíèå ïî âðåìåíè:
Îãðàíè÷åíèå ïî ïàìÿòè:
Ôîðìàò âõîäíîãî ôàéëà
point.in
point.out
2 ñåêóíäû
256 ìåáèáàéò
 ïåðâîé ñòðîêå òðè ÷èñëà N (3 6 N 6 100000) è
êîîðäèíàòû òî÷êè. Äàëåå â N ñòðîêàõ ïî ïàðå ÷èñåë Ñòðàíèöà 1 èç 2
Âòîðàÿ òðåíèðîâêà ãðóïïû A2 (äèíàìè÷åñêîå ïðîãðàììèðîâàíèå)
Ñàíêò-Ïåòåðáóðãñêèé Ãîñóäàðñòâåííûé Óíèâåðñèòåò, 12 êîòÿáðÿ 2009 ãîäà
êîîðäèíàòû î÷åðåäíîé âåðøèíû ïðîñòîãî ìíîãîóãîëüíèêà â ïîðÿäêå îáõîäà ïî èëè ïðîòèâ ÷àñîâîé ñòðåëêè.
Ôîðìàò âûõîäíîãî ôàéëà
Îäíà ñòðîêà ¾YES¿, åñëè çàäàííàÿ òî÷êà ñîäåðæèòñÿ â
ïðèâåä¼ííîì ìíîãîóãîëüíèêå èëè íà åãî ãðàíèöå, è ¾NO¿
â ïðîòèâíîì ñëó÷àå.
Ïðèìåð
3
1
0
1
0 0
0
1
1
point.in
NO
point.out
Çàäà÷à E. Ïåðåñå÷åíèå îòðåçêîâ
Èìÿ âõîäíîãî ôàéëà:
segments.in
Èìÿ âûõîäíîãî ôàéëà:
segments.out
Îãðàíè÷åíèå ïî âðåìåíè:
2 ñåêóíäû
Îãðàíè÷åíèå ïî ïàìÿòè:
256 ìåáèáàéò
Äâà îòðåçêà [A, B] è [C, D] íà ïëîñêîñòè çàäàíû êîîðäèíàòàìè ñâîèõ êîíöîâ òî÷åê A, B , C ,
D: (Xa , Ya ), (Xb , Yb ), (Xc , Yc ), (Xd , Yd ).
Òðåáóåòñÿ íàéòè ïåðåñå÷åíèå ýòèõ îòðåçêîâ è âûâåñòè:
• ñëîâî Empty, åñëè ýòè îòðåçêè íå ïåðåñåêàþòñÿ;
• êîîðäèíàòû òî÷êè ïåðåñå÷åíèÿ, åñëè ïåðåñå÷åíèå ñîñòîèò èç åäèíñòâåííîé òî÷êè;
• êîîðäèíàòû òî÷åê íà÷àëà è êîíöà îòðåçêà ïåðåñå÷åíèÿ â ëåêñèêîãðàôè÷åñêîì ïîðÿäêå, åñëè ïåðåñå÷åíèå çàäàííûõ îòðåçêîâ îòðåçîê. Òî åñòü ïåðâîé
ñëåäóåò âûâîäèòü òî÷êó ñ ìèíèìàëüíûì x, à åñëè
êîîðäèíàòû x ðàâíû, òî ñ ìèíèìàëüíûì y .
Ôîðìàò âõîäíîãî ôàéëà
Âî âõîäíîì ôàéëå ñîäåðæàòñÿ âîñåìü öåëûõ ÷èñåë, ïî
ìîäóëþ íå ïðåâîñõîäÿùèõ 1 000 êîîðäèíàòû êîíöîâ òî÷åê A, B, C, D. Îòðåçêè ìîãóò áûòü âûðîæäåííûìè.
Ôîðìàò âûõîäíîãî ôàéëà
×èñëîâûå çíà÷åíèÿ â îòâåòå ñëåäóåò îêðóãëèòü äî øåñòè çíàêîâ ïîñëå äåñÿòè÷íîé òî÷êè.
Ïðèìåð
segments.in
0 0
9 9
9 5
0 5
0 0
9 9
15 15
7 7
0 0
9 9
10 10
10 10
segments.out
5.000000 5.000000
7.000000 7.000000
9.000000 9.000000
Empty
Ñòðàíèöà 2 èç 2
Download