Obcy (Aliens) - International Olympiad in Informatics

Transkrypt

Obcy (Aliens) - International Olympiad in Informatics
InternationalOlympiadinInformatics2016
12-19thAugust2016
Kazan,Russia
day2_3
aliens
Country:POL
Obcy(Aliens)
Najednejzodległychplanetnaszsatelitawykryłśladycywilizacji.NaZiemiędotarło
jużpierwsze,niskiejrozdzielczościzdjęciekwadratowegoobszarutejplanety.Zdjęcie
wskazujenawielemiejsc,gdziemogąznajdowaćsięśladyżycia.Naszymekspertom
udałosięzidentyfikowaćnazdjęciu n interesującychpunktów.Punktytesą
ponumerowaneod 0 do n − 1 .Kolejnymkrokiembędziewykonaniewysokiej
rozdzielczościzdjęćzawierającychwszystkiete n punktów.
Naobszarzeznajdującymsięnazdjęciu(tymoniskiejrozdzielczości)satelitananiósł
siatkęowymiarach m na m złożonązjednostkowychpól.Takwiersze,jakikolumny
siatkisąponumerowanekolejnood 0 do m − 1 (odpowiednioodgóryiodlewej).
Przez (s, t) oznaczamypoleznajdującesięnaprzecięciuwiersza s ikolumny t .
Interesującypunktnumer i znajdujesięnapolu (ri , ci ) .Każdepolemożezawierać
dowolniewieleinteresującychpunktów.
Naszsatelitaznajdujesięnaorbicieprzebiegającejbezpośrednionadgłówną
przekątnąsiatki,przyczymgłównaprzekątnatoodcinekłączącylewygórnyiprawy
dolnyrógsiatki.Satelitamożewykonaćwysokiejrozdzielczościzdjęciedowolnego
obszaru,któryspełnianastępującewarunki:
makształtkwadratu,
dwaprzeciwległewierzchołkitegokwadratuznajdująsięnagłównejprzekątnej
siatki,
każdepolesiatkiznajdujesięalbocałkowiciewewnątrz,albocałkowiciena
zewnątrzfotografowanegoobszaru.
Satelitamożewykonaćconajwyżej k zdjęćwwysokiejrozdzielczości.
Gdytylkosatelitawykonawszystkiezdjęcia,wyślenaZiemięwysokiejrozdzielczości
zdjęciekażdegozfotografowanychpól(niezależnieodtego,czypoletozawiera
jakiekolwiekinteresującepunkty).Danezkażdegoztychpólzostanąprzesłane
dokładnieraz,nawetjeżelipoletozostałosfotografowanewielokrotnie.
Takwięcmusimywybraćconajwyżej k kwadratowychobszarów,którezostaną
sfotografowane,takaby:
każdezpólzawierającychinteresującepunktyznalazłosięnaconajmniejjednym
zezdjęćoraz
liczbapól,któreznajdąsięnaconajmniejjednymzdjęciu,byłajaknajmniejsza.
Twoimzadaniemjestwyznaczenienajmniejszejmożliwejłącznejliczbypólna
zdjęciach.
Szczegółyimplementacji
1/3
Powinieneśzaimplementowaćnastępującąfunkcję(metodę):
int64take_photos(intn,intm,intk,int[]r,int[]c)
n:liczbainteresującychpunktów,
m:liczbawierszy(azarazemliczbakolumn)siatki,
k:maksymalnaliczbazdjęć,jakiemożewykonaćsatelita,
ric:dwietablicerozmiaru n opisującewspółrzędnepólsiatki
zawierającychinteresującepunkty.Dlakażdego 0 ≤ i ≤ n −1 , i -tyz
interesującychpunktówznajdujesięnapolu(r[i],c[i]).
Funkcjapowinnazwrócićnajmniejsząmożliwąłącznąliczbępól,które
znajdąsięnaconajmniejjednymzdjęciu(przyzałożeniu,żezdjęcia
pokrywająwszystkiezinteresującychpunktów).
SzczegółyimplementacjiwTwoimjęzykuprogramowaniaznajdująsięw
dostarczonychplikachzszablonami.
Przykłady
Przykład1
take_photos(5,7,2,[0,4,4,4,4],[3,4,6,5,6])
Wtymprzykładziemamysiatkęowymiarach 7 × 7 zawierającą 5 interesujących
punktów.Interesującepunktyznajdująsięnaczterechróżnychpolach: (0, 3) ,
(4, 4) , (4, 5) i (4, 6) .Satelitamożewykonaćconajwyżej 2 zdjęciawwysokiej
rozdzielczości.
Jednymzesposobówuchwyceniawszystkichinteresującychpunktówjestwykonanie
dwóchzdjęć:zdjęciapokrywającegoobszar 6 × 6 zawierającypola (0, 0) i (5, 5) i
zdjęciapokrywającegoobszar 3 × 3 zawierającypola (4, 4) i (6, 6) .Jeślisatelita
wykonatedwazdjęcia,wyślenaZiemiędanez 41 pól.Niejesttooptymalnywynik.
Optymalnymrozwiązaniemjestwykonaniejednegozdjęciapokrywającegoobszar
4 × 4 zawierającypola (0, 0) i (3, 3) idrugiegozdjęciapokrywającegoobszar
3 × 3 zawierającypola (4, 4) i (6, 6) .Wtensposóbnazdjęciachznajdziesięłącznie
tylko 25 pól,cojestoptymalnymwynikiem,więcfunkcjatake_photospowinna
zwrócić 25 .
Zauważ,żepole (4, 6) wystarczysfotografowaćraz,mimoiżzawieraonodwa
interesującepunkty.
Przykładtenprzedstawiononaponiższychrysunkach.Rysunekpolewejpokazuje
siatkęzzaznaczonymiinteresującymipunktami.Naśrodkowymrysunkuzaznaczono
nieoptymalnerozwiązanie,wktórymnazdjęciachznajdujesię 41 pól.Rysunekpo
prawejprzedstawiaoptymalnerozwiązanie.
2/3
Przykład2
take_photos(2,6,2,[1,4],[4,1])
Wtymprzypadkumamy 2 interesującepunktypołożonesymetrycznie,napolach
(1, 4) i (4, 1) .Każdepoprawnezdjęciezawierającejedenznichzawieratakżedrugi
znich.Wystarczyzatemwykonaćjednozdjęcie.
Rysunkiponiżejprzedstawiajątenżeprzykładijegooptymalnerozwiązanie.Wtym
rozwiązaniusatelitawykonujejednozdjęciepokrywające 16 pól.
Podzadania
Wewszystkichpodzadaniachzachodzi 1 ≤ k ≤ n .
1. (4punkty) 1 ≤ n ≤ 50 , 1 ≤ m ≤ 100 , k = n ,
2. (12punktów) 1 ≤ n ≤ 500 , 1 ≤ m ≤ 1000 ,dlakażdego i takiegoże
0 ≤ i ≤ n − 1 , ri = ci ,
3. (9punktów) 1 ≤ n ≤ 500 , 1 ≤ m ≤ 1000 ,
4. (16punktów) 1 ≤ n ≤ 4000 , 1 ≤ m ≤ 1 000 000 ,
5. (19punktów) 1 ≤ n ≤ 50 000 , 1 ≤ k ≤ 100 , 1 ≤ m ≤ 1 000 000 ,
6. (40punktów) 1 ≤ n ≤ 100 000 , 1 ≤ m ≤ 1 000 000 .
Przykładowyprogramsprawdzający
Przykładowyprogramsprawdzającywczytujedanewnastępującymformacie:
wiersz1:liczbycałkowite n , m oraz k ,
wiersz 2 + i ( 0 ≤ i ≤ n − 1 ):liczbycałkowite ri oraz ci .
3/3

Podobne dokumenty