10.05.2017

Tháp lũy thừa

Cho một tập N thanh gỗ không thể bị bẻ gãy. Thanh gỗ thứ i có độ dài li.
Hỏi có bao nhiêu cách tạo thành 1 hình vuông bằng cách sử dụng đúng 6 thanh gỗ trong N thanh gỗ đã cho? Hai cách được xem là khác nhau nếu có chúng sử dụng ít nhất 1 thanh khác nhau.
Input Format
   Dòng đầu tiên chứa số nguyên dương N là số lượng thanh gỗ. Dòng thứ hai chứa N số nguyên dương l1,l2,...lN mô tả độ dài của các thanh.
   Giới hạn:
   9<=N<=3000
   1<=li<=10^7
Output Format
   Một số nguyên duy nhất là kết quả tìm được.
Sample Input
   8
   4 5 1 5 1 9 4 5
Sample Output
   3
Explanation
   Có 3 cách để sử dụng 6 thanh gỗ tạo thành một hình vuông:
S1={l1,l2,l3,l4,l5,l7}={4,5,1,5,1,4}
S2={l1,l2,l3,l5,l7,l8}={4,5,1,1,4,5}
S3={l1,l3,l4,l5,l7,l8}={4,1,5,1,4,5}

                                                           Lời giải tham khảo

Tháp lũy thừa hay lũy thừa tháp là một phép toán thường được sử dụng để biểu diễn những giá trị rất lớn. Với hai  + chr$(13) + chr$(10) + _
số nguyên a và n (a>0, n>=0), tháp lũy thừa bậc n của a định nghĩa như sau:
         Tháp lũy thừa bậc n của a = 1 nếu n=0
         Tháp lũy thừa bậc n của a = ((((a)^a)^a)^....)  (n cấp) nếu n>0.
Ví dụ:
    Tháp lũy thừa bậc 2 của 1 = 2
    Tháp lũy thừa bậc 2 của 2 = 2^2 = 4
    Tháp lũy thừa bậc 2 của 3 = ((2)^2)2 =2^4=16
    Tháp lũy thừa bậc 2 của 4 = 2^16=65536
    Tháp lũy thừa bậc 3 của 3 = ((3^3)^3) = 3^27=7625597484987
Yêu cầu: Cho ba số nguyên dương a, n, m, hay cho biết số dư trong phép chia tháp lũy thừa bậc a của n cho m.
Em cần tạo file kết quả có tên là TETRATION.TXT gồm 15 dòng ghi một số nguyên duy nhất là kết quả tìm
được ứng một bộ giá trị a, n, m dưới đây.
     Dòng     a                    n                   m                        TETRATION.TXT
     1            2                   4                   100                                 36     
     2           11                  2                   100                                         
     3           222                2                   1000                                           
     4          1000000         2                   111222                                                   
     5          7                     3                   1000000                                       
     6          8                     3                   1000000                                       
     7          9                     3                   456789                                       
     8          6                     100               108                                           
     9          8                     8                   9                                       
     10        11                   100               12                                               
     11        3                     4                   1000000 
     12       15                    1000000       3087                                                       
     13       1000000          1000000       123456                                                                 
     14       24680              999999         99983                                                         
     15      123456             456789         142857                                                             
Chú ý: Kết quả tương ứng bộ dữ liệu nào cần ghi đúng trên dòng tương ứng với bộ dữ liệu đó.

No comments:

Post a Comment

Cảm ơn bạn đã nhận xét