Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 
Вернуться
Тема: несколько вопросов
1
  1  Панявин Михаил [HKL], 30 июня 2010 г. 17:40:03
      Тоже недавно решил №221, но там всё давольно сложно
  2  Бубнов Никита Александрович, 30 июня 2010 г. 16:23:20
      А зачем тебе сохранять каждое посещение этой клетки?
Может быть стоит сохранять самое лучшее посещение и пускать на клетку если есть более хорошее?
Хотя тут есть небольшая хитрость до которой лучше додуматься самостоятельно.
  3  Пересадин Илья, 30 июня 2010 г. 8:07:57
      Бубнов Никита Александрович ,да мне тоже кажется что это скорее дфс, нежели бфс.... а насчет 221, меня затрудняет, что он на одной клетке может быть несколько раз, и из за этого переполняется массив :(
  4  Бубнов Никита Александрович, 29 июня 2010 г. 13:36:43
      Только что решил 221ую задачу, обходом в ширину через очередь.
Спрашивайте, постараюсь помочь.
  5  Бубнов Никита Александрович, 29 июня 2010 г. 11:20:06
      А вы уверены что написанное вами есть алгоритм поиска в ширину?
Это же вроде в глубину. Или я ошибаюсь?
Насколько я понимаю обход в ширину через очередь делается.
  6  Панявин Михаил [HKL], 29 июня 2010 г. 9:15:22
      Бывает и такое.
  7  Пересадин Илья, 27 июня 2010 г. 16:37:36
      спасибо за помощь,ну а насчет рейтинга, я знал этот алгоритм, но просто не знал, что он так называется)))
  8  Панявин Михаил [HKL], 27 июня 2010 г. 15:39:19
      Кстати, меня удивляет то, что ты дошёл до 147 места в рейтинге, не зная волнового алгоритма))))
  9  Панявин Михаил [HKL], 27 июня 2010 г. 15:35:57
      1) #include<algorithm>
using namespace std;
int a[101], n;
scanf ("%d", &n);
for (int i=0; i<n; i++)
scanf("%d", &a[i]);
sort(a, a+n);

2) типичный Алгоритм поиска в ширину: опишу как сделать это рекурсией:
вот рекурсивная функция rec(int x, int y, int m), здесь x и y - координаты расматриваемой клетки и m - минимальное количество шагов за которое мы сможем добраться до неё. Тогда наша процедура будет делать следующее:
а) равняет клетку (x,y), m
б) помечает эту клетку как пройденную
в) вызывается рекурсивно для всех соседних клеток с новыми параметрами точек и числом (r+1)

3) сам пока не решил((((
  10  Пересадин Илья, 27 июня 2010 г. 12:51:53
      1) как юзать sort в си
2) какой принцип "волнового" аглогоритма
3) как решать задачу 221(только не надо ответов, типа смотри в обсуждении),часто встречаются такого рода задачи, когда одну и ту же вершину можно посещать неограниченное кол-во раз, и возникает такая проблема: не хватает размера массива
1

Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!

Красноярский краевой Дворец пионеров, (c)2006 - 2026, ИНН 246305493507, E-mail: admin@acmp.ru