Bài giảng Thuật toán ứng dụng: Chương 1 - Đỗ Phan Thuận
Số trang: 46
Loại file: pdf
Dung lượng: 525.93 KB
Lượt xem: 25
Lượt tải: 0
Xem trước 5 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng Thuật toán ứng dụng - Chương 1: Tư duy thuật toán và cấu trúc dữ liệu - Kỹ năng lập trình được biên soạn với mục tiêu nhằm giúp học viên thực hành giải quyết những vấn đề cho một bài toán lập trình; chỉ ra những ứng dụng của các thuật toán và cấu trúc dữ liệu bạn biết từ khóa học cơ bản về các thuật toán và khóa học cơ bản về cấu trúc dữ liệu;... Mời các bạn cùng tham khảo chi tiết nội dung bài giảng!
Nội dung trích xuất từ tài liệu:
Bài giảng Thuật toán ứng dụng: Chương 1 - Đỗ Phan Thuận Thuật toán ứng dụng TƯ DUY THUẬT TOÁN VÀ CTDL + KỸ NĂNG LẬP TRÌNH Đỗ Phan Thuận thuandp.sinhvien@gmail.com Bộ môn Khoa Học Máy Tính, Viện CNTT & TT, Trường Đại Học Bách Khoa Hà Nội. Ngày 5 tháng 2 năm 2020 1 / 45 Mô hình Bài tập lập trình Thuật toán ứng dụng Yếu tố chính : giải bài toán nhanh nhất có thể! 2 / 45 Mục tiêu Cho một bài toán lập trình, ta sẽ phải I giải một cách hiệu quả, I sử dụng các thuật toán và cấu trúc dữ liệu, I chuyển lời giải thành chương trình, I làm càng nhanh càng tốt (dưới áp lực: thời gian, kết quả..), I và phải làm đúng (không sinh lỗi) Mục tiêu của bài giảng này là thực hành giải quyết những vấn đề trên. 3 / 45 Làm thế nào? Học những dạng bài phổ biến khác nhau Chỉ ra những ứng dụng của các thuật toán và cấu trúc dữ liệu bạn biết từ I khóa học cơ bản về các thuật toán I khóa học cơ bản về cấu trúc dữ liệu Giới thiệu các dạng thuật toán và cấu trúc dữ liệu phổ biến khác Học một số lý thuyết hay dùng Thực hành giải bài toán Thực hành lập trình Thực hành nữa .. và thực hành mãi 4 / 45 Sách tham khảo Competitive Programming by Steven Halim http://libgen.io/ ads.php?md5=f6f195012783a8b3c8bb7628882a51b7 Slides bài giảng Phân tích và thiết kế thuật toán Nguyễn Đức Nghĩa Bài giảng Chuyên đề Lê Minh Hoàng 5 / 45 Các bài giảng Dự kiến các chủ đề Thứ tự. Thời gian Chủ đề Hoạt động 1 Giới thiệu 2 Cấu trúc dữ liệu và thư viện 3 Thực hành 4 Kỹ thuật đệ qui và nhánh cận 5 Chia để trị 6 Qui hoạch động 7 Thực hành 8 Thực hành và Kiểm tra giữa kỳ 9 Qui hoạch động 10 Đồ thị 11 Thực hành 12 Đồ thị 13 Xử lý xâu 14 Thực hành 15 Lớp bài toán NP-đầy đủ 6 / 45 Mẫu đề bài Mẫu chuẩn trong hầu hết các kỳ thi bao gồm I Mô tả bài toán I Mô tả định dạng dữ liệu vào I Mô tả định dạng kết quả ra I Ví dụ Dữ liệu vào/Kết quả ra I Giới hạn thời gian theo giây I Giới hạn bộ nhớ theo bytes/megabytes Yêu cầu viết chương trình giải bài toán đúng càng nhiều bộ dữ liệu càng tốt. Mặc định là dữ liệu vào không cần kiểm tra tính đúng đắn Chương trình không được chạy quá giới hạn thời gian và giới hạn bộ nhớ 7 / 45 Bài toán ví dụ Mô tả bài toán Viết chương trình nhân hai số nguyên. Mô tả dữ liệu vào Dòng đầu tiên chứa một số nguyên T , với 1 ≤ T ≤ 100, là số lượng bộ test. T dòng tiếp theo, mỗi dòng chứa một test. Mỗi test bao gồm 2 số nguyên A, B, với −220 ≤ A, B ≤ 220 , cách nhau ít nhất một dấu cách. Mô tả kết quả ra Kết quả ghi ra mỗi dòng tương ứng với một test chứa một số là giá trị A × B. 8 / 45 Bài toán ví dụ Ví dụ dữ liệu vào Dữ liệu kết quả ra 4 12 3 4 0 13 0 8 1 8 10000 100 100 9 / 45 Lời giải ví dụ 1 # include < iostream > 2 using namespace std ; 3 int main () { 4 int T ; 5 cin >> T ; 6 for ( int t = 0; t < T ; t ++) { 7 int A , B ; 8 cin >> A >> B ; 9 cout Lời giải ví dụ 3 # include < iostream > 4 using namespace std ; 5 int main () { 6 int T ; 7 cin >> T ; 8 for ( int t = 0; t < T ; t ++) { 9 int A , B ; 0 cin >> A >> B ; 1 cout Lời giải ví dụ 5 # include < iostream > 6 using namespace std ; 7 int main () { 8 int T ; 9 cin >> T ; 0 for ( int t = 0; t < T ; t ++) { 1 int A , B ; 2 cin >> A >> B ; 3 cout Lời giải ví dụ 7 # include < iostream > 8 using namespace std ; 9 int main () { 0 int T ; 1 cin >> T ; 2 for ( int t = 0; t < T ; t ++) { 3 int A , B ; 4 cin >> A >> B ; 5 cout Lời giải ví dụ 9 # include < iostream > 0 using namespace std ; 1 int main () { 2 int T ; 3 cin >> T ; 4 for ( int t = 0; t < T ; t ++) { 5 int A , B ; 6 cin >> A >> B ; 7 cout Lời giải ví dụ Khi A = B = 220 , kết quả phải là 240 11 / 45 Lời giải ví dụ Khi A = B = 220 , kết quả phải là 240 Quá lớn với biến nguyên 32-bit, nên bị tràn số 11 / 45 Lời giải ví dụ Khi A = B = 220 , kết quả phải là 240 Quá lớn với ...
Nội dung trích xuất từ tài liệu:
Bài giảng Thuật toán ứng dụng: Chương 1 - Đỗ Phan Thuận Thuật toán ứng dụng TƯ DUY THUẬT TOÁN VÀ CTDL + KỸ NĂNG LẬP TRÌNH Đỗ Phan Thuận thuandp.sinhvien@gmail.com Bộ môn Khoa Học Máy Tính, Viện CNTT & TT, Trường Đại Học Bách Khoa Hà Nội. Ngày 5 tháng 2 năm 2020 1 / 45 Mô hình Bài tập lập trình Thuật toán ứng dụng Yếu tố chính : giải bài toán nhanh nhất có thể! 2 / 45 Mục tiêu Cho một bài toán lập trình, ta sẽ phải I giải một cách hiệu quả, I sử dụng các thuật toán và cấu trúc dữ liệu, I chuyển lời giải thành chương trình, I làm càng nhanh càng tốt (dưới áp lực: thời gian, kết quả..), I và phải làm đúng (không sinh lỗi) Mục tiêu của bài giảng này là thực hành giải quyết những vấn đề trên. 3 / 45 Làm thế nào? Học những dạng bài phổ biến khác nhau Chỉ ra những ứng dụng của các thuật toán và cấu trúc dữ liệu bạn biết từ I khóa học cơ bản về các thuật toán I khóa học cơ bản về cấu trúc dữ liệu Giới thiệu các dạng thuật toán và cấu trúc dữ liệu phổ biến khác Học một số lý thuyết hay dùng Thực hành giải bài toán Thực hành lập trình Thực hành nữa .. và thực hành mãi 4 / 45 Sách tham khảo Competitive Programming by Steven Halim http://libgen.io/ ads.php?md5=f6f195012783a8b3c8bb7628882a51b7 Slides bài giảng Phân tích và thiết kế thuật toán Nguyễn Đức Nghĩa Bài giảng Chuyên đề Lê Minh Hoàng 5 / 45 Các bài giảng Dự kiến các chủ đề Thứ tự. Thời gian Chủ đề Hoạt động 1 Giới thiệu 2 Cấu trúc dữ liệu và thư viện 3 Thực hành 4 Kỹ thuật đệ qui và nhánh cận 5 Chia để trị 6 Qui hoạch động 7 Thực hành 8 Thực hành và Kiểm tra giữa kỳ 9 Qui hoạch động 10 Đồ thị 11 Thực hành 12 Đồ thị 13 Xử lý xâu 14 Thực hành 15 Lớp bài toán NP-đầy đủ 6 / 45 Mẫu đề bài Mẫu chuẩn trong hầu hết các kỳ thi bao gồm I Mô tả bài toán I Mô tả định dạng dữ liệu vào I Mô tả định dạng kết quả ra I Ví dụ Dữ liệu vào/Kết quả ra I Giới hạn thời gian theo giây I Giới hạn bộ nhớ theo bytes/megabytes Yêu cầu viết chương trình giải bài toán đúng càng nhiều bộ dữ liệu càng tốt. Mặc định là dữ liệu vào không cần kiểm tra tính đúng đắn Chương trình không được chạy quá giới hạn thời gian và giới hạn bộ nhớ 7 / 45 Bài toán ví dụ Mô tả bài toán Viết chương trình nhân hai số nguyên. Mô tả dữ liệu vào Dòng đầu tiên chứa một số nguyên T , với 1 ≤ T ≤ 100, là số lượng bộ test. T dòng tiếp theo, mỗi dòng chứa một test. Mỗi test bao gồm 2 số nguyên A, B, với −220 ≤ A, B ≤ 220 , cách nhau ít nhất một dấu cách. Mô tả kết quả ra Kết quả ghi ra mỗi dòng tương ứng với một test chứa một số là giá trị A × B. 8 / 45 Bài toán ví dụ Ví dụ dữ liệu vào Dữ liệu kết quả ra 4 12 3 4 0 13 0 8 1 8 10000 100 100 9 / 45 Lời giải ví dụ 1 # include < iostream > 2 using namespace std ; 3 int main () { 4 int T ; 5 cin >> T ; 6 for ( int t = 0; t < T ; t ++) { 7 int A , B ; 8 cin >> A >> B ; 9 cout Lời giải ví dụ 3 # include < iostream > 4 using namespace std ; 5 int main () { 6 int T ; 7 cin >> T ; 8 for ( int t = 0; t < T ; t ++) { 9 int A , B ; 0 cin >> A >> B ; 1 cout Lời giải ví dụ 5 # include < iostream > 6 using namespace std ; 7 int main () { 8 int T ; 9 cin >> T ; 0 for ( int t = 0; t < T ; t ++) { 1 int A , B ; 2 cin >> A >> B ; 3 cout Lời giải ví dụ 7 # include < iostream > 8 using namespace std ; 9 int main () { 0 int T ; 1 cin >> T ; 2 for ( int t = 0; t < T ; t ++) { 3 int A , B ; 4 cin >> A >> B ; 5 cout Lời giải ví dụ 9 # include < iostream > 0 using namespace std ; 1 int main () { 2 int T ; 3 cin >> T ; 4 for ( int t = 0; t < T ; t ++) { 5 int A , B ; 6 cin >> A >> B ; 7 cout Lời giải ví dụ Khi A = B = 220 , kết quả phải là 240 11 / 45 Lời giải ví dụ Khi A = B = 220 , kết quả phải là 240 Quá lớn với biến nguyên 32-bit, nên bị tràn số 11 / 45 Lời giải ví dụ Khi A = B = 220 , kết quả phải là 240 Quá lớn với ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Thuật toán ứng dụng Thuật toán ứng dụng Cấu trúc dữ liệu Chương trình nhân hai số nguyên Kỹ năng phân loại bài toán Kỹ năng phân tích thuật toánGợi ý tài liệu liên quan:
-
Đề cương chi tiết học phần Cấu trúc dữ liệu và giải thuật (Data structures and algorithms)
10 trang 317 0 0 -
Giải thuật và cấu trúc dữ liệu
305 trang 161 0 0 -
Bài giảng Phân tích thiết kế phần mềm: Chương 1 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
64 trang 150 0 0 -
Tập bài giảng Thực hành kỹ thuật lập trình
303 trang 143 0 0 -
Giáo trình Cấu trúc dữ liệu và thuật toán (Tái bản): Phần 1
152 trang 139 0 0 -
Tài liệu tham khảo: Cấu trúc dữ liệu và giải thuật
229 trang 123 0 0 -
Lập trình C - Cấu trúc dữ Liệu
307 trang 74 0 0 -
Ứng dụng và cài đặt cấu trúc dữ liệu bằng C: Phần 1
338 trang 72 0 0 -
49 trang 70 0 0
-
54 trang 69 0 0