Diễn đàn tin học Nguyễn Văn Linh
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Diễn đàn tin học Nguyễn Văn Linh

The second house for every one
 
Trang ChínhLatest imagesTìm kiếmĐăng kýĐăng Nhập

 

 đổi tiền

Go down 
3 posters
Tác giảThông điệp
littlelee
Admin
Admin
littlelee


Tổng số bài gửi : 415
Join date : 20/12/2009
Age : 29
Đến từ : Nghĩa địa

đổi tiền Empty
Bài gửiTiêu đề: đổi tiền   đổi tiền I_icon_minitimeMon 19 Jul 2010, 15:54

Code:
program doi_tien;
const fi='doitien.inp';
      fo='doitien.out';
var a:array[1..20] of integer;
    i,j,g,n,k:integer; f:text;
    l:array[0..20,0..1000] of integer;

procedure nhap;
 begin
  assign(f,fi);
  reset(f);
  readln(f,n,k);
  for i:=1 to n do read(f,a[i]);
  close(f);
 end;

procedure tinh;
 begin
  for i:=0 to n do for j:=0 to k do l[i,j]:=+maxint;
  l[0,0]:=0;
  for i:=1 to n do
  for j:=0 to k do
    begin
    l[i,j]:=l[i-1,j];
    for g:=0 to j div a[i] do
      if (l[i-1,j-a[i]*g])<maxint then
      if l[i,j]>l[i-1,j-a[i]*g]+g then
        l[i,j]:=l[i-1,j-a[i]*g]+g;
    end;
 end;

procedure xuat;
 begin
  assign(f,fo);
  rewrite(f);
  if l[n,k]>=maxint then writeln(f,'Ko doi duoc.')
  else writeln(f,l[n,k]);
  close(f);
 end;

begin
 nhap;
 tinh;
 xuat;
end.
Về Đầu Trang Go down
hoangtin14
Mèo con
hoangtin14


Tổng số bài gửi : 96
Join date : 08/02/2010
Age : 29
Đến từ : Bình Định

đổi tiền Empty
Bài gửiTiêu đề: Re: đổi tiền   đổi tiền I_icon_minitimeTue 20 Jul 2010, 21:49

bài này giống bài thi tỉnh của mình đó lit. Tuy nhiên ko nên đọc dữ liệu như thế, dùng EOF thì đọc dc nhìu hơn.

Chắc sẽ giải nghệ, không theo pascal nữa.
Về Đầu Trang Go down
littlelee
Admin
Admin
littlelee


Tổng số bài gửi : 415
Join date : 20/12/2009
Age : 29
Đến từ : Nghĩa địa

đổi tiền Empty
Bài gửiTiêu đề: Re: đổi tiền   đổi tiền I_icon_minitimeWed 21 Jul 2010, 17:17

laughing Bài ni mình làm khi học bồi dưỡng. Mà nhìu hơn là sao. ^^

Giải nghệ ko theo pas nữa, thế theo cái chi. Đừng nói C hay C++ chứ
Về Đầu Trang Go down
littlelee
Admin
Admin
littlelee


Tổng số bài gửi : 415
Join date : 20/12/2009
Age : 29
Đến từ : Nghĩa địa

đổi tiền Empty
Bài gửiTiêu đề: Re: đổi tiền   đổi tiền I_icon_minitimeWed 21 Jul 2010, 17:22

Thật ra tính trong ngôn ngữ lập trình, tớ thích pas hơn cả vì thứ nhất C và C++ nay đã it dùng hơn rồi (trừ dân đại học). Các cuộc thi thường cho phép làm pas vì nó gần với cái đã học ở chương trình phổ thông. Thứ hai, nói ra thì đụng đến các bạn học VB,Java,.. , thôi chứ thật ra cho 1 tháng, dân vip pas có thể làm tốt đến ít nhất là 8/10 các bài thuwongf gặp ở mấy cáu còn lại, trong khi dân mấy cái đó chưa chắc làm được như thế ^^. Bởi vì rất đơn giản, pas và những ngôn ngữ mang đặc tính tương tự như khung sắt, còn mấy cái khác như hồ và sơn thôi. Tất nhiên cái chi cũng có cái hay, cái khó của nó. Nhưng còn phải xét đến mức độ ^^
Về Đầu Trang Go down
hoangtin14
Mèo con
hoangtin14


Tổng số bài gửi : 96
Join date : 08/02/2010
Age : 29
Đến từ : Bình Định

đổi tiền Empty
Bài gửiTiêu đề: Re: đổi tiền   đổi tiền I_icon_minitimeWed 21 Jul 2010, 19:09

