差分差分差分

我不是女神ヾ 2022-08-31 02:15 351阅读 0赞
  1. class Solution {
  2. public:
  3. /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 返回m天后高度为奇数的树的数量 * @param n int整型 * @param m int整型 * @param l int整型vector * @param r int整型vector * @return int整型 */
  4. int oddnumber(int n, int m, vector<int>& l, vector<int>& r) {
  5. vector<int> h(n+1);
  6. for (int i =0; i < m; i++)
  7. {
  8. h[l[i]] ++;
  9. h[r[i]+1]--;
  10. } // 差分
  11. int sum[200005]={ 0}, count = 0;
  12. for (int i = 1; i <= n; i++)
  13. {
  14. sum[i] = sum[i-1] + h[i]; //前缀和为浇水长得高度
  15. if((sum[i]+m)&1)//高度为奇数
  16. count++;
  17. }
  18. return count;
  19. }
  20. };

发表评论

表情:
评论列表 (有 0 条评论,351人围观)

还没有评论,来说两句吧...

相关阅读

    相关 信号解释

     所谓差分方式传输,就是发送端在两条信号线上传输的幅值是相等的,相位是相反的电信号,如下图所示: ![20171222175545054][]        而对于接收端,

    相关

    概念 对于一个数组a\[n\],有m次操作,都是对区间\[l,r\]加上k,完事后输出数组 在知道第一个数a\[1\]的情况下,如果我们知道后面的数与前一个数的差值p,

    相关 & 前缀和

    我们从问题入手。   入门问题:有已赋值的 n 个数,现在有 m 个指令 操作 1: 每一次要求将第 k 个数加上 a; 操作 2: 查询第 k 个数字的值。 $1