Trang chủ Tin Học Lớp 7 Cho một dãy gồm N số nguyên dương A1, A2,,...

Cho một dãy gồm N số nguyên dương A1, A2,, AN. (N 105, Ai 108). Cho Q truy vấn có dạng (u,v). Với mỗi truy vấn (u,v) trả lời tổng các phần tử của mảng A từ ph

Câu hỏi :

Cho một dãy gồm N số nguyên dương A1, A2,, AN. (N 105, Ai 108). Cho Q truy vấn có dạng (u,v). Với mỗi truy vấn (u,v) trả lời tổng các phần tử của mảng A từ phần tử thứ u đến phần tử thứ v. Input: Dòng đầu chứa số N, Q (1 Q 105) Dòng thứ hai chứa N số nguyên dương A1, A2,, AN. Q dòng tiếp theo ghi 2 số nguyên u,v (1 u v 105) Output: Gồm Q dòng, mỗi dòng ghi trả lời tương ứng với mỗi truy vấn.. Ví dụ Input 8 4 1 4 5 1 4 3 3 4 1 4 3 5 6 7 5 8 Output 11 10 6 14 (Trong C++ ạ! Code càng đơn giản càng tốt nhé)

Lời giải 1 :

$\texttt{C++}$

#include <bits/stdc++.h>

using namespace std;

int main()
{
    long long n, a[100005], prefix[100005], u, v, q;
    cin >> n >> q;
    for (int i = 1; i <= n; i++)
    {
        cin >> a[i];
        prefix[i] = prefix[i - 1] + a[i];
    }
    while (q--)
    {
        cin >> u >> v;
        cout << prefix[v] - prefix[u - 1] << '\n';
    }
    return 0;
}

Lời giải 2 :

#include <bits/stdc++.h>

using namespace std;

const int maxarr = 1e6+5;
long a[maxarr];
long p[maxarr];
int main()
{
    int n, m;
    cin >> n >> m;
    for(int i = 1; i <= n; i++)
    {
        cin >> a[i];
        p[i] = p[i-1] + a[i];
    }
    for(int i = 1; i <= m; i++ )
    {
        int a, b;
        cin >> a >> b;
        cout <<p[b] - p[a - 1]<<endl;
    }

    return 0;
}

Credit: @lemonpro134
*Còn có cách dùng kĩ thuật vét cạn, độ phức tạp thời gian sẽ lớn hơn nhiều nên đây là cách tối ưu dùng mảng cộng dồn.

Bạn có biết?

Tin học là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng. Tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin. Hãy tận dụng sức mạnh của tin học để giải quyết các vấn đề và sáng tạo ra những giải pháp mới!

Nguồn :

Wikipedia - Bách khoa toàn thư

Tâm sự lớp 7

Lớp 7 - Năm thứ hai ở cấp trung học cơ sở, một chuỗi quay mới lại đến và chúng ta vẫn bước tiếp trên con đường học sinh. Học tập vẫn là nhiệm vụ chính, hãy luôn kiên trì và không ngừng cố gắng!

Nguồn :

sưu tập

Liên hệ hợp tác hoặc quảng cáo: gmail

Điều khoản dịch vụ

Copyright © 2021 HOCTAPSGK