| Bài Viết Mới Nhất |
---|
Tên Bài Viết | Tác Giả | Thời Gian Gửi | Mới sưu tầm được 1 game làm bằng Pascal nè | Duy Tân | Tue Jan 28, 2014 3:26 am | Thi tin học trẻ tỉnh Kon Tum lần thứ XI năm 2010 | minhlenhat28 | Sat Jun 29, 2013 8:33 pm | Vật lý trong tin học | Jeremy_Belpois_c3kt | Fri May 24, 2013 11:52 am | Kiểm tra theo mức độ khó dần | Jeremy_Belpois_c3kt | Sat Apr 20, 2013 8:12 pm | Tài liệu tham khảo | Jeremy_Belpois_c3kt | Sat Apr 20, 2013 8:09 pm | Đề cấp trường. | Jeremy_Belpois_c3kt | Fri Feb 22, 2013 7:21 pm | Tìm tất cả các số nguyên tố từ 2 đến N | blueskythien2010 | Thu Nov 22, 2012 4:04 pm | Viết chương trình in ra dãy Fibonacy có phần tử lớn nhất nhỏ hơn n ? Có ai giúp mình với | mikiramper_snowstorm96 | Sat Nov 17, 2012 3:26 pm | ĐỀ HSG 12 2012-2013 | blueskythien2010 | Mon Oct 15, 2012 4:27 pm | Đề thi học sinh giỏi Tin học 12 | Jeremy_Belpois_c3kt | Wed Oct 10, 2012 11:14 am | |
| | Đề thi học sinh giỏi Tin học 12 | |
| Tác giả | Thông điệp |
---|
Jeremy_Belpois_c3kt Admin
Status : Không code nữa rồi Tổng số bài gửi : 40 Money : 65 Ngày sinh : 29/05/1995 Ngày tham gia : 28/09/2011
| Tiêu đề: Đề thi học sinh giỏi Tin học 12 Sun Oct 16, 2011 8:34 am | |
|
Được sửa bởi Jeremy_Belpois_c3kt ngày Wed Oct 10, 2012 11:10 am; sửa lần 1. |
| | | Jeremy_Belpois_c3kt Admin
Status : Không code nữa rồi Tổng số bài gửi : 40 Money : 65 Ngày sinh : 29/05/1995 Ngày tham gia : 28/09/2011
| Tiêu đề: Re: Đề thi học sinh giỏi Tin học 12 Sun Oct 16, 2011 10:34 am | |
| Bài 3 - Code:
-
program Cuu_tro; const inf='BAI3.INP'; outF='BAI3.OUT'; MAXn=100; type lent=array[2..maxN] of longword; VAR D:array[1..MaxN,1..maxN] of integer; DT:array[1..2] of lent; truoc,sau,n:byte;
{**************************************} procedure Enter; var i,u,v,k,m:byte;W:integer; f:TEXT; begin assign(F,inf); reset(f); readln(F,n,k,m); for i:=1 to k do begin readln(F,u,v,w); D[u,v]:=W; D[v,u]:=W; end; for i:=1 to m do begin readln(F,u,v); D[u,v]:=0; D[v,u]:=0; end; close(f); end; {****************************************} procedure Go; var x,y:byte; co:boolean; begin truoc:=1;sau:=2;co:=false; fillchar(DT,sizeof(DT),0); {di tu nut 1} for x:=2 to n do if D[1,x]>0 then begin DT[truoc,x]:=D[1,x]; co:=true; end; while co=true do begin co:=false; for x:=2 to n do if DT[truoc,x]>0 then {no da di toi} for y:= 2 to n do if x=y then DT[sau,x]:=DT[truoc,y] else if D[x,y]>0 then {co duong d tu x toi y} begin if (DT[sau,y]=0) then {chua di toi} begin DT[sau,y]:=DT[truoc,x]+D[x,y]; co:=true; {con di duoc} end else {da toi} if DT[truoc,x]+D[x,y]< DT[sau,y] then begin co:=true; DT[sau,y]:=DT[truoc,x]+D[x,y]; end; end; if truoc=1 then begin truoc:=2;sau:=1; end else begin truoc:=1; sau:=2;end; end; end; {*************************************************} procedure result; var f:text;i:byte; begin asSign(f,outF); rewrite(F); for i:=2 to n do if DT[truoc,i]>0 then writeln(F, i,' ',DT[truoc,i]) else writeln(F,i,' khong co'); close(F); end;
begin ENTER; GO; RESULT; end. |
| | | dongocthinh Thành viên mới
Status : nguoi Tổng số bài gửi : 1 Money : 1 Ngày tham gia : 14/11/2011
| Tiêu đề: Re: Đề thi học sinh giỏi Tin học 12 Mon Nov 14, 2011 6:02 pm | |
| Bài 1 Mình chạy thử test với 43 số khác nhau, gồm 12000 chữ số thì mất khoảng 2.5 giây. - Code:
-
const max = 200000; var n,ki:longint; a:array[1..max] of longint; b:array[1..max] of longint; sl,so:array[1..max] of longint; f1,f2:text; procedure nhap; var i:longint; begin assign(f1,'so1.inp'); reset(f1); readln(f1,n); for i:=1 to n do read(f1,a[i]); end; procedure sapxep; var i,j,t:longint; begin for i:=1 to n-1 do for j:=i+1 to n do if a[i]>a[j] then begin t:=a[j]; a[j]:=a[i]; a[i]:=t; end; end; procedure xuly; var h,i:longint; begin i:=1; ki:=0; repeat h:=a[i]; inc(ki); so[ki]:=h; while h=a[i] do begin inc(sl[ki]); inc(i); end; until i>n; end; procedure xuat; var i:longint; begin assign(f2,'so1.out'); rewrite(f2); writeln(n); writeln(f2,ki); for i:=1 to ki do writeln(f2,so[i],' ',sl[i]); close(f2); end; begin nhap; sapxep; xuly; xuat; end.
|
| | | Jeremy_Belpois_c3kt Admin
Status : Không code nữa rồi Tổng số bài gửi : 40 Money : 65 Ngày sinh : 29/05/1995 Ngày tham gia : 28/09/2011
| Tiêu đề: Re: Đề thi học sinh giỏi Tin học 12 Wed Nov 16, 2011 8:54 am | |
| Để nhanh hơn nên học Quicksort đi bạn.
|
| | | Jeremy_Belpois_c3kt Admin
Status : Không code nữa rồi Tổng số bài gửi : 40 Money : 65 Ngày sinh : 29/05/1995 Ngày tham gia : 28/09/2011
| Tiêu đề: Re: Đề thi học sinh giỏi Tin học 12 Wed Nov 16, 2011 8:56 am | |
| procedure QuickSort; procedure Partition(L, H: Integer); {Sắp xếp dãy khoá k[L..H]} var i, j: Integer; Pivot: TKey; {Biến lưu giá trị khoá chốt} begin if L ≥ H then Exit; {Nếu đoạn chỉ có ≤ 1 khoá thì không phải làm gì cả} Pivot := k[Random(H - L + 1) + L]; {Chọn một khoá ngẫu nhiên trong đoạn làm khoá chốt} i := L; j := H; {i := vị trí đầu đoạn; j := vị trí cuối đoạn} repeat while k[i] < Pivot do i := i + 1; {Tìm từ đầu đoạn khoá ≥ khoá chốt} while k[j] > Pivot do j := j - 1; {Tìm từ cuối đoạn khoá ≤ khoá chốt} {Đến đây ta tìm được hai khoá k[i] và k[j] mà k[i] ≥ key ≥ k[j]} if i ≤ j then begin if i < j then {Nếu chỉ số i đứng trước chỉ số j thì đảo giá trị hai khoá k[i] và k[j]} 〈Đảo giá trị k[i] và k[j]〉; {Sau phép đảo này ta có: k[i] ≤ key ≤ k[j]} i := i + 1; j := j - 1; end; until i > j; Partition(L, j); Partition(i, H); {Sắp xếp hai đoạn con mới tạo ra} end; begin Partition(1, n); end; |
| | | |__Lep__| Thành viên
Status : Tạm thời ngừng code Tổng số bài gửi : 34 Money : 53 Ngày sinh : 21/05/1994 Ngày tham gia : 21/10/2010
| Tiêu đề: Re: Đề thi học sinh giỏi Tin học 12 Fri Nov 25, 2011 3:42 pm | |
| thử dùng 1 mảng 1 chiều lwu các giá trị và số lần xuất hiện. VD ó các số 3 25 123 thì inc(a[3]) inc(a[5]) inc(a[123]). Sau đó duyệt hết mảng for i:=1 to max do if a[i]<>0 then write(i,' ',a[i]) Có thể lwu giá trị lớn nhất của các số xuất hiện để duyệt ít hơn. Thwr xem có tối wu hơn không nha |
| | | Jeremy_Belpois_c3kt Admin
Status : Không code nữa rồi Tổng số bài gửi : 40 Money : 65 Ngày sinh : 29/05/1995 Ngày tham gia : 28/09/2011
| Tiêu đề: Re: Đề thi học sinh giỏi Tin học 12 Sat Dec 03, 2011 6:19 pm | |
| Giả thuyết cho max tới 10000000 thì bao nhiêu cho đủ |
| | | |__Lep__| Thành viên
Status : Tạm thời ngừng code Tổng số bài gửi : 34 Money : 53 Ngày sinh : 21/05/1994 Ngày tham gia : 21/10/2010
| Tiêu đề: Re: Đề thi học sinh giỏi Tin học 12 Sun Dec 04, 2011 10:10 am | |
| Ai<30000 nghĩa là mảng có tối đa 30000 phần twr kiểu shortint mà không được à |
| | | Jeremy_Belpois_c3kt Admin
Status : Không code nữa rồi Tổng số bài gửi : 40 Money : 65 Ngày sinh : 29/05/1995 Ngày tham gia : 28/09/2011
| Tiêu đề: Re: Đề thi học sinh giỏi Tin học 12 Wed Dec 07, 2011 8:33 pm | |
| Uh. còn bài 2 dung Quy hoạch động. Còn bài 3 dùng đồ thị thì hơi khó đấy, |
| | | Jeremy_Belpois_c3kt Admin
Status : Không code nữa rồi Tổng số bài gửi : 40 Money : 65 Ngày sinh : 29/05/1995 Ngày tham gia : 28/09/2011
| Tiêu đề: Re: Đề thi học sinh giỏi Tin học 12 Wed Oct 10, 2012 11:14 am | |
| |
| | | Sponsored content
| Tiêu đề: Re: Đề thi học sinh giỏi Tin học 12 | |
| |
| | | | Đề thi học sinh giỏi Tin học 12 | |
|
Trang 1 trong tổng số 1 trang | |
| Permissions in this forum: | Bạn không có quyền trả lời bài viết
| |
| |
|