Aliens - International Olympiad in Informatics
Transcription
Aliens - International Olympiad in Informatics
InternationalOlympiadinInformatics2016 12-19thAugust2016 Kazan,Russia day2_3 aliens Country:FRA Aliens Notresatellitevienttoutjustededécouvrirunecivilisationextraterrestresurune planètelointaine.Nousavonsdéjàobtenuunephotobasserésolutiond'unezone carréedelaplanète.Laphotomontreungrandnombredesignesdevieintelligente. Nosexpertsontidentifié n pointsd'intérêtsurlaphoto.Lespointssontnumérotés de 0 à n − 1 .Nousvoulonsdésormaisprendredesphotosdehauterésolutionqui contiennenttousces n points. Eninterne,lesatelliteadécoupélasurfacedelaphotodebasserésolutionenune grilledetaille m par m ,decellulesunitairescarrées.Leslignesetlescolonnesdela grillesontnumérotéesconsécutivementde 0 à m − 1 (depuislehautetlagauche, respectivement).Onnote (s, t) lacelluleàlaligne s etàlacolonne t .Lepoint d'intérêtnuméro i estsituédanslacellule (ri , ci ) .Chaquecellulepeutcontenirun nombrearbitrairedecespoints. Notresatelliteestsuruneorbitestablequipassedirectementpar-dessusladiagonale principaledelagrille.Ladiagonaleprincipaleestlesegmentdedroitequirelieles coinshaut-gaucheetbas-droitedelagrille.Lesatellitepeutprendreunephotohaute résolutionden'importequellezonequisatisfaitlescontraintessuivantes: laformedelazoneestuncarré, deuxcoinsopposésducarrésesituentsurladiagonaleprincipaledelagrille, chaquecelluledelagrilleestsoitcomplètementàl'intérieurdelazone photographiée,soitcomplètementàl'extérieur. Lesatelliten'estcapabledeprendrequ'auplus k photoshauterésolution. Unefoisquelesatelliteafinideprendrelesphotos,iltransmettralaphotohaute résolutiondechaquecellulephotographiéeànotrebaseterrestre(etce, indépendammentdufaitquecettecellulecontienneounondespointsd'intérêt). Lesdonnéesdechaquecellulephotographiéeseronttransmisesuneuniquefois, mêmesilacelluleaétéphotographiéeplusieursfois. Ainsi,nousdevonschoisirauplus k zonescarréesquiserontphotographiées, assurantque: chaquecellulecontenantaumoinsunpointd'intérêtaétéphotographiéeau moinsunefois,et lenombredecellulesquiontétéphotographiéesaumoinsunefoisestminimisé. Votretâcheestdetrouverlepluspetitnombretotalpossibledecellules photographiées. Détailsdel'implémentation 1/3 Vousdevezimplémenterlafonction(méthode)suivante: int64take_photos(intn,intm,intk,int[]r,int[]c) n:lenombredepointsd'intérêt, m:lenombredelignes(etaussidecolonnes)delagrille, k:lenombremaximumdephotosquelesatellitepeutprendre, retc:deuxtableauxdetaille n décrivantlescoordonnéesdescellulesde lagrillequicontiennentdespointsd'intérêt.Pour 0 ≤ i ≤ n −1 ,le i -ème pointd'intérêtestsituédanslacellule(r[i],c[i]), lafonctiondoitretournerlepluspetitnombretotalpossibledecellulesqui sontphotographiéesaumoinsunefois(étantdonnéquelesphotosdoivent couvrirtouslespointsd'intérêt). Veuillezutiliserlemodèledesfichiersfournipourobtenirdesdétailsde l'implémentationdansvotrelangagedeprogrammation. Exemples Exemple1 take_photos(5,7,2,[0,4,4,4,4],[3,4,6,5,6]) Danscetexemplenousavonsunegrille 7 × 7 avec 5 pointsd'intérêt.Lespoints d'intérêtsontsituésdansquatrecellulesdifférentes: (0, 3) , (4, 4) , (4, 5) et (4, 6) .Vouspouvezprendreauplus 2 photoshauterésolution. Unemanièredecapturertousles5pointsd'intérêtsestdeprendredeuxphotos: unephotoducarrédetaille 6 × 6 contenantlescellules (0, 0) et (5, 5) ,etune photoducarrédetaille 3 × 3 contenantlescellules (4, 4) et (6, 6) .Silesatellite prendcesdeuxphotos,iltransmettralesdonnéesde 41 cellules.Cettequantité n'estpasoptimale. Lasolutionoptimaleutiliseunephotopourcapturerlecarré 4 × 4 contenantles cellules (0, 0) et (3, 3) etuneautrephotopourcapturerlecarré 3 × 3 contenant lescellules (4, 4) et (6, 6) .Cecipermetd'obtenirseulement 25 cellules photographiées,cequiestoptimal,donctake_photosdoitretourner 25 . Veuilleznoterqu'ilestsuffisantdephotographierlacellule (4, 6) uneseulefois,bien qu'ellecontiennedeuxpointsd'intérêt. Cetexempleestprésentésurlesfiguresci-après.Lafiguredegauchemontrelagrille quicorrespondàcetexemple.Lafiguredumilieumontreunesolutionsous-optimale danslaquelle 41 cellulesontétéphotographiées.Lafigurededroitemontrela solutionoptimale. 2/3 Exemple2 take_photos(2,6,2,[1,4],[4,1]) Danscetexemplenousavons 2 pointsd'intérêtsituéssymétriquement:dansles cellules (1, 4) et (4, 1) .N'importequellephotovalidequicontientl'und'entreeux contientl'autreaussi.Parconséquent,ilestsuffisantd'utiliseruneseulephoto. Lafigureci-dessousprésentecetexempleetsasolutionoptimale.Danscettesolution, lesatellitecaptureuneseulephotode 16 cellules. Sous-tâches Danstouteslessous-tâches, 1 ≤ k ≤ n . 1. (4points) 1 ≤ n ≤ 50 , 1 ≤ m ≤ 100 , k = n , 2. (12points) 1 ≤ n ≤ 500 , 1 ≤ m ≤ 1000 ,pourtout i telque 0 ≤ ri = ci , 3. (9points) 1 ≤ n ≤ 500 , 1 ≤ m ≤ 1000 , 4. (16points) 1 ≤ n ≤ 4000 , 1 ≤ m ≤ 1 000 000 , 5. (19points) 1 ≤ n ≤ 50 000 , 1 ≤ k ≤ 100 , 1 ≤ m ≤ 1 000 000 , 6. (40points) 1 ≤ n ≤ 100 000 , 1 ≤ m ≤ 1 000 000 . i ≤ n − 1, Evaluateurfourni(grader) L'évaluateurfournilitl'entréeselonleformatsuivant: ligne1:lesentiers n , m et k , ligne2+i( 0 ≤ i ≤ n − 1 ):lesentiers ri et ci . 3/3