trời ơi, quên mất cái thời gian nộp bài là 12h trưa nay......cứ tưởng hết ngày chứ (%&$@#&%$)
hik,m cập nhật thông tin trễ quá...
mấy sư huynh ơi cho hỏi khi nào thì típ tục thi cái này thế ạh?
Announcement
Collapse
No announcement yet.
Cuộc thi Lập trinh thuật toán
Collapse
This topic is closed.
X
X
-
Originally posted by 10520101 View PostCó học nhưng thầy có chú trọng về phần này đâu!
Kiểu như giới thiệu cho biết=> nên mình cũng chả biết
Leave a comment:
-
thanks anh Châu nhìu , vẫn chưa bít j về mấy cái O(1) j j đó. nhưng sẽ sớm bít thui.hjhj
Leave a comment:
-
Originally posted by 10520061 View Posthơi bị xoắn với bài giải của anh Châu nhé.
Thật đơn giản khi tìm dc quy luật của nó. anh Châu có thể chia sẻ những suy nghĩ đầu tiên nên có trong đầu khi đọc đề không @@ hjhj
Bài 1: kiểm tra nguyên tố trong thời gian O(căn n) được ko ta ? Tổng thời gian khoảng O(n căn n) = O(n^1.5), n này không phải 1000 mà lớn hơn 1000. Vác máy tính ra bấm 10000^1.5 = 1 000 000 => OK khỏi nghĩ nữa
Bài 2: res = n * (n + 1) / 2 hay res = n * (n - 1) / 2 ??? Rồi ta ví dụ: 1 + 2 + 3 = 6, CT1: 3 * 4 / 2 = 6; CT2: 3 * 2 / 2 = 3 => Công thức 1 đúng => Khỏi nghĩ nữa
Bài 3: xài string hay long int thì cũng đc. Xài string thì for từ đuôi lên gặp 0 thì bỏ, mà vậy nếu string "0" thì mất công so sánh tùm lum 4 5 cái if, rồi còn 1203 thì phải đặt flag nữa => xài long long int cho khỏe => Và ta có cái code như đã post
Bài 4: cái này chắc có liên quan tới cái tính chất chia hết cho 3, 3 số liên tiếp thì dư 1, dư 2, ko dư => Rất có khả năng có công thức => Đọc lại đề 1 lần nữa. Có phép cộng. Dư 1 và dư 2 liên tiếp nhau => sẽ có tổng dư là 0. Cái kế tiếp lại là dư 0 => quy luật có thể là 1 0 0 1 0 0 1 0 0....., 1 thì dư 1, 12 dư 0, 123 dư 0 (có vẻ đúng), như vậy 1234,12345,123456 bỏ qua, 1234567 chắc dư 1 (bấm máy tính 1234566), 12345678 chia hết không ? (bấm máy) => OK got it, nhưng k =10 thì 1234567890 hay 12345678910 ? => Đọc đề lần 3 => End of story
Originally posted by 08520001 View PostCác bạn thân mến. Kết quả đã có rồi. Tạm thời mình chỉ thống kê 1 số thông tin, còn danh sách thì còn chờ đoàn trường duyệt mới công bố được. Có 7 bạn đạt điểm tối đa. Bạn thấp điểm nhất là 24 điểm: 1 bạn K4, 16 bạn K5, 10 bạn K6. Điều này chứng tỏ càng về các khóa sau thì các bạn càng tham gia sôi nổi. Các bạn K6 mới học C mà cũng tham gia rất nhiệt tình (15 bạn). Chúc cho vòng 2 diễn ra thành công.Last edited by 09520019; 19-11-2011, 17:13.
Leave a comment:
-
Các bạn thân mến. Kết quả đã có rồi. Tạm thời mình chỉ thống kê 1 số thông tin, còn danh sách thì còn chờ đoàn trường duyệt mới công bố được. Có 7 bạn đạt điểm tối đa. Bạn thấp điểm nhất là 24 điểm: 1 bạn K4, 16 bạn K5, 10 bạn K6. Điều này chứng tỏ càng về các khóa sau thì các bạn càng tham gia sôi nổi. Các bạn K6 mới học C mà cũng tham gia rất nhiệt tình (15 bạn). Chúc cho vòng 2 diễn ra thành công.
Leave a comment:
-
Originally posted by 09520019 View PostĐây là code 4 bài của mình, các bạn cho nhận xét. Thời gian làm bài: 6 phút 19 giây
PHP Code:#include <iostream>
using namespace std;
int isprime(int n)
{
for (int i = 2;i * i <= n;++i)
if (n % i == 0) return 0;
return 1;
}
int main()
{
int n,i,j;
cin >> n;
for (i = 2,j = 0;j < n;++i)
if (isprime(i)) ++j;
cout << (i - 1) << endl;
return 0;
}
PHP Code:#include <iostream>
using namespace std;
int main()
{
long long int n,res;
cin >> n;
res = (n * (n + 1)) / 2;
cout << res << endl;
return 0;
}
PHP Code:#include <iostream>
using namespace std;
int main()
{
long long int n;
cin >> n;
if (n == 0) cout << '0' << endl;
else
{
while (n % 10 == 0) n /= 10;
while (n)
{
cout << n % 10;
n /= 10;
}
cout << endl;
}
return 0;
}
PHP Code:#include <iostream>
using namespace std;
int main()
{
int n,res;
cin >> n;
res = 2 * (n / 3);
if (n % 3 == 2) ++res;
cout << res << endl;
return 0;
}
Thật đơn giản khi tìm dc quy luật của nó. anh Châu có thể chia sẻ những suy nghĩ đầu tiên nên có trong đầu khi đọc đề không @@ hjhj
Leave a comment:
-
Giờ chắc mọi người xong hết rồi, bạn nào thấy mình có hy vọng đc vào vòng 2 thì đừng quên các bạn còn 1 "bài tập" nữa phải làm
Originally posted by 08520581 View PostCuộc thi gồm 2 vòng :
Vòng loại :Các bạn lam bài tại nhà và gửi bài làm qua email olympic.UIT@gmail.com .Chọn ra 25 thí sinh
Vòng chung kết : Tổ chức thi đấu tập trung dưới hình thức ICM/ICPC . (Các bạn làm bài và chấm online trực tiếp lên server tại phòng thi, kêt quả sai có thể làm lai ) + có tường thuật trực tiếp... bằng board ở sảnh trường . Cho phép đem vào phòng thi 10 trang tài liệu bất kì
Leave a comment:
-
Đọc đề kỹ lắm, cũng phát hiện ra từ lúc làm, nói là vậy thôi, tốt nhất cũng nên làm luôn cho chắc, đâu có mất nhiêu thời gian. Khỏi mắc công phiền phức khiếu nại.
Bài 1: (hình như có giống thuật toán với ai post rồi thì phải, nhưng sẽ nhanh hơn vì mình tối ưu các dòng lệnh kiểm tra và tính toán rồi)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
unsigned long* ngto;
unsigned long i = 1, dem = 1, n,j;
long dk = 1;
scanf("%d",&n);
ngto = (unsigned long*) calloc(n,sizeof(unsigned long));
ngto[0] = 2;
if (n==1) printf("2\n");
else
while (true)
{
i += 2;
for (j = 1; j < dk; j++)
{
if (i % ngto[j] == 0) { break; }
}
if (j==dk) { ngto[dem] = i; dem++; if (dem == n) { printf("%d",i); break; } if (i > ngto[dk-1] * ngto[dk]) dk++; }
}
}Last edited by 09520668; 19-11-2011, 17:48.
Leave a comment:
-
Originally posted by 09520668 View PostSố nguyên dương thì làm gì có số 0
Chúc các bạn may mắn trong vòng 2 ((chuckle))
Nhớ đọc kỹ đề ((chuckle)) <= Cái bug này gây panic cho nhiều bạn lắm đấy )
dangchau1991(11/17/2011 6:53:44 PM) : Bài 3: Cho số nguyên dương n (n <= 10^18). Lập trình in ra số nguyên dương m có nghĩa với m là n theo thứ tự ngược lại.
dangchau1991(11/17/2011 6:53:47 PM) :
dangchau1991(11/17/2011 6:53:53 PM) : sao không cho số nguyên không âm đi
dangchau1991(11/17/2011 6:53:53 PM) :
dangchau1991(11/17/2011 6:54:00 PM) : 0 <= n <= 10^18
dangchau1991(11/17/2011 6:54:07 PM) : đảm bảo input = 0 nhiều đứa sai
An Cao văn(11/17/2011 6:54:15 PM) : anh quên
dangchau1991(11/17/2011 6:54:24 PM) :
dangchau1991(11/17/2011 6:54:30 PM) : vậy h ko có test đó huh
dangchau1991(11/17/2011 6:54:32 PM) : chán vậy =.=
An Cao văn(11/17/2011 6:54:33 PM) : có em
An Cao văn(11/17/2011 6:54:35 PM) : hehe
dangchau1991(11/17/2011 6:54:36 PM) : èo
dangchau1991(11/17/2011 6:54:46 PM) : đề ảo vậy
An Cao văn(11/17/2011 6:54:58 PM) : vậy là ko d9uo75c
An Cao văn(11/17/2011 6:55:02 PM) : anh sơ ý mất
An Cao văn(11/17/2011 6:55:05 PM) : để bỏ test đó
An Cao văn(11/17/2011 6:55:07 PM) : ko sao
An Cao văn(11/17/2011 6:55:11 PM) : vòng này zui thôi
An Cao văn(11/17/2011 6:55:19 PM) : vòng 2 mới gây cấn
An Cao văn(11/17/2011 6:55:20 PM) : hehe
dangchau1991(11/17/2011 8:40:39 PM) : thôi kệ anh để lại cái test đó đi cho nó hào hứng
dangchau1991(11/17/2011 8:40:40 PM) :
dangchau1991(11/17/2011 8:40:43 PM) : hehehehehehe
dangchau1991(11/17/2011 8:40:57 PM) : để bữa 0:05 20/11
dangchau1991(11/17/2011 8:41:02 PM) : em đi post solution
dangchau1991(11/17/2011 8:41:09 PM) : cho tụi nó hoảng chơi
dangchau1991(11/17/2011 8:41:09 PM) : ^_^
An Cao văn(11/17/2011 8:43:59 PM) : hi
An Cao văn(11/17/2011 8:44:01 PM) : ko được
An Cao văn(11/17/2011 8:44:05 PM) : vậy là ko đúng
An Cao văn(11/17/2011 8:44:06 PM) : hehe
An Cao văn(11/17/2011 8:44:09 PM) : mà hem sao
dangchau1991(11/17/2011 8:44:09 PM) : =.=
An Cao văn(11/17/2011 8:44:13 PM) : bỏ test đó cũng hok sao
dangchau1991(11/17/2011 8:44:14 PM) : có 1 test thôi mà
dangchau1991(11/17/2011 8:44:15 PM) :
dangchau1991(11/17/2011 8:44:17 PM) : èo
dangchau1991(11/17/2011 8:44:22 PM) : có còn test bẫy nào nữa đâu
An Cao văn(11/17/2011 8:44:22 PM) : giờ mới có 2 người max điểm ah
dangchau1991(11/17/2011 8:44:22 PM) :
An Cao văn(11/17/2011 8:44:25 PM) : uhLast edited by 09520019; 19-11-2011, 16:28.
Leave a comment:
-
Bài 3: Cho số nguyên dương n (n <= 1018). Lập trình in ra số nguyên dương m có nghĩa với m là n theo thứ tự ngược lại.
Leave a comment:
-
sặc, dính chưởng bài 2. Vẫn để int, ko để ý cái giới hạn, hjx.
Bài 3 vô tình đúng, hjhj: 2 bài kia ko nói.
Code:#include<stdio.h> void main() { int a,i=10; long long n,s=0; scanf("%lld",&n); while (n>0) { a=n%10; s=s*i+a; n=n/10; } printf("%lld",s); }
Leave a comment:
-
Originally posted by 09520019How fast can you code ?
Bài 2. 1'30'' =)), vừa đủ vượt lên chính mình.
Bài 3. 1'30'' xong, nhưng ~15' để tối ưu và lo hết những phần lảm nhảm.
Bài 4. 1 buổi chiều ngồi cm công thức (cm bằng quy nạp =))). Và cỡ 1' để code.
Originally posted by 09520019 View PostMình không nói đến pro hay không , nhưng mình học được 1 điều từ thi Olympic:
Miễn sao Accepted là được rồi, code càng ngắn càng tốt để thời gian.....làm việc khác :P
Một điều nữa tuy đã được nhắc rất nhiều nhưng vẫn hay xảy ra là : "Những trường hợp tầm thường là những trường hợp dễ sai nhất". Hãy luôn nghĩ đến điều đó khi làm bài.Last edited by 10520272; 19-11-2011, 15:14.
Leave a comment:
-
Em thì nghĩ ra thuật toán cũng tạm nhưng diễn giải nó thành code thì hơi cực. Mới nhúng tay vào đống bày nhày này khó mà quen.
Leave a comment:
Leave a comment: