首页 > 其他分享 >7.22做题记录

7.22做题记录

时间:2023-07-22 16:13:36浏览次数:33  
标签:return 记录 int lowbit cin 7.22 add 做题 ans

 1 //树状数组单点修改和区间查询 
 2 #include <bits/stdc++.h>
 3 using namespace std;
 4 int n,m,f[1000005];
 5 int lowbit(int x)
 6 {
 7     return x&-x;
 8 }
 9 void add(int x,int k)
10 {
11     while(x<=n)
12     {
13         f[x]+=k;
14         x+=lowbit(x);
15     }
16 }
17 int sum(int x)
18 {
19     int ans=0;
20     while(x>0)
21     {
22         ans+=f[x];
23         x-=lowbit(x);
24     }
25     return ans;
26 }
27 int main()
28 {
29     cin>>n>>m;
30     for(int i=1;i<=n;i++)
31     {
32         int x;
33         cin>>x;
34         add(i,x);
35     }
36     for(int i=1;i<=m;i++)
37     {
38         int a,b,c;
39         cin>>a>>b>>c;
40         if(a==1)
41             add(b,c);
42         else
43             cout<<sum(c)-sum(b-1)<<endl;
44     }
45     return 0;
46 }
 1 //树状数组区间修改和单点查询
 2 #include <bits/stdc++.h>
 3 using namespace std;
 4 int n,m,a[5000005],f[5000005];
 5 int lowbit(int x)
 6 {
 7     return x&-x;
 8 }
 9 int search(int x)
10 {
11     int ans=0;
12     while(x>0)
13     {
14         ans+=f[x];
15         x-=lowbit(x);
16     }
17     return ans;
18 }
19 void add(int x,int k)
20 {
21     while(x<=n)
22     {
23         f[x]+=k;
24         x+=lowbit(x);
25     }
26 }
27 int main()
28 {
29     cin>>n>>m;
30     for(int i=1;i<=n;i++)
31         cin>>a[i];
32     for(int i=1;i<=m;i++)
33     {
34         int w;
35         cin>>w;
36         if(w==1)
37         {
38             int x,y,z;
39             cin>>x>>y>>z;
40             add(x,z);
41             add(y+1,-z);
42         }
43         else
44         {
45             int x;
46             cin>>x;
47             cout<<search(x)+a[x]<<'\n'; 
48         }
49     }
50     return 0;
51 }

 

标签:return,记录,int,lowbit,cin,7.22,add,做题,ans
From: https://www.cnblogs.com/wyh0721/p/17573516.html

相关文章

  • 「刷题记录」[JSOI2007] 文本生成器
    第一道AC自动机+DP题。题目链接:P4052[JSOI2007]文本生成器-洛谷|计算机科学教育新生态(luogu.com.cn)利用容斥原理的思想,答案就是所有串的数量减去不可读的串的数量。设\(dp\left(i,j\right)\)表示串长为\(i\),在AC自动机上走到编号为\(j\)时不经过单词结......
  • 2023.7.22-假期周进度报告
    本周(7.16-7.22)主要学习大数据相关的最基本知识。下周准备进行休息。周日,进行VMware的下载和虚拟机镜像的下载和安装,完成了VMware的下载和安装,虚拟机的下载和安装,VMnet8虚拟网卡的基本配置,虚拟机主机名和ip地址的配置,遇到了虚拟机镜像下载慢的问题,解决方法是从所看课程中给的资料......
  • 230722 做题记录 // 网络流二十四题 (1/24)
    知耻而后勇,物极必反。A.星际转移问题http://222.180.160.110:1024/contest/3952/problem/1如果就按照题目给的路线图,我们显然无法考虑到飞船到达的时刻。同时\(n\)和\(m\)又很小,我们就知道了,「人不能两次踏进同一条河流」,1时刻的站\(p\)和2时刻的站\(p\)也不能是......
  • 记录实现复制EXCEL数据到前端表单
     背景是用户需要把原本在Excel上填报的数据搬运到线上系统进行填报,在做了一个带输入框的表格之后用户提出希望能够实现将EXCEL上的数据复制黏贴到这个表格里的功能。 实现功能的整体思路是在input框上监听黏贴事件,获取到复制的数据。由于在Excel中\t表示换格,\n表示换行,所以......
  • 低功耗蓝牙BLE的知识点记录
     低功耗蓝牙协议的各层可以用上图表示其中最重要的是GATT和GAP。 两个重要角色:profile和protocolProfile:确保蓝牙装置应用的互通性,由SIG蓝牙技术联盟定义的规范Protocol:针对传输的封包格式、绕行路径、多工机制、编码解码、设备协定层之间横向的资料传输 低......
  • EG.9-2数字三角形 代码记录
    #include<bits/stdc++.h>usingnamespacestd;inta[1005][1005];intmain(){intn;cin>>n;for(inti=1;i<=n;i++){for(intj=1;j<=i;j++){cin>>a[i][j];}}for(inti=n-1;i>=1;i--){......
  • Golang 中 Gin 框架开发学习记录 ——(二)
    4、响应页面  首先创建template文件夹将需要的hmtl文件放在里面,然后编写hmtl<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>我的GOweb页面</title><linkrel="stylesheet"href=&......
  • java aop记录用户操作日志如何获取请求参数
    在Java中,AOP(面向切面编程)是一种编程范式,它可以将横切关注点(如日志记录)从业务逻辑中分离出来,使得代码更加清晰、可维护和可扩展。在记录用户操作日志时,我们可以使用AOP来拦截请求并获取请求参数。首先,我们需要创建一个切面类来实现日志记录的逻辑。假设我们使用Spring框架和AspectJ......
  • 《算法竞赛进阶指南》选记录
    书上有些好题,经典套路,全部看看不过来,选择性记录一下,打星号*是自己认为的重点0x00例题最短Hamilton路径 状压dp,主要注意阶段递推问题*NOI2014起床困难综合症 位运算相关题目常用的:各位分离,贪心高位往低填货仓选址典中典,一个最小化绝对值和式的问题,选中位数七夕祭行列分......
  • 【随手记录】MAT软件及IBM扩展插件IDFT下载
    MAT独立工具最新版本下载地址:https://projects.eclipse.org/projects/tools.matBIMIDFT扩展插件地址:https://www.ibm.com/support/pages/eclipse-memory-analyzer-tool-dtfj-and-ibm-extensions最新版需要jdk17以上,OpenJDK下载地址:https://jdk.java.net/archive/......