Вот задачка: даны два неубывающих массива целых чисел (размерностями k и l). Найти число различных элементов среди них. И вот в чем весь прикол: ЧИСЛО ДЕЙСТВИЙ - ПОРЯДКА СУММЫ РАЗМЕРНОСТЕЙ ЭТИХ МАССИВОВ (K+L)
BlackShadow
21.05.2004 7:13
Код
Type
TArray=Array[Integer] Of Boolean;
Var
i,n:Integer;
Present:^Taray;
Const
k=...;
l=...;
m1:Array[1..k] Of Integer = (...);
m2:Array[1..l] Of Integer = (...);
Begin
New(Present);
For i:=-32768 To 32767 Do
Present^[i]:=False;
For i:=1 To k Do
Present[m1[i]]:=True;
For i:=1 To l Do
Present[m2[i]]:=True;
n:=0;
For i:=-32768 To 32767 Do
If Present^[i] Then
Inc(n);
WriteLn(n);
Dispose(Present)
End.
Сложность реализации оценивается как O(k+l).
kile, а что такое "лол"?
BlackShadow лол это
BlackShadow
21.05.2004 15:05
Я даже догнал, что "лол" относился к названию темы. Это уж точно: полный "лол"
задание По-внимательнее прочитайте! Пример:
1 массив: 1 1 2 3 5
2 массив: 1 2 2 4
число различных элементов=3
vovsik, а не стыдно такое спрашивать ?? это не такая уж и сложная задачка, чтобы ее не решить...
у меня сестра рядом... 7 класс... твою задачку за 20-30 минут на паскале написала. сама, без моей помощи.
ну, если не сложно, выложи ее! Просто код не работает толком
BlackShadow
22.05.2004 17:47
Задание по-понятней писать надо.
А то что получается:
Код
n:=0;
For i:=1 To Min(k,l) Do
If m1[i]<>m2[i] Then
Inc(n);
WriteLn(n)
Так что ли?
сложность тогда тут по-меньше будет...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.