1. Trang chủ
  2. » Khoa Học Tự Nhiên

Tài liệu Đề thi toán quốc tế tháng 2-4 2001 pptx

7 399 0
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tài Liệu Đề Thi Toán Quốc Tế Tháng 2-4 2001
Trường học Trường Đại Học Quốc Gia Hà Nội
Chuyên ngành Toán học
Thể loại Tài liệu
Năm xuất bản 2001
Thành phố Hà Nội
Định dạng
Số trang 7
Dung lượng 1 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Khi có bi trên tay mình, người chơi xét các hố theo chiều kim đồng hồ, bắt đầu từ hố ngay sau hố trống và thực hiện công việc sau: • Có hơn một viên bi trên tay bạn: Nếu hố hiện tại đã

Trang 1

Ioiwari Game

Bài toán

Mancala là trò chơi với các viên bi và các hố đã được con người chơi từ rất lâu Bài toán này giới thiệu một dạng của trò chơi Trò chơi giành cho hai người trên một bảng hình tròn có bảy hố trên viền bảng và mỗi người có một bờ Khi trò chơi bắt đầu bằng việc phân phối ngẫu nhiên 20 viên

bi vào các hố sao cho mỗi hố chứa ít nhất 2 viên và nhiều nhất 4 viên bi Hai người chơi lần lượt chơi Một người chơi chọn một hố có các viên bi và lấy tất cả bi ra khỏi hố và cầm trên tay Khi có

bi trên tay mình, người chơi xét các hố theo chiều kim đồng hồ, bắt đầu từ hố ngay sau hố trống

và thực hiện công việc sau:

• Có hơn một viên bi trên tay bạn: Nếu hố hiện tại đã chứa 5 viên bi thì hãy lấy 1 viên ra khỏi

hố đó và đặt lên bờ của bạn, nếu không hãy đặt một viên bị trên tay bạn xuống hố đó

• Trên tay bạn chỉ có một viên bi: Nếu hố hiện tại chứa ít nhất 1 và nhiều nhất 4 viên bi thì hãy lấy tất cả các viên bi từ hố đó và 1 viên trên tay bạn rồi đặt lên bờ, nếu không (hố đó chứa 0 hoặc 5 viên bi) hãy đặt viên bi trên tay bạn vào bờ của người chơi thứ hai

Trò chơi kết thúc khi sau một lần đi tất cả các hố không còn chứa viên bi nào và người chiến thắng là người có nhiều viên bi hơn trên bờ của mình

Người chơi thứ nhất luôn phải tìm cách chiến thắng Hãy viết chương trình chơi trò Ioiwari cho người thứ nhất chiến thắng Cách chơi của người thứ hai luôn tối ưu nghĩa là chỉ cần có một cơ hội anh ta sẽ chiến thắng và chương tình của bạn thua

INPUT và OUTPUT

Chương trình của bạn là người chơi thứ nhất và địch thủ là người chơi thứ hai Khi chương trình của bạn bắt đầu, đầu tiên nó phải đọc một dòng với 7 số nguyên p1, p7: chỉ số bi ban đầu trong các hố từ 1 đến 7 Các hố được được gán số nguyên từ 1 đến 7 theo chiều kim đồng hồ

Sau đó trò chơi bắt đầu với bờ trống Chương trình phải chơi như sau:

• Nếu đến lúc chương trình của bạn chơi, thì chương trình hãy viết số thứ tự hố được chơi vào output

• Nếu đến lúc đối thủ chơi, thì chương trình của bạn đọc số thứ tự hố được chơi từ input

Công cụ

Cho trước một chương trình (ioiwari2 trên Linux, ioiwari2.exe trên Windows), với vai trò người chơi thứ hai Đầu tiên, nó sẽ viết vào output dòng đầu tiên mà chương trình của bạn sẽ đọc

mô tả số viên bi ban đầu trong các hố của trò chơi:

4 3 2 4 2 3 2

Sau đó, chương trình sẽ chơi trò chơi bằng cách đọc nước đi của người chơi thứ nhất từ input và viết nước đi của chính nó vào output

Trang 2

Score

Bài toán

Score là một trò chơi trên một bảng cho hai người di chuyển cùng một mã thông báo từ vị trí này

sang vị trí khác trên bảng Bảng có N vị trí được đánh số từ 1 đến N, và một số mũi tên Mỗi mũi

tên chỉ từ một điểm này đến một điểm khác Mỗi vị trí đều thuộc về một trong hai người chơi (gọi

là người sở hữu) Mỗi vị trí còn một giá trị dương Tất cả các giá trị đều khác nhau Vị trí 1 là vị trí bắt đầu Ban đầu cả hai người chơi đều có số điểm là 0

