Announcement

Collapse
No announcement yet.

Cuộc thi Lập trinh thuật toán

Collapse
This topic is closed.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Đọ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.

    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 Post
      Cuộ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ì
      Khoảng cách giữa bạn và ước mơ của bạn là bao xa ?

      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;<= n;++i)
                if (
        == 0) return 0;
            return 
        1;
        }
        int main()
        {
            
        int n,i,j;
            
        cin >> n;
            for (
        2,0;n;++i)
                if (
        isprime(i)) ++j;
            
        cout << (1) << endl;
            return 
        0;

        PHP Code:
        #include <iostream>
        using namespace std;

        int main()
        {
            
        long long int n,res;
            
        cin >> n;
            
        res = (* (1)) / 2;
            
        cout << res << endl;
            return 
        0;

        PHP Code:
        #include <iostream>
        using namespace std;

        int main()
        {
            
        long long int n;
            
        cin >> n;
            if (
        == 0cout << '0' << endl;
            else
            {
                while (
        10 == 0/= 10;
                while (
        n)
                {
                    
        cout << 10;
                    
        /= 10;
                }
                
        cout << endl;
            }
            return 
        0;

        PHP Code:
        #include <iostream>
        using namespace std;

        int main()
        {
            
        int n,res;
            
        cin >> n;
            
        res * (3);
            if (
        == 2) ++res;
            
        cout << res << endl;
            return 
        0;

        How fast can you code ?
        hơ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

        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.

          Comment


          • Originally posted by 10520061 View Post
            hơ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
            Suy nghĩ đầu tiên:
            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 Post
            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.
            Hy vọng năm sau sẽ nhiều hơn
            Last edited by 09520019; 19-11-2011, 17:13.
            Khoảng cách giữa bạn và ước mơ của bạn là bao xa ?

            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

              Comment


              • Originally posted by 10520061 View Post
                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
                thế bạn học môn cấu trúc dữ liệu giải thuật chưa zậy?? cái đó có trong cấu trúc dữ liệu giải thuật đó

                Comment


                • Originally posted by 10520180 View Post
                  thế bạn học môn cấu trúc dữ liệu giải thuật chưa zậy?? cái đó có trong cấu trúc dữ liệu giải thuật đó
                  Có 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

                  Comment


                  • Originally posted by 10520101 View Post
                    Có 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
                    Thì cũng chỉ giới thiệu thôi, chờ tới môn Phân tích thiết kế thuật toán mới học sâu về cái đó, cái gì cũng phải có bài bản từng bước đàng hoàng.

                    Comment


                    • 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?

                      Comment

                      LHQC

                      Collapse
                      Working...
                      X