/*
* 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.
*/
//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) ;
}
}
LyoKICogVG8gY2hhbmdlIHRoaXMgbGljZW5zZSBoZWFkZXIsIGNob29zZSBMaWNlbnNlIEhlYWRlcnMgaW4gUHJvamVjdCBQcm9wZXJ0aWVzLgogKiBUbyBjaGFuZ2UgdGhpcyB0ZW1wbGF0ZSBmaWxlLCBjaG9vc2UgVG9vbHMgfCBUZW1wbGF0ZXMKICogYW5kIG9wZW4gdGhlIHRlbXBsYXRlIGluIHRoZSBlZGl0b3IuCiAqLwoKLy9UaHVhdCB0b2FuIHF1YXkgbHVpCnB1YmxpYyBjbGFzcyBUaHVhdFRvYW5RdWF5THVpIHsKICAgIAogICAgaW50IFtdIGtxLCBjaG9uLCB2OwogICAgaW50IG4sIGRlbT0wOwogICAgCiAgICAvL0to4bufaSB04bqhbyBnacOhIHRy4buLCiAgICB2b2lkIGtob2l0YW8oKQogICAgewogICAgICAgIG4gPSA4OwogICAgICAgIHYgPSBuZXcgaW50W25dOwogICAgICAgIHZbMF0gPSA1IDsgdlsxXSA9IDI7IHZbM10gPSA0OyB2WzRdID0gODsgdls1XSA9IDk7IHZbNl0gPSA3OyB2WzddID0gNTsKICAgICAgICBjaG9uID0gbmV3IGludFtuXTsKICAgICAgICBrcSA9IG5ldyBpbnRbbl07CiAgICAgICAgZm9yKGludCBqPTA7ajxuO2orKykKICAgICAgICAgICAgY2hvbltqXSA9IGtxW2pdID0gMDsKICAgIH0KICAgIAogICAgLy9JbiBr4bq/dCBxdeG6owogICAgdm9pZCBpbmtxKCkKICAgIHsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlxuIENhY2ggdGh1IiArICsrZGVtICsgIjoiKTsKICAgICAgICBmb3IoaW50IGo9MDtqPG47aisrKQogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiIrIGtxW2pdKTsKICAgICAgICAgICAgICAgIAogICAgfQogICAgCiAgICAvL1TDrG0gc+G7kSBo4bujcCBsw70KICAgIHZvaWQgdGltKGludCBpLCBpbnQgZCkKICAgIHsKICAgICAgICBpZihpPm4pIGlua3EoKTsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGZvcihpbnQgaj0wOyBqPG47IGorKykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYoY2hvbltqXT09MCAmJiB2W2pdPmQpLy8gTuG6v3UgYsOsbmggeMSDbmcgY2jGsGEgxJHGsOG7o2MgY2jhu41uIHbDoCBjw7MgdGjhu4MgYmF5IAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGtxW2ktMV0gPSB2W2pdOyBjaG9uW2pdPTE7Ly8gTOG6pXkgYsOsbmggeMSDbmcgdsOgIMSRw6FuaCBk4bqldSDEkcOjIMSR4buXLgogICAgICAgICAgICAgICAgICAgIHRpbShpKzEsIHZbal0tZCk7CiAgICAgICAgICAgICAgICAgICAga3FbaS0xXSA9IDA7IGNob25bal09MDsKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgfQogICAgCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXWFyZ3MpewogICAgICAgIFRodWF0VG9hblF1YXlMdWkgbSA9IG5ldyBUaHVhdFRvYW5RdWF5THVpKCk7CiAgICAgICAgaW50IGQ9MjsKICAgICAgICBtLmtob2l0YW8oKTsKICAgICAgICBtLnRpbSgxLGQpOwogICAgfQp9Cg==