M
Để e post 1 topic so sánh giữa 2 trình biên dịch này
Một máy truyền tin có khả năng truyền mỗi lần một thông điệp dưới dạng một chuỗi nhị phân gồm N bit, các bit được truyền song song, mỗi bit sẽ được truyền trên một kênh truyền riêng biệt đến máy thu. Trong trạng thái bình thường, chuỗi nhận được máy thu giống hoàn toàn chuỗi đã được phát. Thật không may, do sơ suất khi lắp đặt máy thu, đã có 1 sự đảo lộn các kênh truyền. Hậu quả chuỗi nhận được tại máy thu lại là một hoán vị của chuỗi ban đầu.
Trong hoàn cảnh hiện tại, Vì cần phải sử dụng gấp các thiết bị truyền tin này phục vụ cho công việc, thời gian không cho phép để sửa chữa hoặc thay thế. nên tổ kĩ thuật buộc phải tìm cách phát hiện được sự hoán chuyển các kênh đã xảy ra để có thể khôi phục đúng những thông điệp đã gửi. Rất may, khi lắp đặt, người ta đã thử phát M chuỗi và ghi lại M chuỗi tương ứng nhận được tại máy thu.
Yêu cầu: là chuyên viên tin học, bạn hãy viết chương trình giúp tổ kĩ thuật chỉ ra sự tương ứng giữa các bit trong chuỗi phát đi và chuỗi nhận được nơi máy thu. Điều này nghĩa là, dữa trên M cặp chuỗi phát và thu tương ứng, bạn phải chỉ ra bỗ hoán vị [TEX]a_1,a_2,...,a_N[/TEX] trong đó cho biết bit thứ [TEX]a_i[/TEX] trong thông điệp gửi đi đã chuyển thành bit thứ i trong thông điệp nhận được.
Dữ liệu: Dữ liệu vào cho trong file văn bản có tên TRANSMIT.INP có cấu trúc như sau;
Dòng đầu chứa 2 số nguyên N,M ([TEX] 1<N\leq100 ,0<M\leq10000 [/TEX] ) cách nhau bởi dấu cách cho biết số bit trong mỗi thông điệp và số lượng thông điệp phát thử.
Mỗi dòng trong M dòng tiếp theo chứa 2 chuỗi bit. Mỗi chuỗi là 1 dãy liên tiếp N số 0 hoặc 1. Hai chuỗi cách nhau bởi 1 dấu cách. Chuỗi đầu là chuỗi phát đi và chuỗi thứ 2 là chuỗi tương ứng nhận được tại máy thu.
Kết quả: ghi ra file văn bản có tên TRANSMIT.OUT với 1 dòng duy nhất có nội dung như sau:
Nếu với M cặp thông điệp dã cho có thể xác định duy nhất bộ hoán vị [TEX] a_1,a_2,...,a_N [/TEX]thì file kết quả sẽ chứa N số nguyên cho biết bộ hoán vị này. Các số trên cùng 1 dòng cách nhau bởi 1 dấu cách, ngược lại thì file kết quả chỉ chứa duy nhất 1 số -1
Ví dụ
TRANSMIT.INP
11110000 11110000
11001100 11001010
10101010 10101001
TRANSMIT.OUT
1 2 3 4 5 8 6 7
Lưu ý: đây là chỗ ôn thi, không phải là chỗ hỏi đáp về phần mềm. Muốn hỏi đáp thì bạn nên lập một pic riêng để hỏi. Sẽ có người giải đáp giúp bạn
Còn bây giờ thì tiếp tục ôn thi nào.
var m,n,i,j,k,dem,h:integer;
q:array[1..50]of integer;
a,b:array[1..15] of string;
x,y:array[1..50]of string;
c:array[1..50]of string;
tg:string;
f,g:text;
begin
assign(f,'transmit.inp');reset(f);
assign(g,'transmit.out');rewrite(g);
readln(f,n,m);
for i:=1 to m do
begin
read(f,c[i]);
readln(f);
end;
for i:=1 to m do a[i]:='';
for i:=1 to m do b[i]:='';
for i:=1 to m do
begin
for j:=1 to n do
a[i]:=a[i]+c[i][j];
for j:=n+2 to n*2+1 do
b[i]:=b[i]+c[i][j];
end;
for j:=1 to n do q[j]:=j;
for j:=1 to n do x[j]:='';
for j:=1 to n do
for i:=1 to m do
x[j]:=x[j]+a[i][j];
for j:=1 to n do
for i:=1 to m do
y[j]:=y[j]+b[i][j];
dem:=0;
for j:=1 to n-1 do
begin
if x[j]<>y[j] then
for k:=j+1 to n do
if x[j]=y[k] then
begin
h:=q[k];
q[k]:=q[j];
q[j]:=h;
tg:=x[j];
x[j]:=x[k];
x[k]:=tg;
dem:=dem+1;
end;
end;
if dem=0 then write('g,-1')
else
for j:=1 to n do
write(g,q[j]:2);
close(f);close(g);
readln
end.
Thứ nhất: Với bộ text:[mọi ngươi xem bản code này đi!
PHP:var m,n,i,j,k,dem,h:integer; q:array[1..50]of integer; a,b:array[1..15] of string; x,y:array[1..50]of string; c:array[1..50]of string; tg:string; f,g:text; begin assign(f,'transmit.inp');reset(f); assign(g,'transmit.out');rewrite(g); readln(f,n,m); for i:=1 to m do begin read(f,c[i]); readln(f); end; for i:=1 to m do a[i]:=''; for i:=1 to m do b[i]:=''; for i:=1 to m do begin for j:=1 to n do a[i]:=a[i]+c[i][j]; for j:=n+2 to n*2+1 do b[i]:=b[i]+c[i][j]; end; for j:=1 to n do q[j]:=j; for j:=1 to n do x[j]:=''; for j:=1 to n do for i:=1 to m do x[j]:=x[j]+a[i][j]; for j:=1 to n do for i:=1 to m do y[j]:=y[j]+b[i][j]; dem:=0; for j:=1 to n-1 do begin if x[j]<>y[j] then for k:=j+1 to n do if x[j]=y[k] then begin h:=q[k]; q[k]:=q[j]; q[j]:=h; tg:=x[j]; x[j]:=x[k]; x[k]:=tg; dem:=dem+1; end; end; if dem=0 then write('g,-1') else for j:=1 to n do write(g,q[j]:2); close(f);close(g); readln end.
if dem=0 then write('g,-1')
else
for j:=1 to n do
write(g,q[j]:2);
if dem=0 then [COLOR="Red"]write('g,-1')[/COLOR]
else
for j:=1 to n do
write(g,q[j]:2);
n hàng
m cột
cơ sở QHĐ tự tính nha
F[i,j] là số lượng thức ăn lớn nhất khi đi từ ô 1,1 đến ô i,j.
F[i,j]:=Max(F[i,j-1],F[i-1,j])+W;
Kết quả của bài toán là max(F[n,j]) với j chạy 1->m
P/s: Post code có hiểu thuật toán ko xem = thừa :-S
Xem code rồi sửa dùm mình nhaz, thanks nhìuvar a,b:array[0..100,0..100] of longint;n,m,i,j:longint;f:text;
procedure xuly;
var i,j,n1,m1,max:longint;
begin
for i:= 2 to m do
for j:= 2 to n do
if (i<>n) and (b[i,j-1]>=b[i-1,j]) then b[i,j]:=a[i,j]+b[i,j-1]
else b[i,j]:=a[i,j]+b[i-1,j];
max:=b[m,1];
for i:= 2 to n do
if b[m,i]>=max then begin max:=b[m,i]; n1:=n; m1:=i; end;
writeln(max);
while (n1<>1) or (m1<>1) do
begin
write('(',n1,',',m1,')-->');
if b[m1-1,n1]<b[m,n1-1] then n1:=n1-1 else
m1:=m1-1;
end;
write('(1,1)');
writeln;
end;
begin
assign(f,'kien.txt');
reset(f);
read(f,m,n);
for i:= 1 to m do
begin
for j:= 1 to n do
read(f,a[i,j]);
readln(f);
end;
fillchar(b,sizeof(b),0);
xuly;
readln;
end.