From: | "Mihai Patrascu" <mihai_p@pcnet.ro> | Block Address | Add to Address Book |
To: | "Mugurel Ionut Andreica" <mugurel_ionut@yahoo.com> |
Subject: | Re: Problema cu casieri... |
Date: | Mon, 26 Mar 2001 20:00:11 +0300 |
|
|
> Problema lu Mugurel cu casierii
Sa vedeti ca m-a prins si pe mine chestia cu LP-ul... Exista decat 24
de
specii de casieri (clasificati in functie de ora de la care isi ofera
serviciile). Numaram cati sunt din fiecare; sa-i zicem a[i]. Pentru
fiecare
j trebuie ca suma din a[j-i] cu i intre 0 si 7 sa fie cel putin egala
cu
numarul de casieri necesari la ora resp. In acelasi timp fiecare a[i]
trebuie sa fie mai mic sau egal cu nr disponibil de casieri care incep
lucrul la ora i. In conditiile date trebuie sa minimizam suma din a[i].
Asta e ILP, nu? Acum, aplicam LP si exista o reducere triviala de la o
solutie pe reale la una pe intregi care nu mareste functia cost. Deci
exista
solutie polinomiala. Fac totu bine, nu? Bineinteles, nu prea stiu care
ar fi
o solutie polinomiala, dar stiu ca exista... incurajator, nu? ;-)
Intrebare: daca chiar incerc s-o fac cu LP si aplic alogritmu ala care
incepe cu Ka-ceva, ce complexitate imi iese? Se poate face asa ceva la
concurs? Sau simplex?
Problema ramane deschisa: care este o solutie polinomiala la problema
asta?
Eu unu nu m-am prins inca.
> Problema de la USACO cu vaci in poligoane
Am implementat astazi solutia evidenta. Mi-a luat vreo 3 ore si nu sunt
deloc sigur ca n-am gresit ceva si nu-mi dau seama. Imi lua mai mult
daca nu
foloseam atan2() si qsort() (pentru Pascalisti). Daca nu gaseste cineva
vreo
idee mai simpla, nu prea putem spune ca stim s-o facem p-asta. Solutia
mea
era sa construiesti poligoanele brute-force. Fiecare segment e in max 2
poli
(u->v si v->u). Un poligon il faci parcurgand segmentele si alegandu-l
mereu
pe cel mai din dreapta. Fiindca pot fi incluse unele intr-altele sortez
poligoanele dupa arie. Algoritmul de determinare daca un punct e
intr-un
poligon sau nu e cel clasic.
=========
Cum faceti problema de la acelasi USACO cu distrubuirea vacilor in
barns?
Enuntul simplificat: Ai max 5000 de numere intre 1 si 1e6. Trebuie sa
gasesti k minim astfel incat numerele date dau resturi diferite
impartite la
k.
mp
Privacy Policy-
Terms of Service
-
Guidelines
Copyright © 1994-2001
Yahoo! Inc. All rights reserved.