首页 > 其他分享 >12/2总结

12/2总结

时间:2023-12-02 17:46:18浏览次数:36  
标签:总结 12 int sum mid long add mod

写代码出了很多问题

  1. scanf(“%lldlld)少打了一个%
  2. %按成了*

犯的错误很智障可能就是打字的时候手误了,但是调程序的能力太差了,一点小错很久很久都调不出来

***

freopen("x.in","r",stdin);

freopen("x.out","w",stdout);

***

把顺序打错了

 

 

 

总结:

取模:(a+b)%mod=(a%mod+b%mod)%mod

线段树

#include<bits/stdc++.h>
using namespace std;
int n,m,mod,a[100005];
struct Segmenttree{
    int l,r;
    long long sum,add,mul;
}t[400020];
void up(int p)
{
  t[p].sum=(t[2*p].sum%mod+t[2*p+1].sum%mod)%mod;
}
void build(int p,int l,int r)
{
  t[p].l=l,t[p].r=r;
  t[p].mul=1,t[p].add=0,t[p].sum=0;初值
  if(l==r)
  {
    t[p].sum=a[l]%mod;
    return;边界
  }
  int mid=(l+r)>>1;
  build(p*2,l,mid);
  build(p*2+1,mid+1,r);
  up(p);
}
void spread(int p)
{
  t[2*p].sum=(t[2*p].sum*t[p].mul%mod+t[p].add*(t[2*p].r-t[2*p].l+1)%mod)%mod;
  t[2*p+1].sum=(t[2*p+1].sum*t[p].mul%mod+t[p].add*(t[2*p+1].r-t[2*p+1].l+1)%mod)%mod;

  t[2*p].mul=t[2*p].mul*t[p].mul%mod;
  t[2*p+1].mul=t[2*p+1].mul*t[p].mul%mod;

  t[2*p].add=(t[2*p].add*t[p].mul%mod+t[p].add%mod)%mod;
  t[2*p+1].add=(t[2*p+1].add*t[p].mul%mod+t[p].add%mod)%mod;//先乘后加

  t[p].mul=1,t[p].add=0;
}
  void jia(int p,int l,int r,long long k)
  {
    if(l<=t[p].l&&r>=t[p].r)
    {
      t[p].sum=(t[p].sum%mod+(t[p].r-t[p].l+1)*k%mod)%mod;
      t[p].add=(t[p].add%mod+k%mod)%mod;
      return;
    }
    spread(p);
    int mid=(t[p].l+t[p].r)>>1;
    if(l<=mid)
      jia(2*p,l,r,k);
    if(r>mid)
      jia(2*p+1,l,r,k);
    up(p);
}
void cheng(int p,int l,int r,long long k)
{
  if(l<=t[p].l&&r>=t[p].r)
  {
    t[p].sum=t[p].sum*k%mod;
    t[p].add=t[p].add*k%mod;
    t[p].mul=t[p].mul*k%mod;
    return;
  }
  spread(p);
  int mid=(t[p].l+t[p].r)>>1;
  if(l<=mid)
    cheng(2*p,l,r,k);
  if(r>mid)
    cheng(2*p+1,l,r,k);
  up(p);
}

long long ask(int p,int l,int r)
{
  if(l<=t[p].l&&r>=t[p].r)
    return t[p].sum%mod;
  spread(p);
  int mid=(t[p].l+t[p].r)>>1;
  long long ans=0;
  if(l<=mid)
    ans=(ans%mod+ask(2*p,l,r)%mod)%mod;
  if(r>mid)
    ans=(ans%mod+ask(2*p+1,l,r)%mod)%mod;
  return ans;
}
int main()
{
  scanf("%d%d%d",&n,&m,&mod);
  for(int i=1;i<=n;i++)
    scanf("%d",&a[i]);
  build(1,1,n);
  while(m--)
  {
    int opt;
    int l,r;
    long long k;
    scanf("%d",&opt);
    if(opt==1)
    {
      scanf("%d%d%lld",&l,&r,&k);
      cheng(1,l,r,k);
    }
    if(opt==2)
    {
      scanf("%d%d%lld",&l,&r,&k);
      jia(1,l,r,k);
    }
    if(opt==3)
    {
      scanf("%d%d",&l,&r);
      printf("%lld\n",ask(1,l,r));
    }
}
    return 0;
}

 

