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

Documents pareils