当前位置: 首页 > news >正文

k倍区间--线段树60/map+思维100

1.线段树/前缀和都是n方级别的,40%超时

#include<bits/stdc++.h>
using namespace std;
#define N 100011
typedef  long long ll;
typedef pair<int,int> pii;
int n,k,an;
struct tree
{int l,r;ll s,laz;
}tr[10*N];
ll in[10*N];
void bulid(int i,int l,int r)
{tr[i].l=l;tr[i].r=r;tr[i].laz=0;if(l==r){tr[i].s=in[l];return ;}int mid=(l+r)>>1;bulid(2*i,l,mid);bulid(2*i+1,mid+1,r);tr[i].s=tr[2*i].s+tr[i*2+1].s;
}
void pushdown(int i)
{if(tr[i].laz!=0){tr[2*i].laz+=tr[i].laz;tr[2*i+1].laz+=tr[i].laz;int mid=(tr[i].l+tr[i].r)>>1;tr[i*2].s+=tr[i].laz*(mid-tr[2*i].l+1);tr[2*i+1].s+=tr[i].laz*(tr[i*2+1].r-mid);tr[i].laz=0;}return ;} ll search(int i,int l,int r){if(l<=tr[i].l&&tr[i].r<=r){return tr[i].s;}ll sum=0;if(tr[i*2].r>=l) sum+=search(2*i,l,r);if(tr[2*i+1].l<=r) sum+=search(2*i+1,l,r);return sum;}
int main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>n>>k;for(int i=1;i<=n;i++)cin>>in[i];bulid(1,1,n);for(int i=1;i<=n;i++) for(int j=i;j<=n;j++){if(search(1,i,j)>=0&&search(1,i,j)%k==0){an++;}}cout<<an;return 0;
}

相关文章:

  • 【ARM】DS-试用授权离线激活
  • Spring Boot3 实现定时任务 每10分钟执行一次,同时要解决分布式的问题 区分不同场景
  • OS7.【Linux】基本指令入门(6)
  • 启发式算法-模拟退火算法
  • 【LLM】Open WebUI 使用指南:详细图文教程
  • OpenCV 图形API(79)图像与通道拼接函数-----将一个三通道的 GMat 图像拆分为三个单独的单通道 GMat函数split3()
  • win11 怎样把D盘空间分给C盘一点
  • 微信小程序BLE蓝牙模块断开后无法再次搜索到原来的蓝牙
  • 使用原生 CSS 实现轮播
  • iPhone或iPad想要远程投屏到Linux系统电脑,要怎么办?
  • PrimExpr 与 RelayExpr 的区别
  • unix 详解
  • R 语言科研绘图第 45 期 --- 桑基图-和弦
  • 共享会议室|物联网解决方案:打造高效、智能的会议空间!
  • 基于深度学习的图像识别技术:从原理到应用
  • 创建简易个人关系图谱(Neo4j )
  • 神经网络之激活函数:解锁非线性奥秘的关键
  • 第三节:Vben Admin 最新 v5.0 对接后端登录接口(下)
  • 微机控制技术复习【一】
  • 【踩坑记录】项目Bug分析:一次因 `String.isBlank()` 引发的崩溃(No such instance method: ‘isBlank‘)
  • 三大交易所多举措支持科创债再扩容,约160亿证券公司科创债有望近期落地
  • 特朗普称美军舰商船应免费通行苏伊士运河,外交部:反对任何霸凌言行
  • 李云泽:大型保险集团资本补充已经提上日程
  • 上海虹桥机场至北京首都机场快线试运行跨航司自愿签转服务
  • 非洲中青年军官代表团访华,赴北京、长沙、韶山等地参访交流
  • 沪幼升小网上报名明起开始,是否参与民办摇号怎么定?