22hhlin


私信TA

用户名:dotcpp0703740

访问量:4170

签 名:

好好学算法

等  级
排  名 8715
经  验 1209
参赛次数 1
文章发表 17
年  龄 20
在职情况 学生
学  校 汕头大学
专  业 计算机科学与技术

  自我简介:



参考代码:


#include <bits/stdc++.h>

using namespace std;


const int N = 1000010;

int a[N];


int main(void) {

    int n, m;

    scanf("%d%d", &n, &m);


    for (int i = 1; i <= n; i++) scanf("%d", &a[i]);

    for (int i = 1; i <= m; i++)

    {

        int l, r, ans = 0;

        scanf("%d%d", &l, &r);


        for (int j = l; j <= r; j++) {

            a[j] = floor(log2(a[j]) + 1);

            ans += a[j];

        }

        for (int j = 1; j <= n; j++) {

            if (j < l || j > r) ans += a[j];

        }


        printf("%d\n", ans);

    }

    return 0;

}


 

0.0分

1 人评分

  评论区

  • «
  • »