Mình đang chuyển sang nghiên cứu Visual Basic mà cả tháng rùi vẫn mù tịt. :(
Về Đầu Trang Go down
hoangtin14
Mèo con
hoangtin14


Tổng số bài gửi : 96
Join date : 08/02/2010
Age : 29
Đến từ : Bình Định

đổi tiền Empty
Bài gửiTiêu đề: Re: đổi tiền   đổi tiền I_icon_minitimeWed 21 Jul 2010, 19:11

Nhìu hơn ý là trong file nguồn có nhìu dòng ý mà. Dùng EOF thì đọc được hết lovestruck
Bài cậu làm chỉ khác tớ chỗ đó thui. Còn lại thì y chang như bài thi của tớ tongue
Về Đầu Trang Go down
littlelee
Admin
Admin
littlelee


Tổng số bài gửi : 415
Join date : 20/12/2009
Age : 29
Đến từ : Nghĩa địa

đổi tiền Empty
Bài gửiTiêu đề: Re: đổi tiền   đổi tiền I_icon_minitimeThu 22 Jul 2010, 20:19

Vb thì để lập phần mềm. Học cái đồ họa và một số cái liên quan đến máy, OS là chủ yếu
Về Đầu Trang Go down
hoangtin14
Mèo con
hoangtin14


Tổng số bài gửi : 96
Join date : 08/02/2010
Age : 29
Đến từ : Bình Định

đổi tiền Empty
Bài gửiTiêu đề: Re: đổi tiền   đổi tiền I_icon_minitimeThu 22 Jul 2010, 20:26

năm sau hy vọng sẽ có đủ tay nghề làm phần mềm đi thi party
Về Đầu Trang Go down
littlelee
Admin
Admin
littlelee


Tổng số bài gửi : 415
Join date : 20/12/2009
Age : 29
Đến từ : Nghĩa địa

đổi tiền Empty
Bài gửiTiêu đề: Re: đổi tiền   đổi tiền I_icon_minitimeThu 22 Jul 2010, 20:29

^^ . Chúc thi quốc gia. Đến lúc đó mình hok có mặt ^^. năm ni thi xong, có lẽ phải bỏ tin, sang toán. Cũng chán nhưng phải thế thôi, giờ đã đi chuyên toán rồi. ^^
Về Đầu Trang Go down
Hovanthong
Admin
Admin
Hovanthong


Tổng số bài gửi : 101
Join date : 25/07/2010
Age : 30
Đến từ : Hưng nguyên-Nghệ An

đổi tiền Empty
Bài gửiTiêu đề: Re: đổi tiền   đổi tiền I_icon_minitimeMon 26 Jul 2010, 21:43

Code:

const
  mn=101;
  max=1000001;
var
  f:text;
  a: array[0..mn] of longint;
  l: array[0..max] of longint;
  n,m,dem: longint;
 
  procedure input;
  var
    i: longint;
  begin
    readln(n,m);
    for i:=1 to n do
      read(a[i]);
  end;
 
  procedure QHD;
  var
    i,j: longint;
  begin
    For i:=1 to n do
      l[i]:=max;
      l[0]:=0;
    For j:=1 to m do
        for i:=1 to n do
        begin
          if (j>=a[i]) then
            if (l[j]=0)or(l[j] > l[j-a[i]]+1) then
              l[j]:=l[j-a[i]]+1;
      end;
  end;
 
  procedure Qsort(l,r: longint);
  var
    x,y,i,j: longint;
  begin
    if l>=r then exit;
    i:=l;
    j:=r;
    x:=a[random(r-l+1)+l];
    Repeat
      While (a[i]<x) do inc(i);
      While (a[j]>x) do dec(j);
      if (i<=j) then
        begin
          if i<j then
            begin
              y:=a[i];a[i]:=a[j];a[j]:=y;
            end;
          inc(i);
          dec(j);
        end;
    Until (i>j);
    Qsort(i,r);Qsort(l,j);
  end;
 
 
  procedure xuli;
  var
    i: longint;
  begin
    dem:=0;
    Qsort(1,n);
    i:=n;
    if (m mod a[n] >= 1000) or (m mod a[n] = 0) then
  begin
    dem := m div a[n];
    m := m mod a[n];
  end else
  begin
    dem := (m - 1000) div a[n] + 1;
    m := m - dem*a[n];
  end;
      QHD;
      dem:=dem+l[m];
  end;
 
  procedure printf;
  begin
      writeln(dem);
  end;
 
  BEGIN
    Input;
    xuli;
    printf;
  end.
Về Đầu Trang Go down
http://thongtra.forum-viet.com
Hovanthong
Admin
Admin
Hovanthong


Tổng số bài gửi : 101
Join date : 25/07/2010
Age : 30
Đến từ : Hưng nguyên-Nghệ An

đổi tiền Empty
Bài gửiTiêu đề: Re: đổi tiền   đổi tiền I_icon_minitimeMon 26 Jul 2010, 21:49

Đề bài này là:
Trích dẫn :

Bạn được cho một tập hợp các mệnh giá tiền. Tập hợp luôn chứa phần tử mang gía trị 1. Mỗi mệnh giá có vô hạn các đồng tiền mang mệnh giá đó. Cho số tiền S, hãy tìm cách đổi S thành ít đồng tiền nhất, sao cho mỗi đồng tiền có mệnh giá thuộc vào tập hợp đã cho.
Input

Dữ liệu vào gồm 2 dòng:

* Dòng 1: Hai số nguyên dương N (số phần tử của tập hợp mệnh giá tiền) và S (số tiền cần đổi) (1 ≤ N ≤ 100; 1 ≤ S ≤ 109 ).
* Dòng 2: N số nguyên dương biểu thị mệnh giá của các phần tử trong tập hợp (giá trị không vượt quá 100).

Output

Dữ liệu ra gồm một số nguyên duy nhất là số đồng tiền ít nhất có thể đổi được.
Example

Input:
2 3
1 2

Output:
2
Về Đầu Trang Go down
http://thongtra.forum-viet.com
Sponsored content





đổi tiền Empty
Bài gửiTiêu đề: Re: đổi tiền   đổi tiền I_icon_minitime

Về Đầu Trang Go down
 
đổi tiền
Về Đầu Trang 
Trang 1 trong tổng số 1 trang
 Similar topics
-
» Xây nhà đắt tiền
» Cần giúp đỡ cải tiến thuật toán bài này
» Nhà tiên tri Vanga dự đoán Chiến tranh Thế giới Thứ 3 sẽ nổ ra vào năm 2010

Permissions in this forum:Bạn không có quyền trả lời bài viết
Diễn đàn tin học Nguyễn Văn Linh :: Góc tin học :: Lớp chuyên tin-
Chuyển đến