đề thi thuật toán và ngôn ngữ lập trình thi cao học

6 109 0
đề thi thuật toán và ngôn ngữ lập trình thi cao học

Đang tải... (xem toàn văn)

Thông tin tài liệu

ĐỀ THI TUYỂN SINH SAU ĐẠI HỌC MÔN THI: THUẬT TỐN VÀ NGƠN NGỮ LẬP TRÌNH Thời gian làm bài: 180 phút Không sử dụng tài liệu Bài (Đệ quy) Xét hàm sau Trên C int f(int n, int x) { int val; if (n == 0) return x; else { tmp = f(n - 1, x - 1); tmp += f(n - 1, x + 1); tmp += f(n – 2, x); return tmp; } } Trên Pascal Function f(n:Integer,x:Integer): Integer; Var val : Integer; Begin If n = Then f := x Else Begin val := f(n - 1, x - 1); val := val + f(n - 1, x + 1); val := val + f(n – 2, x); f := val; End; End; Ký hiệu f(n, x) giá trị trả lại hàm f với đầu vào s ố nguyên không âm n giá trị x 1a) Hãy đưa giá trị f(3,10) 1b) Hãy viết công thức đệ qui cho f(n,x) 1c) Tốc độ tăng f(n,x) phụ thuộc vào đầu vào (n,x)? Hãy đưa đánh giá tốc độ tăng f(n,x) ký hiệu tiệm cận O (ô lớn) Bài (Đống min) Cho mảng A = (2;7;10;15;9;17,14;18;16;11;13) biểu diễn đống (minheap) 2a) Hãy vẽ nhị phân tương ứng với min-heap cho (Chỉ cần vẽ cây, không cần giải thích, diễn giải bước.) 2b) Hãy trình bày thao tác cần thực để xóa phần t có key=10 min-heap nói để thu min-heap Hãy v ẽ thu sau thao tác Bài (Cây mã Huffman) Cho đoạn văn sau: abcbacdeafbafeecfcabaacabbace 3a) Hãy xây dựng mã Huffman cho đoạn văn 3b) Dựa mã Huffman này, lập bảng mã phi tiền tố tiến hành mã hóa cho đoạn văn Bài (Đồ thị) Cho đồ thị có hướng chứa khơng q 1000 đỉnh, bậc ngồi c đỉnh không 10 Để biểu diễn đồ thị nói trên, người ta sử dụng ma trận thưa với định nghĩa sau: Trên C Trên Pascal struct Node { int data; int outNodes[10]; int numberOfOutNodes; }; struct Graph { struct Node nodes[1000]; int numberOfNodes; }; type Node = record data : Integer; outNodes : array[1 10] of Integer; numberOfOutNodes : Integer; end; Graph = record nodes : array[1 1000] of Node; numberOfNodes : Integer; end; Hãy viết chương trình đếm đỉnh liên thơng với v đ th ị g (đ ỉnh liên thông u đỉnh có tồn đường từ v đến u đồ thị) Trên C: int countConnectedNodes(struct Graph *g, int v); Trên Pascal: Function Integer; countConnectedNodes(g : ^Graph , v : Integer) : Bài (Lập trình) Cho n công việc với thời gian bắt đầu thực s 1,s2,…,sn thời gian kết thúc f1,f2,…,fn Cần tìm tập lớn cơng việc mà cặp công việc không trùng thời gian Nói cách khác, cần tìm t ập l ớn nh ất x 1,x2, …,xk cho với ≤ i < j ≤k, i ≠ j sxi ≥ fxj sxj ≥fxi Dữ liệu vào toán cho file văn v ới tên SCHEDULE.INP có cấu trúc sau: • Dòng chứa số nguyên n (1 ≤ n ≤ 1000) số cơng việc • Dòng thứ i số n dòng chứa hai số nguyên si fi, i = 1, 2, , n Hãy viết chương trình PASCAL (hoặc C) nhập liệu vào từ file văn b ản SCHEDULE.INP đưa file văn SCHEDULE.OUT với danh sách cơng việc tìm Ví dụ SCHEDULE.INP SCHEDULE.OUT 3 8 10 11 ĐỀ THI TUYỂN SINH SAU ĐẠI HỌC MƠN THI: THUẬT TỐN VÀ NGƠN NGỮ LẬP TRÌNH Thời gian làm bài: 180 phút Không sử dụng tài liệu Bài (Đệ quy) Xét hàm sau Trên C int f(int n, int x) { int val; if (n == 0) return x; else { val = 2*f(n - 1, x – 1); val += f(n - 1, x + 1); return tmp; } } Trên Pascal Function f(n:Integer,x:Integer): Integer; Var val : Integer; Begin If n = Then f := x Else Begin val := * f(n - 1, x - 1); val := val + f(n - 1, x + 1); f := val; End; End; Ký hiệu f(n, x) giá trị trả lại hàm f với đầu vào số nguyên không âm n giá trị x 1a) Hãy đưa giá trị f(3,10) 1b) Hãy viết công thức đệ qui cho f(n,x) 1c) Tốc độ tăng f(n,x) phụ thuộc vào đầu vào (n,x)? Hãy đưa đánh giá tốc độ tăng f(n,x) ký hiệu tiệm cận O (ô lớn) Bài (So khớp mẫu) Cho đoạn văn sau HERE IS A SIMPLE EXAMPLE 2a) Với bảng chữ tập ký tự có đoạn văn mẫu cho trước P = “EXAMPLE”, xác định vị trí cuối ch ữ có mẫu P (theo giải thuật Last-Occurrence) 2b) Hãy trình bày thao tác cần thực để so khớp mẫu v ới đo ạn văn theo giải thuật Boyer-Moore Bài (Cây biểu thức) 3a) Hãy sử dụng ngăn xếp để chuyển biểu thức dạng trung tố sau thành bi ểu thức dạng hậu tố: 10 – 40 / / ^ - 3b) Hãy trình bày cách tính giá trị biểu thức hậu tố thu câu 3a Bài (Cây nhị phân tìm kiếm) Để biểu diễn nhị phân tìm kiếm, người ta sử dụng định nghĩa sau: Trên C struct TreeNode { int key; struct TreeNode *left; struct TreeNode *right; }; typedef TreeNode *Tree; Trên Pascal type TreeNode = record key : Integer; left : ^TreeNode; right : ^TreeNode; end; Tree = ^TreeNode; Hãy viết chương trình bổ sung khóa k vào t Nếu khóa tồn tại, chương trình trả giá trị 0, ngược lại chương trình trả giá trị Trên C: int addKey(Tree t, int k); Trên Pascal: Function addKey(g : Tree , k : Integer) : Integer; Bài (Lập trình) Cho mảng số nguyên A = (a1,…,an) Cần tìm số i, j với ≤ i < j ≤n, cho tổng ai+ai+1+…+aj lớn Dữ liệu vào toán cho file văn với tên MAXSUM.INP có cấu trúc sau: • Dòng chứa số nguyên n (1 ≤ n ≤ 20000) số ph ần t dãy s ố cho • Dòng thứ i số n dòng chứa số nguyên ai, i = 1, 2, , n Hãy viết chương trình PASCAL (hoặc C) nhập liệu vào từ file văn b ản MAXSUM.INP đưa file văn MAXSUM.OUT với số i, j tìm thấy dòng thứ giá trị tổng dòng thứ Ví dụ MAXSUM.INP −2 −3 −1 −5 MAXSUM.OUT ... tìm Ví dụ SCHEDULE.INP SCHEDULE.OUT 3 8 10 11 ĐỀ THI TUYỂN SINH SAU ĐẠI HỌC MƠN THI: THUẬT TỐN VÀ NGƠN NGỮ LẬP TRÌNH Thời gian làm bài: 180 phút Không sử dụng tài liệu Bài (Đệ quy) Xét hàm sau... chương trình PASCAL (hoặc C) nhập liệu vào từ file văn b ản SCHEDULE.INP đưa file văn SCHEDULE.OUT với danh sách cơng việc tìm Ví dụ SCHEDULE.INP SCHEDULE.OUT 3 8 10 11 ĐỀ THI TUYỂN SINH SAU ĐẠI HỌC... ^TreeNode; end; Tree = ^TreeNode; Hãy viết chương trình bổ sung khóa k vào t Nếu khóa tồn tại, chương trình trả giá trị 0, ngược lại chương trình trả giá trị Trên C: int addKey(Tree t, int k);

Ngày đăng: 10/09/2019, 14:33

Từ khóa liên quan

Mục lục

  • DeThiMau-01NN lập trình.pdf

  • DeThiMau-02 (1)NN lập trìh.pdf

Tài liệu cùng người dùng

Tài liệu liên quan