Trò chơi được thực hiện như sau Ta xác định vị trí hiện tại của mã thông báo trước khi thực hiện

nước đi từ C Bắt đầu trò chơi C ở vị trí 1 Một nước đi gồm các thao tác sau:

1. Nếu giá trị của C lớn hơn số điểm hiện tại của người sở hữu C, thì giá trị của C trở thành số điểm mới của người sử hữu C Ngược lại, số điểm của người sở hữu C không đổi Số điểm

của người chơi còn lại không thay đổi trong trường hợp này

2. Sau đó, người sở hữu C chọn một trong số các mũi tên ngoài vị trí của mã thông báo hiện tại

và đích của mũi tên trở thành vị trí mới của mã thông báo hiện tại Một người chơi có thể thực hiện nhiều nước đi liên tục

Trò chơi kết thúc khi mã thông báo trở về vị trí bắt đầu Người chiến thắng là người chơi có số điểm cao hơn khi trò chơi kết thúc

Các mũi tên được sắp xếp sao cho các điều kiện sao luôn thỏa mãn:

- Luôn có thể chọn được một mũi tên ngoài vị trí của mã thông báo hiện tại

- Mỗi vị trí P đều có thể đến được từ vị trí bắt đầu nghĩa là có một chuỗi các mũi tên từ điểm bắt đầu đến P

- Trò chơi chắc chắn kết thúc sau một số hữu hạn nước đi

Hãy viết chương trình chơi trò chơi và chiến thắng Tất cả các trò chơi được dùng để đánh giá đều

có thể thắng tuỳ vào việc bạn thực hiện nước đi trước hay sau Đối thủ của bạn luôn chơi một cách tối ưu nghĩa là kho có cơ hội anh ta sẽ chiến thắng và chương trình của bạn thua

Input và Output

Chương trình của bạn là ngời chơi thứ nhất và đối thủ là người chơi thứ hai Khi chương trình của bạn bắt đầu chạy, nó sẽ đọc dữ liệu vào từ input gồm: dòng thứ nhất chứa 1 số nguyên chỉ số vị trí

N, 1<=N<=1000 N dòng tiếp theo mỗi dòng chứa N số nguyên chứa thông tin về các mũi tên Nếu có một mũi tên chỉ từ vị trí i đến vị trí j, thì số thứ j trên dòng thứ i trong số N dòng là 1, nếu

không nó sẽ là 0

Dòng tiếp theo chứa N số nguyên chỉ người sở hữu các vị trí Nếu vị trí i thuộc về người chơi 1 (bạn), thì số nguyên thứ i là 1, nếu không nó sẽ là 2

Dòng tiếp theo chứa N số nguyên chỉ giá trị các vị trí Nếu số nguyên thứ i là j, thì giá trị của vị trí

i là j j luôn thoả mãn 1<=j<=N và tất cả các giá trị đều khác nhau

Trang 3

Median Strength

Sau đó, trò chơi bắt đầu với vị trí mã thông báo hiện tại là 1 Chương trình chơi như sau và sẽ thoát ra khi mã thông báo trở lại ví trí 1:

Nếu đến lượt chương trình của bạn thực hiện nước đi, thì nó sẽ viết số vị trí tiếp theo P, 1<= P<=N, vào output

• Nếu đến lượt đối thủ của chương trình của bạn thực hiện nước đi, thì chương trình đọc số vị trí

tiếp theo P, 1<=P<=N, từ input

Xét ví dụ dưới Bảng được minh họa trong hình 1 Các vị trí được đánh dấu tròn thuộc về người chơi thứ nhất và các vị trí đánh dấu vuông thuộc về người chơi thứ hai 2 Mỗi vị trí có một giá trị được viết trong dấu tròn hoặc vuông và các vị trí được đánh số bên cạnh các dấu đó Trò chơi bắt đầu

Kết thúc trò chơi, người chơi 1 được 3 điểm và người chơi 2 được 2 điểm Người chơi 1 thắng

Hướng dẫn lập trình

Trong ví dụ dưới, target là biến nguyên của vị trí

Nếu bạn lập trình bằng C++ và dùng iostreams, hãy dùng lệnh sau để đọc input và viết vào output:

cin>>target;

cout<<target<<endl<<flush;

Trang 4

Median Strength

Nếu bạn lập trình bằng C hoặc C++ và dùng scanf và printf, hãy dùng lệnh sau để đọc input và viết vào output:

scanf ("%d", &target);

printf("%d\n",target); fflush (stdout);

Nếu bạn lập trình bằng Pascal, hãy dùng lệnh sau để đọc input và viết vào output:

Readln(target);

Writeln(target);

Công cụ

Cho trước một chương trình (score2 trên Linux, score2.exe trên Windows) Chương trình đọc

