THUẬT TOÁN THAM LAM Gồm có (Bài toán tam giác số, Bài toán hái táo, Bài toán túi, Bài toán giao hàng (du lịch), Tô màu) 1. Bài toán tam giác số : int TamGiacThamLam(int a[MAX][MAX],int n,int path[MAX]) { int tong=0; int i=1,j=0,k=0; path[k++]=a[0][0]; tong+=a[0][0];//cập nhật tổng while(ia[i][j+1])//lựa chọn đường { path[k++]=a[i][j];//j;//lưu đường tong+=a[i][j];//cập nhật tổng } else { path[k++]=a[i][j+1];//j+1;//lưu đường tong+=a[i][j+1];//cập nhật tổng j++;//cập nhật cột } i++;//xét hàng } return tong; } 2. Bài toán hái táo : int HaiTaoThamLam(int a[MAX][MAX],int n,int path[MAX]) { //tìm táo nhiều trái hàng dọc int max=a[0][0],vt=0,soTao=0; for(int i=1;i=0) { maxcay=a[i-1][j+1]; vtm = i-1; } return vtm; } 3. Bài toán túi : struct MONDO{ unsigned w; //trọng lượng đồ int v; //giá trị đồ }; //Khai báo biến toàn cục MONDO a[100]; int n;//số loại đồ khác //Hàm đọc liêu từ tập tin void docfile(char *fname, MONDO a[], int &n) { FILE *fp = fopen(fname, "rt"); if (!fp) return; fscanf(fp, "%d", &n); for(int i=0; i . táo, Bài toán cái túi, Bài toán giao hàng (du lịch), Tô màu) 1. Bài toán tam giác số : int TamGiacThamLam(int a[MAX][MAX],int n,int path[MAX]) { int tong=0; int i=1,j=0,k=0; path[k++]=a[0][0]; tong+=a[0][0];//cập. tổng j++;//cập nhật cột } i++;//xét hàng tiếp theo } return tong; } 2. Bài toán hái táo : int HaiTaoThamLam(int a[MAX][MAX],int n,int path[MAX]) { //tìm cây táo nhiều trái nhất ở hàng dọc đầu tiên int