标签:总结,12,int,sum,mid,long,add,mod
From: https://www.cnblogs.com/blogzy/p/17871912.html

相关文章

  • 2023-2024-1 20231321王曦轶 《计算机基础与程序设计》第十周学习总结
    2023-2024-120231321王曦轶《计算机基础与程序设计》第十周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2023-2024-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2023-2024-1计算机基础与程序设计第一周作业)这个作业的目标<计算机科学......
  • 2023-12-02 cannot found module 'xxx'
    问题描述:运行命令报错找不到模块原因:你本地没装好依赖解决方案:删掉依赖,重新build但有时事实并不如此简单,就比如我记录这个bug,不仅仅是删掉依赖,重新build就可以了,还需要找到一个lock文件。如:yarn.lock,如果没有该文件,那么你拉下来的依赖的版本依旧不符合需求,原因就是版本号不同......
  • 数据库总结复习(sql应用题 一)
    目录前言mysql基础语句ddl示例1创建表dcl授权收回权限dml结合事务索引分类格式视图行列子集视图可更新性存储过程示例1带返回值示例2游标示例3结合简单事务触发器前言本文针对考纲上的30分sql应用题所涉及到的知识进行归纳总结。会分为两篇文章,此篇为mysql语句。mysql基......
  • 位运算符-C语言-2023/12/2
    不全面......
  • 20211316郭佳昊 《信息安全系统设计与实现(上)》 第十二周学习总结 MySQL数据库系统
    一、任务要求[1]知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容(4分)我在学****知识点,请你以苏格拉底的方式对我进行提问,一次一个问题核心是要求GPT:请你以苏格拉底的方式对我进行提问然后GPT就会......
  • 12.2
    实验6熟悉Hive的基本操作 1.实验目的(1)理解Hive作为数据仓库在Hadoop体系结构中的角色。(2)熟练使用常用的HiveQL。2.实验平台操作系统:Ubuntu18.04(或Ubuntu16.04)。Hadoop版本:3.1.3。Hive版本:3.1.2。JDK版本:1.8。3.数据集由《Hive编程指南》(O'Reilly系列,人民邮电出版社)......
  • 《计算机基础与程序设计》第10周学习总结
    学期(2023-2024-1)学号(20231327)《计算机基础与程序设计》第10周学习总结作业信息课程<班级的链接>(2023-2024-1-计算机基础与程序设计)要求<作业要求的链接>(2023-2024-1计算机基础与程序设计第10周作业目标<了解文件系统和目录以及字符串的使用>作业正文https:......
  • 2023-2024-1 20232312 《网络空间安全导论》第四周学习
    2023-2024-120232312《网络空间安全导论》第二周学习教材学习内容总结4.1系统安全概述1.系统的定义计算机系统是由硬件和软件组成的复杂系统,它能够接受输入数据,进行处理,然后输出结果。理解计算机系统需要从多个层面进行分析,包括硬件、操作系统、应用软件等方面。2.整......
  • 第十三周学习笔记(学习笔记12)
    〇、思维导图一、知识点总结MySQL数据库简介MySQL是一个关系型数据库管理系统,是最流行的关系型数据库管理系统之一。在WEB应用方面,MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,关系数据库管理系统)应用软件。MySQL是将数据保存在不同的表中,而不是将......
  • 每日总结
    今天写了软件构造的图像增强的代码。packagepicture;importokhttp3.*;importorg.json.JSONObject;importjava.io.*;importjava.nio.file.Files;importjava.nio.file.Paths;importjava.util.Base64;importjava.net.URLEncoder;classSample1{publicst......