首页 > 其他分享 >ac 797 差分

ac 797 差分

时间:2022-08-24 19:33:06浏览次数:66  
标签:797 ac temp nums int cin 差分 ++

//常规时间复杂度为 n*m
// #include<bits/stdc++.h>
// using namespace std;
// int main() {
// int n, m;
// cin >> n >> m;
// vector nums;
// for (int i = 0; i < n; i++) {
// int temp;
// cin >> temp;
// nums.push_back(temp);
// }
// for (int i = 0; i < m; i++) {
// int l, r, c;
// cin >> l >> r >> c;
// for (int j = l - 1; j < r; j++) {
// nums[j] += c;
// }
// }
// for (int i = 0; i < n - 1; i++) {
// cout << nums[i] << " ";
// }
// cout << nums[nums.size() - 1];
// }

      //差分 时间复杂度 o(m)
      #include<iostream>
      using namespace std;
      const int N = 1e5 + 10;
      int a[N], b[N];
      int main()
      {
          int n, m;
          scanf("%d%d", &n, &m);
          for (int i = 1; i <= n; i++)
          {
              scanf("%d", &a[i]);
              b[i] = a[i] - a[i - 1];      //构建差分数组 重点在于 b[n]前n项和等于a[n]
          }
          int l, r, c;
          while (m--)
          {
              scanf("%d%d%d", &l, &r, &c);
              b[l] += c;     //将序列中[l, r]之间的每个数都加上c
              b[r + 1] -= c;
          }
          for (int i = 1; i <= n; i++)
          {
              a[i] = b[i] + a[i - 1];    //前缀和运算
              printf("%d ", a[i]);
          }
          return 0;
      }

标签:797,ac,temp,nums,int,cin,差分,++
From: https://www.cnblogs.com/echoT/p/16621314.html

相关文章

  • 云途加油站 | 一文读懂 Dynatrace 与 Amazon Lambda 的“双剑合璧心法”
    本文由Dynatrace撰写。AmazonLambda正在掀起企业级云市场的一场小潮流。不少业内人士发现,越来越多的企业正在将Lambda函数加入其技术栈中。这一潮流其实不难理解—......
  • After Effects 2022 for Mac(ae 2022)中文版
    AfterEffects2022formac是一款视频特效编辑软件,被称为AE,拥有强大的特效工具,旋转,用于2D和3D合成、动画制作和视觉特效等,效果创建电影级影片字幕、片头和过渡,可以实现你的......
  • YApi-v1.9.2部署失败(Accessing non-existent property 'count' of module exports ins
    部署YApi时,出现报错信息:Accessingnon-existentproperty'count'ofmoduleexportsinsidecirculardependencyGitHub上未找到解决方案,网上发现其他同学也遇到了类似的......
  • 分布式Trace
    六、分布式Trace简述1.请求要在多个服务之间调用,如何排查慢请求问题?给同一个请求的每一行日志增加一个相同的标记,比如我们可以在程序的入口处生成一个requestId,然后把它......
  • oracle中pivot函数的用法
    pivot函数:对查询结果行转列进行统计示例:比如我想查每个用户投资的各种类型基金的分别有多少份额平常的写法:selectuserID,fundtype,sum(shares)fromuserassetgroup......
  • 九,DRF JWT-RBAC
    一JWT认证在用户注册或登录后,我们想记录用户的登录状态,或者为用户创建身份认证的凭证。我们不再使用Session认证机制,而使用JsonWebToken(本质就是token)认证机制。Json......
  • 修改Oracle共享池大小
    1. sysdba登录数据库[oracle@ufdb165~]$sqlplus/nologSQL*Plus:Release11.2.0.4.0ProductiononWedAug2415:12:202022Copyright(c)1982,2013,Oracl......
  • oracle 怎么查看用户对应的表空间
    oracle怎么查看用户对应的表空间?查询用户:查看数据库里面所有用户,前提是你是有dba权限的帐号,如sys,system:select*fromdba_users;查看你能管理的所有用户:select......
  • Mendix中级认证培训案例-Vacation Tracking
    VacationTracking一、用户角色:AdministratorEmployee:Manager:Guest:二、UserManagement模块:0、模块角色ManagerEmployeeGuest1、Domainmodel......
  • ORA-01950: no privileges on tablespace 'USERS'-- 解决办法
    ORA-01950:noprivilegesontablespace'USERS' 原因: 在表空间“USERS”无权限解决办法: 用户登录,查看当前用户所属表空间:select 用户名,default_tablespace......