首页 > 其他分享 >科学与社会研讨课部分代码保存——修改操作拓展

科学与社会研讨课部分代码保存——修改操作拓展

时间:2024-05-30 17:55:28浏览次数:7  
标签:read 代码 long -- while 拓展 研讨 qwq define

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
#define _for(i,a,b) for(register int (i)=(a);(i)<=(b);(i)++)
#define For(i,a,b) for(register int (i)=(a);(i)>=(b);(i)--)
#define INF 0x7fffffff
#define il inline
#define rg register
inline long long read(){
    long long num=0;int z=1;char c=getchar();
    if(c=='-') z=-1;
    while((c<'0'||c>'9')&&c!='-') c=getchar();
    if(c=='-') z=-1,c=getchar();
    while(c>='0'&&c<='9') num=(num<<1)+(num<<3)+(c^48),c=getchar();
    return z*num;
}
const int N=2e6+5;
int n,m;
int qwq,awa,len;
class Node{
    public:
        int l,r,t,id;
}p[N];
class node{
    public:
        int pos,val;
}q[N];
int cnt[N],ans[N],sum,a[N],pos[N];
class cmp{
    public:
        il bool operator () (const Node &a,const Node &b){
            if(pos[a.l]!=pos[b.l]) return a.l<b.l;
            if(pos[a.r]!=pos[b.r]) return a.r<b.r;
            return a.t<b.t;
        }
};
il void add(int o){ if(++cnt[o]==1) ++sum; }
il void reduce(int o){ if(--cnt[o]==0) --sum; }
il void init(int x,int y){
    if(q[x].pos>=p[y].l and q[x].pos<=p[y].r){
        if(--cnt[a[q[x].pos]]==0) --sum;
        if(++cnt[q[x].val]==1) ++sum;
    }
    swap(a[q[x].pos],q[x].val);
}
il void solve(){
    int l(1),r(0),owo(0);
    _for(i,1,qwq){
        while(l<p[i].l) reduce(a[l++]);
        while(l>p[i].l) add(a[--l]);
        while(r>p[i].r) reduce(a[r--]);
        while(r<p[i].r) add(a[++r]);
        while(owo<p[i].t) init(++owo,i);
        while(owo>p[i].t) init(owo--,i);
        ans[p[i].id]=sum;
    }
}
int main(){
    n=read(),m=read();
    len=pow(n,0.666);
    _for(i,1,n) a[i]=read(),pos[i]=(i-1)/len+1;
    _for(i,1,m){
        char op[5];
        scanf("%s",op+1);
        if(op[1]=='Q') p[++qwq].l=read(),p[qwq].r=read(),p[qwq].t=awa,p[qwq].id=qwq;
        if(op[1]=='R') q[++awa].pos=read(),q[awa].val=read();
    }
    sort(p+1,p+qwq+1,cmp());
    solve();
    _for(i,1,qwq) printf("%d\n",ans[i]);
    return 0;
}

标签:read,代码,long,--,while,拓展,研讨,qwq,define
From: https://www.cnblogs.com/Chanter/p/18222959

相关文章

  • 大表迁移,内存不够,如何用纯代码实现?
    很多情况下,在工作中需要进行表单迁移,在没有迁移软件的前提下,应该如何进行操作呢?第一种思路可以通过命令行将表单文件导出再导入,但是表单文件足够大的情况下,导出和导入是非常麻烦的。在此提供一个纯java代码的简单思路。通常情况我们查询一个较大的表单需要花费很长的时间,并......
  • Llama模型家族训练奖励模型Reward Model技术及代码实战(二)从用户反馈构建比较数据集
    LlaMA3系列博客基于LlaMA3+LangGraph在windows本地部署大模型(一)基于LlaMA3+LangGraph在windows本地部署大模型(二)基于LlaMA3+LangGraph在windows本地部署大模型(三)基于LlaMA3+LangGraph在windows本地部署大模型(四)基于LlaMA3+LangGraph在w......
  • Mistral 发布 Codestral,它的第一个代码生成人工智能模型,精通 80 多种编程语言
    Mistral是一家由微软支持、估值60亿美元的法国人工智能初创公司,它发布了第一个用于编码的生成式人工智能模型,名为Codestral。与其他代码生成模型一样,Codestral旨在帮助开发人员编写代码并与代码交互。Mistral在博客文章中解释说,它接受了80多种编程语言的培训,包括Py......
  • AnyCAD中的Editor示例代码学习1
    AnyCADRapidSDK(ARS)是一个包含三维几何造型、图形显示、数据管理等模块综合三维图形平台,支持Windows、Linux、MacOS多操作系统,支持.NET、Python、Java多开发语言,可以用于开发CAD/CAE/CAM/SIM应用程序,用于机械、建筑、电力、教育、机器人、科学计算等领域。目前计划基于Anyc......
  • 源代码管理工具介绍:Github
    GitHub是一个广泛使用的源代码管理工具,基于Git版本控制系统。它提供了丰富的功能,使开发者能够轻松地进行代码管理、协作和项目管理。以下是我对GitHub的介绍,包括了它的使用方法和优点:使用方法创建GitHub账户要使用GitHub,首先需要创建一个账户。访问GitHub官网,点击“......
  • 源代码管理工具
    我们小组打算使用Github来管理项目的代码Github介绍GitHub是一个基于云端的代码托管平台,提供版本控制、协作开发和代码管理等功能。它支持Git版本库格式,拥有1亿开发人员和400万组织机构。使用GitHub的基本步骤包括注册账户、创建仓库、安装和配置Git,以及进行基本的Git操作,如创建......
  • GitHub 作为主流源代码管理工具的特点及其在 AR 精灵项目中的运用
    GitHub是一个基于Web的版本控制和协作平台,建立在Git版本控制系统之上。Git由Linux操作系统的创建者LinusTorvalds开发,是一个分布式版本控制系统,广泛应用于软件开发项目中。GitHub提供了丰富的功能,帮助开发人员轻松管理和跟踪代码更改,与他人共享工作,并在项目上协作。本......
  • 源代码管理工具
    GitHub重要特点的详细介绍:分布式版本控制-GitGitHub基于Git,这是一个由LinusTorvalds设计的分布式版本控制系统。Git非常高效,能够处理从小型到非常大型的项目。它支持创建分支和合并,支持代码的快速迭代,并且可以很容易地管理不同开发人员之间的代码变更。协作工具-分支......
  • 基于Java+Vue的园区智能化管理系统:综合管控,推进数字化转型(代码分享)
    前言:智慧园区管理平台是一个集成了多种功能的综合性系统,旨在通过信息化、智能化手段提升园区的管理效率和服务质量。以下是针对系统的各个功能模块的简要描述:一、楼栋管理会务管理:管理园区内的会议预约、会议室使用等。园区信息:展示园区的基本信息,如位置、面积、规划等。楼......
  • 源代码管理工具
    源代码管理工具介绍源代码工具的作用1).能够追踪一个项目从诞生到一直定案的过程2).记录一个项目所有内容的变化3).方便查阅特定版本的修订情况源代码管理工具可以判断每一行代码里面每一个字符是谁写的。使用源代码管理工具的好处:由于使用简单,不会增加工作量。不会对现有工......