Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 3 389

/ вопрос открыт /

Здравствуйте, уважаемые эксперты!
Это опять я))) У меня легкий вопрос: дана матрица размера n*m, причем m*n<=100, и нужно ее заполнить слэшами "/" и "\" так, чтобы они не сливались, т.е чтоб небыло вот так:
\\
/.
Причем слэшей должно быть максимальное количество!
например 5 на 5

///.\
../.\
\\.\\
\./..
\.///


ну а пустые клетки заполнить точками.
Я сначала пытался уголком заполнять, но уголок не всегда работает, например в тесте 9 на 9 моя прога выводит

/././././
/./././..
/./././//
/././....
/././////
/./......
/.///////
/........
/////////
а правильный вариант на один слэш больше, я только поьом додумался, что это динамическое программирование, помогите плз кто чем может!

Черняев Саша Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Черняев Саша (статус: Посетитель)
Вопрос отправлен: 10 ноября 2009, 19:52
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 10; последнее сообщение — 10 ноября 2009, 22:53; участников в обсуждении: 5.
Amidamaru

Amidamaru (статус: 4-ый класс), 10 ноября 2009, 20:08 [#1]:

я так понял что рядом (всерху/снизу или слева/справа) не должно быть 2х разных слешев? правильно?
и чтобы одинаковые слеши не образовывали линий другсдругом.
Приглашаю Вас на наш IRC-канал: #delphiintru в сети DalNet.
Черняев Саша

Черняев Саша (статус: Посетитель), 10 ноября 2009, 20:20 [#2]:

да, правильно
IlluminatI

IlluminatI (статус: 2-ой класс), 10 ноября 2009, 20:41 [#3]:

Черняев Саша, может быть все-таки попробовать олимпиаду самому решать, а не спрашивать решение каждой задачи на форуме? тем более, что не только вы одни там участвуете.
Черняев Саша

Черняев Саша (статус: Посетитель), 10 ноября 2009, 20:49 [#4]:

ну я понимаю, но два теста не проходит, а ошибку найти не могу...
Черняев Саша

Черняев Саша (статус: Посетитель), 10 ноября 2009, 21:41 [#5]:

program Project2;
 
{$APPTYPE CONSOLE}
 
var  mas :array [1..100,1..100]  of integer;
mas1 :array [1..100,1..100]  of  char;
   m,n,j,i,itog :integer;
begin
 
assignfile (input,'f.in');
read(n,m);
 
 
 
 
 
 
itog:=0;
for j:=1 to 100 do
begin
    for i:=1 to 100 do
  mas[i,j]:=0;
end;
for j:=1 to m do
begin
   for i:=1 to n do
   begin
      if (i=1) and (j=1) then mas[i,j]:=1;
 
      if i=1 then
      begin
      if mas[i+1,j-1]=1 then mas [i,j]:=0
      else mas[i,j]:=1;
      end;
 
      if j=1 then
      begin
      if mas[i-1,j+1]=1 then mas [i,j]:=0
      else mas[i,j]:=1;
      end;
 
      if (j<>1) and (i<>1) then
      begin
      if (mas[i-1,j+1]=1) or (mas[i+1,j-1]=1) then mas[i,j]:=0
      else mas[i,j]:=1;
      end;
   end;
end;
for j:=1 to m do
begin
    for i:=1 to n do
 
    if mas[i,j]=1 then itog:=itog+1;
 
end;
assignfile(output,'f.out'); rewrite(output);
 
     for i:=1 to m do
     begin
      for j:=1 to n do
       write(mas1[i,j]);
        writeln;
         end;
      end
       else
          begin
 
writeln(itog);
for j:=1 to m do
begin
    for i:=1 to n do
    begin
 
    if  (mas[i,j])=1 then mas1[i,j]:='/';
    if  (mas[i,j])=0 then mas1[i,j]:='.';
    end;
 
end;
    for i:=1 to n do
     begin
      for j:=1 to m do
       write(mas1[i,j]);
        writeln;
         end;
      end;
 
 
 
 
end.



три теста не проходит
1) 5 на 5
2) 9 на 9
3) 9 на 11
Егор

Егор (статус: 10-ый класс), 10 ноября 2009, 22:00 [#6]:

надо не текст программы выкладывать, а основную идею писать

а вообще, да, согласен - олимпиаду решать надо самому. иначе какой в ней смысл?
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
Черняев Саша

Черняев Саша (статус: Посетитель), 10 ноября 2009, 22:05 [#7]:

ну идея в том, что я заполняю массив слэшами одного типа, и в первой матрице данные представляю в числовом виде; 1-слэш, 0-точка.
потом проверяю правильность расположения, и где возможно ставлю единицы, затем где единицы во второй матрицы ставлю слэши, где нули точки.
Заполнение происходит "уголком"
Черняев Саша

Черняев Саша (статус: Посетитель), 10 ноября 2009, 22:09 [#8]:

вообще-то я для галочки решаю, а то меня препод"повесит"а учителя "съедят". А моя цель в этом году на ЮФО поехать, в прошлом году немного не добрал до призового места на региональной олимпиаде.
Вадим К

Вадим К (статус: Академик), 10 ноября 2009, 22:36 [#9]:

ну сами сделали себе такую ситуацию. Учитесь, решайте, исследуйте. На олимпиаде нас не будет.
начните с изучения этого
http://www.fvn2009.narod.ru/Olympiads/Tasks_Olimp1.htm
потом разбавьте этим
http://www.fvn2009.narod.ru/Olympiads/Problems_Pascal.htm
и под конец закрепите этим
http://www.fvn2009.narod.ru/Olympiads/Glava1/IndexOlimp.htm
Галочка "подтверждения прочтения" - вселенское зло.
Черняев Саша

Черняев Саша (статус: Посетитель), 10 ноября 2009, 22:53 [#10]:

Спасибо!!!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 16:48
Выполнено за 0.03 сек.