mô tả trò chơi từ tệp score.in theo định dạng như trang trên Chương trình sẽ viết thông tin này vào output theo đúng định dạng đó Output có thể được dùng làm input cho chương trình của bạn với mục đích thử nghiệm Sau đó, chương trình chơi theo cách ngẫu nhiên đọc các nước đi từ input và viết nước đi của nó vào output

Trang 5

Twofive

Bài toán

Các thông tin giữa ông già Noel và người giúp việc của ông được mã hóa bằng ngôn ngữ 25 Bảng chữ cái 25 cũng giống bảng chữ cái Latin nhưng thiếu ký tự 'Z' nghĩa là bảng chữ cái 25 chứa 25 ký tự Latin từ 'A' đến 'Y' theo đúng tứh tự như trong bảng chữ cái Latin Mỗi từ trong ngôn ngữ 25 chứa 25 ký tự khác nhau Một từ có thể được viết trong một bảng kích thước 5x5 với các hàng được điền trước, ví dụ từ ADJPTBEKQUCGLRVFINSWHMOXY được viết như sau:

Một từ theo đúng chuẩn ngôn ngữ 25 có các ký tự nằm trên các hàng và các cột theo thứ tự tăng dần Do đó từ ADJPTBEKQUCGLRVFINSWHMOXY là một từ chuẩn, trong khi đó từ ADJPTBEGQUCKLRVFINSWHMOXY lại không chuẩn vì thứ tự tăng dần ở cột thứ hai và cột thứ ba bị phá vỡ

Ông già tuyết có một cuốn từ điển Cuốn từ điển của ông chứa danh sách các từ chuẩn theo ngôn ngữ 25 xếp theo thứ tự tăng dần với số tứh tự bắt đầu từ 1 Ví dụ, trong từ điển, từ ABCDEFGHIJKLMNOPQRSTUVWXY là từ số 1 và từ ABCDEFGHIJKLMNOPQRSUTVWXY là từ số 2 Từ số 2 được tạo thành do U và T thay đổi

vị trí cho nhau trong từ số 1

Nhưng điều bất lợi là cuốn từ điển lại quá lớn Hãy viết chương trình xác định số thứ tự của một

từ tuỳ ý và tìm từ tương ứng với số thứ tự cho trước Cuốn từ điển chứa tối đa không quá 231 từ

Input

Input là một tệp có tên twofive.in và gồm hai dòng Dòng đầu tiên chứa một chuỗi chỉ gồm một ký tự 'W' hoặc 'N' Nếu dòng đầu tiên chứa ký tự 'W' thì dòng thứ hai sẽ chứa một từ chuẩn theo ngôn ngữ 25 là một chuỗi gồm 25 ký tự Nếu dòng thứ nhất chứa ký tự 'N' thì dòng thứ hai

sẽ chứa một số thứ tự của một từ chuẩn theo ngôn ngữ 25

Output

Output là một tệp có tên twofive.out và chỉ chứa một dòng Nếu dòng thứ hai của input chứa một từ chuẩn theo ngôn ngữ 25 thì dòng này sẽ chứa số thứ tự của từ đó Nếu dòng thứ hai của input chứa số thứ tự của một từ chuẩn theo ngôn ngữ 25 thì dòng này sẽ chứa từ tương ứng với số thứ tự đó

Ví dụ

Input và Output

Trang 6

Twofive

Trang 7

Hướng dẫn lập trình

Trong ví dụ dưới, bạn đọc số nguyên cuối cùng của input vào biến last và biến mymove

Nếu bạn lập trình trong C++ và dùng iostream, hãy dùng lệnh sau để đọc input và viết vào output:

cout<<mymove<<endl<<flush;

cin>>last;

Nếu bạn lập trình bằng C hoặc C++ và dùng scanf và printf, hãy dùng lệnh sau để đọc input và viết vào output:

printf("%d\n",mymove); fflush (stdout);

scanf ("%d", &last);

Nếu lập trình bằng Pascal, hãy dùng lệnh sau để đọc input và viết vào output:

Writeln(mymove);

Readln(last);

Ví dụ

Dưới đây là thứ tự 6 nước đi

 

Ngày đăng: 26/01/2014, 03:20

HÌNH ẢNH LIÊN QUAN

Xét ví dụ dưới. Bảng được minh họa trong hình 1. Các vị trí được đánh dấu tròn thuộc về người chơi thứ nhất và các vị trí đánh dấu vuông thuộc về người chơi thứ hai 2 - Tài liệu Đề thi toán quốc tế tháng 2-4 2001 pptx
t ví dụ dưới. Bảng được minh họa trong hình 1. Các vị trí được đánh dấu tròn thuộc về người chơi thứ nhất và các vị trí đánh dấu vuông thuộc về người chơi thứ hai 2 (Trang 3)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w