Bài 1: Hỏi 1 số N có dạng 2*a + 3*b + 5*c hay ko? Sau đó in ra các số có dạng đó trong đoạn từ A đến B
Bài 2: Cho 1 biểu thức gồm các số và dấu + hoặc -. Hỏi biểu thức đó có đúng đắn ko? VD: "-3+2+5-6+7" là bt đúng, "3--2+5+7" và "+365+7+4+" là biểu thức sai.
Bài 3: Anh wên rồi
thay đổi nội dung bởi: duyhung123abc, 21-03-2009 lúc 11:58 AM.
Bài 1: chắc cũng tương tự bài 1 năm ngoái
Bài 2: Cho 1 chuỗi các kí tự có độ dài N (N là bội số của 30). Người ta thực hiện lần lượt các thao tác như sau. 1 thao tác gồm 3 bước:
_B1: chia chuỗi thành các chuỗi con, mỗi chuỗi con độ dài 5 kí tự. Với mỗi chuỗi con ta đảo ngược nó lại, rồi lại ghép các chuỗi con lại theo thứ tự ban đầu.
_B2: chia chuỗi thành .................................................. 3 kí tự................
_B3: chia chuỗi thành .................................................. 2 kí tự................
Thực hiện thao tác K lần. Hỏi kí tự thứ i ban đầu sau K lần biến đổi sẽ chuyển đến vị trí thứ mấy?
Chú ý: dữ liệu chỉ cho biết số N là độ dài chuỗi chứ ko cho chuỗi cụ thể
VD: N=6 "123456" (ví dụ thôi, 30 chịu ko nổi)
thực hiện bước chia thành các nhóm 2 kí tự thì:
_Chia thành 3 nhóm "12" "34" "56"
_Đảo ngược "21" "43" "65"
_Ghép lại "214365"
Vậy
_Nếu i=1 thì in ra là 2 (vì kí tự ở vtrí 1 trong chuỗi đầu đã chuyển đến vtrí 2
_Nếu i=3 thì in ra là 4
_Nếu i=6 thì in ra là 5
.........................
Bài 3:
Cho N điểm trên mặt phẳng Oxy, điểm thứ i có tọa độ là (x_i ; y_i).
Sắp xếp các điểm sao cho điểm đứng sau có hoành độ x lớn hơn điểm đứng trước, trong trường hợp có 1 số đỉnh cùng hoành độ thì sắp tăng nó theo tung độ.
Năm 1997 anh đi thi thì đề có hai câu, anh không nhớ rõ đề chỉ nhớ ý chung thôi:
1) Là một bài sử dụng luật sinh: Họ định nghĩa một chuỗi có tính chất A theo chuỗi luật sinh P sau đó hỏi một chuỗi S có thuộc tính A hay không ?
2) Bài hai hình như là bài đồ thị. Tìm đường đi ngắn nhất trong một thành phố.
__________________ Necessity is the mother of in(ter)vention.
Speak softly & carry a big stick. My Technical Blog
Cho dãy a gồm n phần tử, gồm các số nguyên dương lớn hơn 1 ta gọi phần tử thứ j sẽ quan hệ theo sau phần tử thứ i khi i<j và a[i] là ước của a[j]. Người ta phân dãy a thành các dãy con bỏ đi 1 số phần tử dãy a giữ nguyên thứ tự, sao cho mọi phần tử trong 1 dãy con thỏa tính chất quan hệ theo sau đã định nghĩa. Yêu cầu tính dãy con dài nhất với quan hệ đã định nghĩa.
Dữ diệu dòng đầu là n, dòng 2 là n phần tử của a, dữ liệu ra gồm 1 dòng chỉ số các phần tử của dãy con dài nhất từ dãy a ban đầu.
Gợi ý em bài này nhá ^^!
Gọi F[i] là độ dài dãy con dài nhất thỏa 2 đk sau:
_ đk đề bài
_ dãy con đó kết thúc tại ptử thứ i
Giả sử ta đã tính đc đến F[x-1]. Ta lập công thức tính F[x]
Vì F[x] phải thỏa 2 đk phía tren nên ta phải tìm những thằng trước ptử thứ x và là ước số của ptử thứ x. trong những thằng thỏa đk, ta chỉ cần chọn thằng y có F[y] lớn nhất (có nghĩa F[y] là độ dài của dãy kết thúc tại y, vì y<x và A[y]<A[x] và A[y] là ước của A[x] nên ta thêm ptử A[x] vào cuối dãy con của A[y]) => F[x] = F[y]+1
Code:
begin
readln(n);
for i:=1 to n do read(A[i]);
kq:=0;
for x:=1 to n do
begin
getmax:=0;
for y:=x-1 downto 1 do if (F[y]>getmax) and (F[x] mod F[y] = 0) then getmax:=F[y];
F[x]:=getmax+1;
if F[x]>kq then kq:=F[x];
end;
writeln(kq);
end.
Bài số 3 dễ bị nhầm vì các tính chất đã cho ko có tính giao hoán.
VD
3*2 = 36
2*3 = 64
Đây là code bài số 3 của anh
Dùng cho free pascal
Code:
var
i,j:int64;
(****************************)
function tinh(x,y:int64):int64;
begin
if (y=1) then exit(x*2);
exit(tinh(x,y-1)*(2*x));
end;
(******************************)
begin
writeln('Nhap i,j: '); read(i,j);
writeln('KQ: ',tinh(i,j));
end.
Dùng cho turbo pascal
Code:
var
i,j:longint;
(****************************)
function tinh(x,y:longint):longint;
begin
if (y=1) then tinh:=x*2
else tinh:=tinh(x,y-1)*(2*x);
end;
(******************************)
begin
writeln('Nhap i,j: '); read(i,j);
writeln('KQ: ',tinh(i,j));
end.
thay đổi nội dung bởi: duyhung123abc, 26-03-2009 lúc 08:15 PM.