Editorial for Xây hàng rào
Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.
Submitting an official solution before solving the problem yourself is a bannable offence.
Submitting an official solution before solving the problem yourself is a bannable offence.
Lưu ý: Các code mẫu dưới đây chỉ mang tính tham khảo và có thể không AC được bài tập này
Code mẫu của RR
var i,j,gh,n,cat,kq:longint; d:array[1..2500] of longint; begin readln(n); kq:=0; gh:=n div 2+n mod 2; for i:=2 to 2500 do for j:=1 to i-1 do if (j<gh) and (i-j<gh) then inc(d[i]); for cat:=2 to n-2 do kq:=kq+d[cat]*d[n-cat]; writeln(kq); end.
Code mẫu của hieult
#include <stdio.h> //#include <conio.h> main() { long n,f[2500][1300],KQ=0; for(long i=2;i<=2498;i++) { if(i%2==0) f[i][(i+3)/2]=1; else f[i][(i+3)/2]=2; for(long j=(i+5)/2;j<=i;j++) { f[i][j]=f[i][j-1]+2; //printf("%ld ",f[i][j]); } for(long j=i+1;j<=1300;j++) { f[i][j]=i-1; //printf("%ld ",f[i][j]); } printf("\n"); } scanf("%ld",&n); for(long i=2;i<=n-2;i++) { KQ=KQ+f[i][(n+1)/2]*f[n-i][(n+1)/2]; //printf("%ld",i); } printf("%ld",KQ); //getch(); }
Code mẫu của ll931110
Program QUAD; Const input = ''; output = ''; Var n,p: integer; F: array[0..4,0..2500] of longint; Procedure init; Var fi: text; Begin Assign(fi, input); Reset(fi); Readln(fi, n); Close(fi); p:= n div 2; If not odd(n) then dec(p); End; Procedure solve; Var i,j,k,s: integer; Begin Fillchar(F, sizeof(F), 0); F[0,0]:= 1; For i:= 1 to 4 do For j:= 1 to n do Begin If p < j then s:= p else s:= j; For k:= 1 to s do F[i,j]:= F[i,j] + F[i - 1,j - k]; End; End; Procedure printresult; Var fo: text; Begin Assign(fo, output); Rewrite(fo); Writeln(fo, F[4,n]); Close(fo); End; Begin init; solve; printresult; End.
Code mẫu của khuc_tuan
n = input() maxlen = (n-1) / 2 F = [[0 for i in range(n+1)] for j in range(5)] T = [[0 for i in range(n+1)] for j in range(5)] for i in range(1,n+1): if i<=maxlen: F[1][i] = 1 T[1][i] = F[1][i] + T[1][i-1] for k in range(2,4+1): for i in range(1,n+1): x = max(1,i-maxlen) F[k][i] = T[k-1][i-1] - T[k-1][x-1] T[k][i] = T[k][i-1] + F[k][i] print F[4][n]
Comments