Sziasztok!
Egy újabb topcoderes feladat, nem olyan túl bonyolúlt, de nem is
sablon, ha jól emlékszem. :)
You are organizing a local Rock-Paper-Scissors Tournament, where the
best N players in your town will compete for fame and prizes. You have
already ranked the participants according to their performance in the
qualifying round, so each one of them will have a seed for winning the
tournament in the range from 1 to N.
The tournament will be in a knockout format and will consist of
multiple rounds. During each round the competitors still left in the
competition are randomly paired up with each other. The winners from
each game advance to the next round. The great champion is the winner
of the final game between the last two remaining players.
The tournament starts soon, and you are preoccupied with some
pre-statistics. You estimate that a player with any seed S can win
against players with greater seeds, and against ones with lower seeds,
if the difference between their seeds is not greater than sqrt(C * S),
where C is a constant. Assuming that the outcome of all the played
games during the tournament agrees with your estimation, a player can
win the tournament if there exists an assignment of games in each of
the rounds such that the player can win each round.
You will be given two ints, rounds, denoting the number of rounds, and
the constant C. Return the greatest seed of a player that could win
the tournament. Note that N, the number of competitors will be N =
2rounds.
Definition
Class:
RPSTournament
Method:
greatestSeed
Parameters:
int, int
Returns:
int
Method signature:
int greatestSeed(int rounds, int C)
(be sure your method is public)
Constraints
-
rounds will be between 1 and 16, inclusive.
-
C will be between 0 and 1500, inclusive.
Examples
0)
2
0
Returns: 1
There is no room for surprises here. Since nobody can win against a
higher-rated opponent, the lowest seed will win the tournament.
1)
3
1
Returns: 6
Player 2 can win against player 1, so both of them can win the final
if they are to meet in that phase of the competition. Since players 3
and 4 can beat player 2, they can win the tournament as long as player
2 wins against player 1 somewhere before the final. Finally, players 5
and 6 can beat player 4 in the final, as long as player 4 wins against
player 2 in the semifinals and player 2 eliminates player 1 in the
first round. It is impossible for players 7 and 8 to win the
tournament. We return the greatest seed of those who can win, namely
6.
2)
4
1
Returns: 9
3)
7
3
Returns: 50
4)
15
180
Returns: 9755
Watch out for timeout!
Hi! A feladat linearis idoben megoldasa egy ismert feladat suffix tree-kkel
kapcsolatban
A megoldas benne van Dan Gusfield "Algorithms on Strings, Trees and
Sequences: Computer Science and Computational Biology" cimu konyveben (201.
oldal), a konyv joresze (tobbek kozt ez is) fent van Google Books-on
Errol a megoldasrol viszont se azt nem latom, hogy helyes lenne, se pedig
hogy linearis ideju, mondjuk lehet hogy csak azert nem bizok ebben, mert az
ismert megoldas ennel joval bonyolultabb (Ukkonen-algoritmus es Lowest
Common Ancestor-problema <O(n),O(1)> ideju megoldasa is kell hozza) De
persze lehet hogy mukodhet, csak tul konnyunek tunik
NGG
Message: 1
Date: Sun, 20 Sep 2009 23:31:50 +0200
From: G?bor Feh?r <feher_g(a)freemail.hu>
To: acm-valogato(a)cs.bme.hu
Subject: Re: [acm-valogato] acm-felkeszites - feladat
Message-ID:
<328f8b410909201431v2e1006e9y42ff8ae782aeb07f(a)mail.gmail.com>
Content-Type: text/plain; charset=ISO-8859-2
Sziasztok,
megpr?b?ltam leprogramozni ezt az algoritmust, de elakadtam, ?s van
egy k?rd?sem.
J?l ?rtettem, hogy visszavezett?k a probl?m?t egy leghosszabb
ism?tl?d? r?szstring keres?s?re? P?ld?ul: ha "abcvucbaww"-ben keres?nk
leghosszabb r?szpalindromot, akkor ehelyett "abcvucbaww$wwabcuvcba"
-ban keres?nk leghosszabb ism?tl?d? r?szstringet? Ezzel az a
probl?m?m, hogy ?gy az eredm?ny "abc" vagy "cba" lesz a helyes "zz"
helyett. Sz?val val?sz?n?leg rosszul ?rtettem. Konkr?tan az nem
vil?gos, hogy mit csin?lunk, amikor elk?sz?lt a "gyors?t?t?mb?nk".
Viszont, line?ris id?ben is megoldhat? a probl?ma! Ezt ?ll?t?lag n?gy
h?napig tartott kital?lni egy PhD hallgat?nak, ?hgyhogy nem j?v?heti
feladatnak aj?nlom, hanem belinkelem a megold?st:
http://www.akalin.cx/2007/11/28/finding-the-longest-palindromic-substring-i…
Ett?l f?ggetlen?l szeretn?m meg?rteni M?t? verzi?j?t is!
G?bor
2009/9/17 Ildi Schlotter <schlotterildi(a)gmail.com>:
> Sziasztok,
>
>
> Mate kuldott egy feladatot (koszonjuk!), lehet rajta gondolkodni holnapig:
>
>> Adott egy maximum 10^4 hosszu string (mondjuk az angol abc kisbetuibol).
>> Keressuk meg a leghosszabb palindrom-reszstringjet.
>
> Ildi
> _______________________________________________
> acm-valogato mailing list
> acm-valogato(a)sziami.cs.bme.hu
> http://sziami.cs.bme.hu/mailman/listinfo/acm-valogato
>
Sziasztok,
Mate kuldott egy feladatot (koszonjuk!), lehet rajta gondolkodni holnapig:
> Adott egy maximum 10^4 hosszu string (mondjuk az angol abc kisbetuibol).
> Keressuk meg a leghosszabb palindrom-reszstringjet.
Ildi
Sziasztok,
alakul a holnapi tema, ime a harmadik jelolt:
http://code.google.com/codejam/contest/dashboard?c=32002#s=p2
Ildi
---------- Forwarded message ----------
From: Gábor Fehér <feherga(a)gmail.com>
Date: 2009/9/17
Subject: Re: [acm-valogato] acm-felkeszites - feladat
To: Ildi Schlotter <schlotterildi(a)gmail.com>
Szia,
úgy tűnik csak read-only vagyok a listán.
Szerintem a következő is egy érdekes feladat:
Gábor
Sziasztok,
meg egy ajanlat erkezett, lasd a mellekletet.
Lehet am egybol a listara is kuldeni! :)
Ildi
---------- Forwarded message ----------
From: Akos Ludanyi <llutyo(a)gmail.com>
Date: 2009/9/17
Subject: ACM felkészítő feladat
To: schlotterildi(a)gmail.com
Szia!
A csatolt feladattal TopCoderen találkoztam, és szerintem érdekes
feladat a felkészítőre (van megoldásom is).
Üdv.:
Ákos
Kedves érdeklődők!
A BME Számítástudományi és Információelméleti Tanszéken a
mostani félévben is szervezünk az algoritmusok iránt érdeklődőknek
foglalkozásokat. Ezeken elsősorban versenyfeladatokat oldunk meg,
így ez egyben jó lehetőség az őszi ACM nemzetközi programozó
csapatversenyre való felkészülésre is. Várjuk az új jelentkezőket, de
azokat is, akik már korábban jártak.
Az előző évekhez képest szeretnénk jobban bevonni a hallgatóságot,
hogy olyan feladatokról beszéljünk, ami akár a rutinos versenyzőknek
is érdekes. Ezért már előre arra szeretnék buzdítani minden érdeklődőt,
hogy ha van olyan algoritmikus feladata (versenyről vagy máshonnan),
amit szerinte érdemes közösen megnézni, az hozza el és adja fel a
többieknek.
Akit érdekelnek a foglalkozások és járni szeretne, jöjjön el
időpont-egyeztetésre
2009. szeptember 14-én, hétfőn 16.15-kor az I.B.134-es terembe
(a tanszék területén levő terem)!
Ha valaki szeretne járni, de hétfőn nem tud eljönni, akkor lehetőleg
még a megbeszélés előtt írja meg nekem, mik számára a rossz időpontok
-- amit a lehetőségek szerint figyelembe veszünk.
Friedl Katalin (friedl(a)cs.bme.hu)