/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package fc3 ;
//Thuat toan quay lui
public class ThuatToanQuayLui {
int [ ] kq, chon, v;
int n, dem= 0 ;
//Khởi tạo giá trị
void khoitao( )
{
n = 8 ;
v = new int [ n] ;
v[ 0 ] = 5 ; v[ 1 ] = 2 ; v[ 3 ] = 4 ; v[ 4 ] = 8 ; v[ 5 ] = 9 ; v[ 6 ] = 7 ; v[ 7 ] = 5 ;
chon = new int [ n] ;
kq = new int [ n] ;
for ( int j= 0 ; j< n; j++ )
chon[ j] = kq[ j] = 0 ;
}
//In kết quả
void inkq( )
{
System .
out .
println ( "\n Cach thu" + ++ dem
+ ":" ) ; for ( int j= 0 ; j< n; j++ )
System .
out .
println ( "" + kq
[ j
] ) ;
}
//Tìm số hợp lý
void tim( int i, int d)
{
if ( i> n) inkq( ) ;
else
for ( int j= 0 ; j< n; j++ )
{
if ( chon[ j] == 0 && v[ j] > d) // Nếu bình xăng chưa được chọn và có thể bay
{
kq[ i- 1 ] = v[ j] ; chon[ j] = 1 ; // Lấy bình xăng và đánh dấu đã đỗ.
tim( i+ 1 , v[ j] - d) ;
kq[ i- 1 ] = 0 ; chon[ j] = 0 ;
}
}
}
public static void main
( String [ ] args
) { ThuatToanQuayLui m = new ThuatToanQuayLui( ) ;
int d= 2 ;
m.khoitao ( ) ;
m.tim ( 1 ,d) ;
}
}
LyoKICogVG8gY2hhbmdlIHRoaXMgbGljZW5zZSBoZWFkZXIsIGNob29zZSBMaWNlbnNlIEhlYWRlcnMgaW4gUHJvamVjdCBQcm9wZXJ0aWVzLgogKiBUbyBjaGFuZ2UgdGhpcyB0ZW1wbGF0ZSBmaWxlLCBjaG9vc2UgVG9vbHMgfCBUZW1wbGF0ZXMKICogYW5kIG9wZW4gdGhlIHRlbXBsYXRlIGluIHRoZSBlZGl0b3IuCiAqLwpwYWNrYWdlIGZjMzsKCi8vVGh1YXQgdG9hbiBxdWF5IGx1aQpwdWJsaWMgY2xhc3MgVGh1YXRUb2FuUXVheUx1aSB7CiAgICAKICAgIGludCBbXSBrcSwgY2hvbiwgdjsKICAgIGludCBuLCBkZW09MDsKICAgIAogICAgLy9LaOG7n2kgdOG6oW8gZ2nDoSB0cuG7iwogICAgdm9pZCBraG9pdGFvKCkKICAgIHsKICAgICAgICBuID0gODsKICAgICAgICB2ID0gbmV3IGludFtuXTsKICAgICAgICB2WzBdID0gNSA7IHZbMV0gPSAyOyB2WzNdID0gNDsgdls0XSA9IDg7IHZbNV0gPSA5OyB2WzZdID0gNzsgdls3XSA9IDU7CiAgICAgICAgY2hvbiA9IG5ldyBpbnRbbl07CiAgICAgICAga3EgPSBuZXcgaW50W25dOwogICAgICAgIGZvcihpbnQgaj0wO2o8bjtqKyspCiAgICAgICAgICAgIGNob25bal0gPSBrcVtqXSA9IDA7CiAgICB9CiAgICAKICAgIC8vSW4ga+G6v3QgcXXhuqMKICAgIHZvaWQgaW5rcSgpCiAgICB7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJcbiBDYWNoIHRodSIgKyArK2RlbSArICI6Iik7CiAgICAgICAgZm9yKGludCBqPTA7ajxuO2orKykKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIiKyBrcVtqXSk7CiAgICAgICAgICAgICAgICAKICAgIH0KICAgIAogICAgLy9Uw6xtIHPhu5EgaOG7o3AgbMO9CiAgICB2b2lkIHRpbShpbnQgaSwgaW50IGQpCiAgICB7CiAgICAgICAgaWYoaT5uKSBpbmtxKCk7CiAgICAgICAgZWxzZQogICAgICAgICAgICBmb3IoaW50IGo9MDsgajxuOyBqKyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmKGNob25bal09PTAgJiYgdltqXT5kKS8vIE7hur91IGLDrG5oIHjEg25nIGNoxrBhIMSRxrDhu6NjIGNo4buNbiB2w6AgY8OzIHRo4buDIGJheSAKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBrcVtpLTFdID0gdltqXTsgY2hvbltqXT0xOy8vIEzhuqV5IGLDrG5oIHjEg25nIHbDoCDEkcOhbmggZOG6pXUgxJHDoyDEkeG7ly4KICAgICAgICAgICAgICAgICAgICB0aW0oaSsxLCB2W2pdLWQpOwogICAgICAgICAgICAgICAgICAgIGtxW2ktMV0gPSAwOyBjaG9uW2pdPTA7CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgIH0KICAgIAogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW11hcmdzKXsKICAgICAgICBUaHVhdFRvYW5RdWF5THVpIG0gPSBuZXcgVGh1YXRUb2FuUXVheUx1aSgpOwogICAgICAgIGludCBkPTI7CiAgICAgICAgbS5raG9pdGFvKCk7CiAgICAgICAgbS50aW0oMSxkKTsKICAgIH0KfQo=