1. Trang chủ
  2. » Luận Văn - Báo Cáo

De thi Toan Tin hoc trong nha truong Bai 84

2 7 0

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

THÔNG TIN TÀI LIỆU

Nội dung

Nếu duyệt theo biến c thì có rất nhiều khả năng nên thay vì duyệt theo biến c ta duyệt theo a và b... (Lời giải của Đỗ Đức Đông).[r]

(1)

Bài 84/2001 - Cùng tích (Dành cho học sinh THCS THPT)

Thuật toán: Gọi số lượng số xi =1 a, số lượng số xi=-1 b, số lượng số xi = c Ta có: a+b+c=N

Với giá trị c khác ta có tương ứng nghiệm Nên số nghiệm số giá trị mà c nhận Nếu duyệt theo biến c có nhiều khả nên thay duyệt theo biến c ta duyệt theo a b Vai trò số số -1 nên ta giả sử số lượng số lớn số lượng -1 (a>=b)

Vậy xi = a-b xi2 = a+b (i = 1, ,N)

xixj = P (i =1, , N; j =1, , N; i<>j) suy P =2*xixj (i =1, , N -1; j =1, , N; i<j) Ta có phương trình: (a+b)+p=(a-b)2

suy <= (a-b) <= sqrt(a+b+p) <= sqrt(N+p)<[sqrt(2*1010)] = 44721

Vậy ứng với giá trị (a-b) ta có giá trị (a+b) giá trị c Lần lượt thử với giá trị (a-b) kiểm tra xem a, b c thoả mãn tính chất khơng?

{$A+,B-,D+,E+,F-,G-,I+,L+,N-,O-,P-,Q+,R+,S+,T-,V+,X+,Y+} {$M 16384,0,655360}

uses crt;

const fi ='input.txt'; fo ='output.txt'; var n,p, h :longint; dem :longint; t :real; procedure docf; var f :text; begin assign(f,fi); reset(f); read(f,n,p); close(f); dem:=0; end; procedure lam; var can :longint; begin

can:=trunc(sqrt(2*n)); for h:=0 to can begin

t:=h; t:=sqr(t)-p;

if (t>=h)and(t<=n) then inc(dem); end;

end;

procedure ghif; var f :text; begin

(2)

rewrite(f); writeln(f,dem); close(f); end; BEGIN docf;

if p mod 2=0 then lam; ghif;

END

Ngày đăng: 05/03/2021, 13:37

w