Hướng dẫn giải của HSG12 Long An 2023 - Vòng 1 - Bài 2

Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người làm lời giải.


Nộp code mẫu trước khi tự giải được bài tập là một hành vi có thể bị ban.

Tác giả: lds, haruxne

  • Với ~N\le10~ ta có thể sinh hoán vị và duyệt qua để tìm kết quả, độ phức tạp ~\mathcal{O}(n! \cdot n)~

  • Với ~N\le10^5~ ta nhận thấy rằng để đạt hệ số cách nhiệt tối ưu thì ta chỉ cần lấy giá trị lớn nhất trừ cho giá trị bé nhất, giá trị lớn thứ hai trừ cho giá trị bé thứ hai….. Khi này bài toán quay về bài toán sắp xếp tăng dần và kết quả sẽ là tổng các giá trị cộng với ~a_{N-i+1}-a_i~ ~(1\le i \le (N+1)/2)~, độ phức tạp ~\mathcal{O}(n\log n)~

Code tham khảo
void input()
{
    cin>>n;
    FOR(i,1,n)  cin>>a[i],sum+=a[i];
}
void lds_go_goooo()
{
    sort(a+1,a+n+1);
    FOR(i,1,(n+1)/2)
        sum+=a[n-i+1]-a[i];
    cout<<sum;
}

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.