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

  • Originally posted by 09520019 View Post

    Đây là 1 bug nho nhỏ:

    Bài 1: không có gì để nói
    Bài 2: input = 999999,output có âm không ?
    bài 3 : Biển lặng dễ đắm thuyền
    Tảng đá nhỏ: input 1203 ,output = ?
    Tảng đá to: input = 0, output = ?
    Bài 4: Không có gì để nói.
    Bài 2: input = 999999, output chưa có thấy âm
    bài 3: input 1203, output vẫn bình thường mà anh.
    input=0 cái này chưa từng để ý đến

    Comment


    • Originally posted by 09520019 View Post
      Em đừng có nói láo. 999999999999999999999999999999999999999999999 vượt khoảng long long int rồi.

      Mà tưởng 12h đêm mới hết hạn chớ ai dè 12h trưa ^_^

      Đây là 1 bug nho nhỏ:

      Bài 1: không có gì để nói
      Bài 2: input = 999999,output có âm không ?
      bài 3 : Biển lặng dễ đắm thuyền
      Tảng đá nhỏ: input 1203 ,output = ?
      Tảng đá to: input = 0, output = ?
      Bài 4: Không có gì để nói.
      1. Bạn nào làm đc 200k < 1s post lên học tập nào.
      2. May mà mình để long long tất --> OK (mừng quá).
      3. Đá nhỏ: ủa, 1203 thì ra 3021 bug sao anh ????
      Đá lớn: Có khởi tạo bằng 0, mừng quá, cái này là hên chứ không hề để ý.
      4. Em dùng công thức Số số chia hết cho 3 <= N là 2*(N/3) + (N%3)/2 được không anh, chứng minh cả buổi chiều :x

      Comment


      • Originally posted by 09520019 View Post

        Mà tưởng 12h đêm mới hết hạn chớ ai dè 12h trưa ^_^

        Đây là 1 bug nho nhỏ:

        Bài 1: không có gì để nói
        Bài 2: input = 999999,output có âm không ?
        bài 3 : Biển lặng dễ đắm thuyền
        Tảng đá nhỏ: input 1203 ,output = ?
        Tảng đá to: input = 0, output = ?
        Bài 4: Không có gì để nói.

        Unofficial Solution :
        Bài 1: các bạn cài 1 hàm isprime đơn giản là được. Nếu siêng hơn có thể dùng Eratosthenes
        Bài 2: công thức : n * (n + 1) / 2, chú ý n * n có thể tràn nếu để int
        Bài 3: bài đảo số đơn giản, có thể dùng long long int hoặc string tùy ý, nhưng lưu ý trường hợp n = 0
        Bài 4: công thức : res = 2 * (n / 3), nếu n % 3 dư 2 thì res = res + 1.
        Không bị dính cái nào .

        Comment


        • Originally posted by 10520272 View Post
          1. Bạn nào làm đc 200k < 1s post lên học tập nào.
          2. May mà mình để long long tất --> OK (mừng quá).
          3. Đá nhỏ: ủa, 1203 thì ra 3021 bug sao anh ????
          Đá lớn: Có khởi tạo bằng 0, mừng quá, cái này là hên chứ không hề để ý.
          4. Em dùng công thức Số số chia hết cho 3 <= N là 2*(N/3) + (N%3)/2 được không anh, chứng minh cả buổi chiều :x
          Bài 1 của mình. >450k 1s.
          PHP Code:
          #include <stdio.h>
          int main()
          {
              
          long int n,i,j,k,l;
              
          //do scanf("%ld",&n);while ((n<=0)||(n>1000));
              
          n=450000;
              
          long int m[n];
              
          m[0]=2;
              
          k=0;
              for (
          i=3;k<=n-1;i++)
                  for (
          j=0;;j++)
                  {
                      
          l=(m[j]*m[j]);
                      if (
          l>i)
                      {
                          
          k++;
                          
          m[k]=i;
                          break;
                      }
                      if (
          i%m[j]==0) break;
                  }
              
          printf("So nguyen to thu %ld la: %ld",n,m[k-1]);

          Last edited by 11520132; 19-11-2011, 13:45.

          Comment


          • Originally posted by 11520132 View Post
            Anh dùng từ "láo" xúc phạm em đó.
            Vô tình thôi mà bạn, đừng giận.

            Originally posted by 11520132 View Post
            Không bị dính cái nào .
            Chúc mừng nhá.

            Comment


            • Originally posted by 11520132 View Post
              [ATTACH=CONFIG]1549[/ATTACH]
              Nhưng mà nó tính được là sao anh.
              Vấn đề này em cũng không hiểu nữa. Em thầy nó tính được nên em nghĩ nó với tới thôi.
              mà em cũng không biết nó tính đúng hay sai nữa. Tại cứ nhập thêm số 9 vào tới khi nó không tính được nữa.
              Anh dùng từ "láo" xúc phạm em đó.
              Kết quả đúng không ?
              Output = 66666666666666666666666666666666

              Công thức nhìn có vẻ đúng 2*(N/3) + (N%3)/2

              N dư 1 thì N%3 / 2 = 0
              N dư 2 thì N%3 / 2 = 1

              OK => Accepted
              Last edited by 09520019; 19-11-2011, 13:50.
              Khoảng cách giữa bạn và ước mơ của bạn là bao xa ?

              Comment


              • Anh Châu nói đúng, hehe. Bạn trẻ nên thận trọng.
                Bài 3 dùng chuổi ---> dính chưởng....Anh Châu kiếm bug hay thiệt
                Last edited by 10520516; 19-11-2011, 13:52.

                Comment


                • Originally posted by 09520019 View Post
                  Kết quả đúng không ?
                  Output = 66666666666666666666666666666666

                  Công thức nhìn có vẻ đúng 2*(N/3) + (N%3)/2

                  N dư 1 thì N%3 / 2 = 0
                  N dư 2 thì N%3 / 2 = 1

                  OK => Accepted
                  Vậy cái gì gây nên lỗi này anh ?

                  Comment


                  • Originally posted by 11520132 View Post
                    Bài 1 của mình. >450k 1s.
                    PHP Code:
                    #include <stdio.h>
                    int main()
                    {
                        
                    long int n,i,j,k,l;
                        
                    //do scanf("%ld",&n);while ((n<=0)||(n>1000));
                        
                    n=450000;
                        
                    long int m[n];
                        
                    m[0]=2;
                        
                    k=0;
                        for (
                    i=3;k<=n-1;i++)
                            for (
                    j=0;;j++)
                            {
                                
                    l=(m[j]*m[j]);
                                if (
                    l>i)
                                {
                                    
                    k++;
                                    
                    m[k]=i;
                                    break;
                                }
                                if (
                    i%m[j]==0) break;
                            }
                        
                    printf("So nguyen to thu %ld la: %ld",n,m[k-1]);

                    ủa, sao máy mình chạy không được code này bạn (kể cả n = 2). Mình debug thấy biến k chả bao giờ tăng cả --> lặp mãi không thôi. Mình cũng không hiểu rõ thuật toan của bạn lắm. Bạn vui lòng giải thích rõ hơn tí cho mình học tập với được không.
                    Cảm ơn bạn.

                    Comment


                    • Originally posted by 11520132 View Post
                      Vậy cái gì gây nên lỗi này anh ?
                      long long int không chứa nổi con số đó.
                      Long long int max = 2^63 - 1
                      unsigned long long int max = 2^64 - 1
                      Anh tính ra số đó bằng calculator của windows (Hỗ trợ số lớn)

                      Originally posted by 10520272 View Post
                      ủa, sao máy mình chạy không được code này bạn (kể cả n = 2). Mình debug thấy biến k chả bao giờ tăng cả --> lặp mãi không thôi. Mình cũng không hiểu rõ thuật toan của bạn lắm. Bạn vui lòng giải thích rõ hơn tí cho mình học tập với được không.
                      Cảm ơn bạn.
                      Bạn tìm trên forum mình có code sàn số nguyên tố rồi. Mình không post code đó nữa

                      Originally posted by 10520272 View Post
                      3. Đá nhỏ: ủa, 1203 thì ra 3021 bug sao anh ????
                      Bạn trẻ nào dùng if (n % 10 != 0) cout .... thì sẽ dính

                      1 Lời khuyên cho bài số 4: Khi bạn đi thi Olympic cá nhân, với bài số 1 2 3 ai cũng có thể làm đc, bài số 4 ko ai làm đc thì tốt nhất mình cứ.....vét cạn, hơn đc vài điểm là hơn hạng rồi. Nhưng điều này ko áp dụng đc cho IOI / ACM
                      Last edited by 09520019; 19-11-2011, 13:58.
                      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
                        Bạn tìm trên forum mình có code sàn số nguyên tố rồi. Mình không post code đó nữa
                        Dĩ nhiên, nhưng sàng thì cũng chỉ tới đc ~200k - 350k 1s thôi. 450k 1s thì đúng là nhanh quá (cũng có thể do máy), với lại thuật toan của bạn ấy nhìn hơi lạ nên em mới hỏi. Cái gì học được thì cứ học mà anh. Có mất gì đâu :x.

                        Comment


                        • Originally posted by 09520019 View Post
                          Bạn trẻ nào dùng if (n % 10 != 0) cout .... thì sẽ dính
                          THì số 0 không viết ra hay sao anh ?

                          Comment


                          • Originally posted by 09520019 View Post
                            Kết quả đúng không ?
                            Output = 66666666666666666666666666666666

                            Công thức nhìn có vẻ đúng 2*(N/3) + (N%3)/2

                            N dư 1 thì N%3 / 2 = 0
                            N dư 2 thì N%3 / 2 = 1

                            OK => Accepted
                            em nghĩ là nếu mình đổi công thức lại chút xíu thì đỡ phải xét thêm trường hợp n%3==2 res=(n*2)/3 ^^

                            Comment


                            • Originally posted by 10520272 View Post
                              Dĩ nhiên, nhưng sàng thì cũng chỉ tới đc ~200k - 350k 1s thôi. 450k 1s thì đúng là nhanh quá (cũng có thể do máy), với lại thuật toan của bạn ấy nhìn hơi lạ nên em mới hỏi. Cái gì học được thì cứ học mà anh. Có mất gì đâu :x.
                              Bài đó là 1 biến đổi khác của sàn số nguyên tố nhưng dùng ít bộ nhớ hơn

                              Originally posted by 11520132 View Post
                              THì số 0 không viết ra hay sao anh ?
                              Có 1 vài bạn sẽ code là số 0 thì 0 viết ra.

                              Originally posted by 11520214 View Post
                              em nghĩ là nếu mình đổi công thức lại chút xíu thì đỡ phải xét thêm trường hợp n%3==2 res=(n*2)/3 ^^
                              làm vậy sẽ rối khi có bug. Nhưng nhanh hơn thì không bao nhiêu (Khoảng 1 ~ 2 instruction gì đó)
                              Last edited by 09520019; 19-11-2011, 14:04.
                              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
                                Bài đó là 1 biến đổi khác của sàn số nguyên tố nhưng dùng ít bộ nhớ hơn
                                ra thế, cảm ơn anh nhiều.

                                Ý anh bug chỗ 1203 là sẽ chỉ ra số 3 thôi hả. Ghê thật, mình đọc mà mãi đến giờ mới hiểu.

                                Comment

                                LHQC

                                Collapse
                                Working...
                                X