首页 > 其他分享 >代码康复训练

代码康复训练

时间:2023-09-12 21:34:42浏览次数:29  
标签:ch return int lowbit 代码 long 康复训练 inline

树状数组区间求和P3374

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=5e5+10;
int n,m;
struct BIT
{
    int lim,tre[N];
    inline int lowbit(int x){return x&(-x);}
    inline void insert(int x,int val){for(int i=x;i<=lim;i+=lowbit(i))tre[i]+=val;}
    inline int query(int x){int temp=0;for(int i=x;i>0;i-=lowbit(i))temp+=tre[i];return temp;}
    inline int query(int l,int r){return query(r)-query(l-1);}
}T;
inline int read()
{
    int x=0,f=1; char ch=getchar();
    while(ch>'9'||ch<'0'){if(ch=='-')f=-1;ch=getchar();}
    while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}
    return x*f;
}
#undef int
int main()
{
    #define  int long long
    T.lim=n=read(); m=read();
    for(int i=1,x;i<=n;i++) x=read(),T.insert(i,x);
    for(int i=1,opt,x,y;i<=m;i++)
    {
        opt=read(); x=read(); y=read();
        if(opt==1) T.insert(x,y);
        else printf("%lld\n",T.query(x,y));
    }
    return 0;
}

树状数组区间加P3368

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=5e5+10;
int n,m;
struct BIT
{
    int lim,tre[N];
    inline int lowbit(int x){return x&(-x);}
    inline void insert(int x,int val){for(int i=x;i<=lim;i+=lowbit(i))tre[i]+=val;}
    inline void insert(int l,int r,int val){insert(l,val);insert(r+1,-val);}
    inline int query(int x){int temp=0;for(int i=x;i>0;i-=lowbit(i))temp+=tre[i];return temp;}
}T;
inline int read()
{
    int x=0,f=1; char ch=getchar();
    while(ch>'9'||ch<'0'){if(ch=='-')f=-1;ch=getchar();}
    while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}
    return x*f;
}
#undef int
int main()
{
    #define  int long long
    T.lim=n=read(); m=read();
    for(int i=1,x;i<=n;i++) x=read(),T.insert(i,i,x);
    for(int i=1,opt,x,y,k;i<=m;i++)
    {
        opt=read(); x=read();
        if(opt==1) y=read(),k=read(),T.insert(x,y,k);
        else printf("%lld\n",T.query(x));
    }
    return 0;
}

标签:ch,return,int,lowbit,代码,long,康复训练,inline
From: https://www.cnblogs.com/Varuxn/p/17697850.html

相关文章

  • 代码随想录算法训练营第六天
    代码随想录算法训练营第六天|LeetCode454(四数相加II)LeetCode383(赎金信)LeetCode15(三数之和)LeetCode18(四数之和)454:四数相加IILeetCode454(四数相加II)思路:首先定义一个map,key放a和b两数之和,value放a和b两数之和出现的次数。遍历nums1和nums2数组,统计两个数......
  • 编写高质量代码:Web前端开发修炼之道
    编写高质量代码:Web前端开发修炼之道》是一本很实用的Web前端开发书籍。它不仅介绍了如何编写高质量的代码,还提供了一些实践方法和技巧,帮助读者提升自己的Web前端开发技能。无论是初学者还是有一定经验的开发者,都可以从这本书中获得一些有价值的知识和经验。下载:https://pan.quark.c......
  • 用AI提高代码质量,同事对我的代码赞不绝口~
    在当今软件开发领域,代码质量被视为至关重要的因素,因为它直接影响到软件的可维护性、可扩展性和可靠性。尽管有人担忧AI技术的快速发展可能会取代初级程序员的工作,但我们应该认识到提升自身技能和成长是关键。在这种情况下,合理的学会使用AI工具或许可以带来某些帮助,作为飞算SoFlu软......
  • 代码混淆和加固,保障应用程序的安全性
    摘要:本文将详细介绍iOS技术博主在保护应用程序代码安全方面的两种重要方式:代码混淆和代码加固。通过代码混淆和加固,博主可以有效防止他人对应用程序进行逆向工程和篡改,提高应用程序的安全性。引言:作为iOS技术博主,保护自己的代码免受不良行为的侵犯是非常重要的。为了确保代码的安......
  • 纯C++代码理解Qt中的信号和槽函数
    槽函数的调用是一个多步骤的过程:1.连接(Connect)首先,通过使用QObject::connect()函数来建立信号和槽之间的连接。QObject::connect(sender,SIGNAL(signalName(args)),receiver,SLOT(slotName(args)));这里的sender和receiver是QObject派生的对象,而signalName和slotName则分......
  • 优维低代码实践:菜单
    优维低代码技术专栏,是一个全新的、技术为主的专栏,由优维技术委员会成员执笔,基于优维7年低代码技术研发及运维成果,主要介绍低代码相关的技术原理及架构逻辑,目的是给广大运维人提供一个技术交流与学习的平台。优维低代码实践连载第17期《菜单》▽在微应用中,通过菜单的配置,可以更方便......
  • wkt转换成geojson的代码
    安装及导入(在安装shapely之前一定要先安装geos)pipinstallgeospipinstallshapely下面是一个使用Python将WKT转换为GeoJSON的代码示例:importjsonfromshapely.wktimportloadswkt="POINT(1010)"shape=loads(wkt)geojson=json.dumps(shape.__geo_inter......
  • 上位机使用JS SerialPort进行串口通信, 包含开发环境搭建和完整示例代码
    在嵌入式开发中,我们经常需要使用上位机(PC)与一些电路模块进行通信,用于获取一些传感器的数据,或者发送命令控制相应的电路模块。NodeJS目前支持使用SerialPort模块进行串口通信,本文主要介绍如何搭建测试开发环境和如何使用SerialPort进行串口通信。 开发前准备:1.下载安装NodeJS......
  • .NET Core(C#)通过SharpCifs访问操作Windows(smb)共享目录方法代码
    .NETCore(C#)通过SharpCifs访问操作Windows(smb)共享目录方法代码本文主要介绍.NETCore中,使用SharpCifs访问windows共享目录或smb协义共享目录,或操作共享文件的方法代码。 1、SharpCifs的安装引用使用Nuget管理工具搜索"SharpCifs"=>找到选择"安装"相关文档:VS(Vis......
  • 程序员 AI 助手来了,蚂蚁正式开源代码大模型 CodeFuse
    9月8日,外滩大会分论坛上,蚂蚁集团首次开源了代码大模型CodeFuse。支付宝小程序云负责人李铮宣布CodeFuse正式开源这是蚂蚁自研的代码生成专属大模型,根据开发者的输入提供智能建议和实时支持,帮助开发者自动生成代码、自动增加注释,自动生成测试用例,修复和优化代码等,以提升研发......