მოვყვეთ ერთი ბოლოდან და ვთქვათ რიცხვის რაღაც ნაწილი ავაგეთ. თითოეული ციფრისთვის 3 ნაირი მდგომარეობა შეიძლება გვქოდნეს: არ შეგვხვედრია, შეგვხვდა ლუწჯერ, შეგვხვდა კენტჯერ. ანუ 3^10 მდგომარეობაა იდეაში. დალშე თქვენც მოიფიქრებთ იმედია დინამიურ ამოხსნას.
if (b[i][j]==b[i+1][j] && b[i][j]==b[i][j+1] && b[i][j]==b[i+1][j+1])
a[i][j]=min(a[i+1][j],a[i][j+1],a[i+1][j+1])+1;
else a[i][j]=1;
ასეთი რაოდენობა რამდენი განსხვავებული სიგრძის შუალედს შეესაბამება, ალბათ მარტივად შეიძლება იპოვო (მე დამეზარა და ორობითი ძებნა დავწერე, ანუ მთლად sqrt(N) დრო არ მაქვს).
Dixtosa ![]() Eშისაიდან მოვიდა 3**13?ისე 4 * 52 * 3**13 = 331M+ ...
|
Quick ![]() Upsolving ჩაირთო...
|
saba_tavdgiridze ![]() აღარ მინდა.:)...
|
saba_tavdgiridze ![]() B ამოცანის 17 ტესტს ვერ მიმანიშნებთ?...
|
tornike5 ![]() ვაპირებდი იგივე მეკითხა მარა მეგონა უეჭველი იქნება...
|
giorgi123 ![]() მადლობა.შარშან ფინალში ამოცანების ყურებით ვიფარგლე...
|
Elle ![]() შარშან ფინალს codeblocks-ით წერდით?დავაყენეთ codeb...
|