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