Informatică, întrebare adresată de krina89, 9 ani în urmă

buna!stiu ca suna a algoritmul lui lee,dar cum fac cu backtracking in plan?

Se dă o tablă dreptunghiulară formată din n linii și m coloane, definind n*m zone, unele dintre ele fiind libere, altele conținând obstacole. În zona aflată la poziția is, js se află un șoarece care se poate deplasa pe tablă trecând din zona curentă în zona învecinată cu aceasta pe linie sau pe coloană. Scopul sau este să ajungă la o bucată de brânză aflată în zona de la poziția ib, jb, fără a părăsi tabla, fără a trece prin zone care conțin obstacole și fără a trece de două ori prin aceeași zonă.

Determinați câte modalități prin care șoarecele poate ajunge de la poziția inițială la cea a bucății de brânză există.
Date de intrare

Fişierul de intrare soarece.in conţine pe prima linie numerele n m, separate printr-un spațiu. Următoarele n linii conțin câte m valori 0 sau 1, separate prin exact un spațiu, care descriu tabla – valoarea 0 reprezintă o zonă liberă, valoarea 1 reprezintă o zonă ocupată cu un obstacol. Pe linia n+2 se află 4 numere separate prin exact un spațiu, reprezentând is js ib jb.
Date de ieşire

Fişierul de ieşire soarece.out va conţine pe prima linie numărul S, reprezentând numărul de modalități prin care șoarecele poate ajunge de la poziția inițială la cea a bucății de brânză.
Restricţii şi precizări

1 ≤ n,m ≤ 10
1 ≤ is,ib ≤ n, 1 ≤ js,jb ≤ m
poziția șoarecelui și cea a bucății de brânză nu sunt identice și sunt libere


Exemplu

soarece.in

6 7
0 0 0 0 0 0 0
0 1 1 1 1 0 0
0 0 0 0 1 1 0
0 1 1 0 1 0 0
0 1 1 0 1 0 1
0 0 0 0 0 0 0
4 1 2 6

soarece.out

8


AntiEaglesDavids: ce-ai incercat de nu ti-a iesit?
krina89: pai asta e faza,stiu sa implementez rezolvarea cu algoritmul lui lee si sa gasesc o solutie,dar cum fac sa le numar pe toate si unde apare backtracking?
AntiEaglesDavids: m-am gandit si eu la BFS initial dar mi-am dat seama ca trebuie sa numeri TOATE drumurile (nu doar cel mai scurt) catre destinatie deci da, e posibil sa se rezolve cu backtracking.
AntiEaglesDavids: ai facut pana acum probleme cu backtracking?
krina89: da,cateva.am facut cu permutarile multimii,produs cartezian,aranjamente si combinari.cam atat
AntiEaglesDavids: cam tot acelasi principiu este, numai ca in loc sa tii cont de nivelul stivei, tii cont de indicii la pozitia curenta din matrice
krina89: ok..iar pt validare,am conditia sa nu fie obstacol si atat?
krina89: a,probabil si conditia sa nu ies din matrice.cred ca m am prins
AntiEaglesDavids: dap
AntiEaglesDavids: vezi ca probabil va trebui sa ai si o alta matrice pt locurile deja vizitate

Răspunsuri la întrebare

Răspuns de AntiEaglesDavids
5
Am atasat sursa mai jos.

Anexe:
Alte întrebări interesante