Перейти к содержанию

Gros

Пользователи
  • Постов

    1 771
  • Зарегистрирован

  • Посещение

Весь контент Gros

  1. Gros

    Видео приколы

    про водителей улыбнуло)))
  2. Gros

    Видео приколы

    может быть тему перенести в: Развлекательные телепередачи и шоу, приколы и юмор --> Аудио и видео ролики (Приколы и юмор)
  3. Gros

    Видео приколы

    в будущее глядел)))
  4. круто машину припарковал...
  5. ...за окном -30, да еще и отопление отключили... Скоро Лето!!!
  6. Всех с наступившим Новым Годом!!!
  7. Ёжик - через "Ё" пишется, а Ежиха через "Е"... ))))
  8. ЕЖИК - 4 буквы ЕЖИХА - 5 букв Я угадал ??? =))
  9. хехе...ты на счет языка программирования??? я тож матерюсь...но ему ведь курсач кажется на паскале надо...
  10. Идея решения: Данную задачу можно решить используя метод перебора с возвратом. Используя массив координат перемещения, смотрим, где отсутствуют стены, для каждой клетки, и последовательно двигаемся в ту клетку, в которую возможно, предварительно помечая клетку, в которой уже были. Если мы зашли в тупик, то возвращаемся в клетку, из которой вышли. Одновременно считаем количество клеток в каждой комнате. Когда происходит возврат в начальную точку движения, делаем всю комнату просмотренной (при помощи массива логического типа). Затем ищем клетку, в которой ещё не были и делаем её начальной точкой движения. Uses crt; Const n=100; X:array[0..3]of -1..1=(0,-1,0,1); {массив координат перемещения по Y:array[0..3]of -1..1=(-1,0,1,0); клеткам. Индекс элемента массива Type Mas=array[0..n,0..n]of Integer; соответствует степени двойки} var A:mas; B:array[0..n,0..n]of Boolean; m,p,col,rooms,indexX,indexY:integer; procedure Init(Z:string); {заполнение из входного файла массива, представляющего цифровую карту музея} Var f:text; i,j:integer; Begin Assign(f,z); Reset(f); ReadLn(f,m,p); For i:=1 to m do begin For j:=1 to p do Read(f,A[i,j]); ReadLn(f); end; FillChar(B,SizeOf(,true); For i:=1 to m do For j:=1 to p do B[i,j]:=false; Close(f); end; function Degree2(i:integer):integer; {функция, вычисляющая i–ую степень двойки} var j,t:integer; begin t:=1; For j:=1 to i do t:=t*2; Degree2:=t; end; Procedure Solve(i,j:integer); Var k:integer; begin k:=3; While k>=0 do begin If A[i,j] направлении} begin If not B[i+X[k],j+Y[k]] then {определяем, заходили ли мы в клетку ранее} begin Inc(col); {учитываем клетку в общей площади комнаты} B[i,j]:=true; {отмечаем, что в текущей клетке мы уже были} Solve(i+X[k],j+Y[k]); {переходим в следующую клетку} B[i,j]:=False; {делаем клетку, в которой последний раз были не просмотренной, чтобы рассмотреть другие варианты хода из неё в другую клетку} end; end Else A[i,j]:=A[i,j]-Degree2(k); Dec(k); end; end; procedure Prosmotr; {данная процедура отмечает уже просмотренную комнату} var i,j:integer; begin For i:=1 to m do For j:=1 to p do If A[i,j]=0 then B[i,j]:=True; end; begin clrscr; Init('A:museum.txt'); rooms:=0; For indexX:=1 to m do {ищем ранее не просмотренную клетку} For indexY:=1 to p do If not B[indexX,indexY] Then begin col:=1; Inc(rooms); Solve(indexX,indexY); Write(Col,' '); {вывод площади только что просмотренной комнаты} Prosmotr; end; WriteLn; WriteLn(rooms); {вывод количества комнат} readkey; end. держи...
  11. О_о а я всю жизнь думал что они травоядные.....а тут такое...
  12. Во приколисты...тоже поди копилку разбили...или теперь зарплату такими деньгами выдают???
  13. Gros

    Мальчишник :)

    вот он оказывается какой ЧУПА-ЧУПС для взрослых...
  14. 42 попробуй ангийскую букву X в сообщения вставлять...или у тебя обе отказали???
  15. Очень понравилось! Sickness спасибо!
  16. не по теме, но: И пошли российские флудеры и флудоделы флудить во флуде без устали. И зафлудили весь флуд флудами. И флуданулся раздел флуд от флудерства флудеров. И развилась у них болезнь флудофилия. И пришлось флудорам направиться к доктору флудопеду. И сказал флудопед флудофилам: "А нехрена было флудить без меры и зафлуживать весь флуд флудами!" и офлудели от его слов флудофилы и превратились из флудофилов во флудерастов. И направил флудопед флудорастов к врачу флудологу. Флудолог взял флудоскоп и зделал флудерастам флудоскопию. И выяснил флудолог, что они не флудорасты, а флудоголики. И прописал флудолог флудоголикам антифлудин и протифофлудные клизьмы...
  17. темы про надписи на партах уже были...зачем создавать новые...
×
×
  • Создать...