Блог пользователя emli

Автор emli, 13 лет назад, По-русски
http://acmp.ru/index.asp?main=task&id_task=127
помогите с задачкой у меня вронг ансвер 4 тесте
  • Проголосовать: нравится
  • -49
  • Проголосовать: не нравится

13 лет назад, # |
  Проголосовать: нравится +20 Проголосовать: не нравится
Я думаю, стоит применить поисковый алгоритм Брина и Пейджа, типизированный поиском в ширину :О
  • 13 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится
    я думаю можно свести к поиску потока минимальной стоимости величины 1. 
13 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
Странный вопрос. Обычно в таких случаях принято показать свое решение,  в котором ошибка.
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Рекурсивно переходите на следующую вершину, только если, путь до неё, найденный раньше, больше, или же раньше путь не был найден.
    • 13 лет назад, # ^ |
      Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится


      #include <fstream>
      #include <string>

      using namespace std;
      ifstream f("input.txt");
      ofstream o("output.txt");
      int a[101][101],us[101],n,acc;
      void i_find_way(int w1,int w2,int len)
       {
        int i;
        us[w1]=1;
        if(w1==w2){o<<len<<endl;acc=1;}
        for(i=1;i<=n;i++)
         if((a[w1][i]==1&&a[i][w1]==1) && us[i]==0)
         {us[i]=1;i_find_way(i,w2,len+1);}
       }
      int main()
      {

       int i,j,q1,q2;
       f>>n;
       for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
         f>>a[i][j];
         f>>q1>>q2;
         
       i_find_way(q1,q2,0);
       if(acc==0)o<<-1<<endl;
       return 0;
      }


      где ошибка?
      • 13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        3
        0 1 1
        1 0 1
        1 1 0
        1 3

        ответ должен быть 1.
        почитайте где-нибудь чем отличается поиск в глубину и в ширину.
13 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
Напиши что-нибудь из вышеописанного :)
Если ничего не получится, то пиши просто поиск в ширину.
13 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится
Вообще-то эта задача решается обычным Флойдом)))
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    По моему- тут проще написать ширину, чем Флойда