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

【蓝桥杯集训1】前缀和专题(2 / 5)

目录

前缀和模板

!3956. 截断数组 - 前缀和+枚举 


前缀和模板

活动 - AcWing

import java.util.*;class Main
{static int N=100010;static int[] a=new int[N],s=new int[N];public static void main(String[] args){Scanner sc=new Scanner(System.in);int n=sc.nextInt(),t=sc.nextInt();for(int i=1;i<=n;i++){a[i]=sc.nextInt();s[i]=s[i-1]+a[i];}while(t-->0){int l=sc.nextInt(),r=sc.nextInt();System.out.println(s[r]-s[l-1]);}}
}

!3956. 截断数组 - 前缀和+枚举 

3956. 截断数组 - AcWing题库

题目:

一个数组切两刀,有三段,每段总和相等,问有多少种切法?

思路:

三段相等,则每段是sum/3,记作avg

如果总和sum不是avg的倍数,则不可能被平均分为3段

剩下的情况就是必然能分成3段,每段总和相等:

我们可以枚举第二刀的位置,枚举每种第二刀位置j时,对应有cnt种第一刀的切法

res累加这些情况即可

  • 因为要分成3段,则第二刀之前至少要留2个元素给第一段和第二段,所以枚举第二段的位置i从3开始
  • 先记录第一段的和==avg的个数
  • 如果此时对应的第三段和==avg,则res累加
import java.util.*;public class Main {static int N = 100010;static int[] s = new int[N];static int n,m;public static void main(String[] sss) {Scanner sc = new Scanner(System.in);n = sc.nextInt();for(int i=1;i<=n;i++) {s[i]=sc.nextInt();s[i]+=s[i-1];}if(s[n]%3!=0) {System.out.println(0);return ;}int avg=s[n]/3;//均值long res=0;long cnt=0;//记录第一刀的位置for(int i=3;i<=n;i++) //只要把第一段和第三段确定下来 就完成了题目{if(s[i-2]==avg) cnt++; //满足第一段==avg的个数 也就是合法的第一刀位置的个数if(s[n]-s[i-1]==avg) res+=cnt; //如果第三段和==avg 说明这个第二刀可以对应之前所有出现过的合法的第一刀}System.out.println(res);}
}

 

 

http://www.lryc.cn/news/5976.html

相关文章:

  • 基于模块联邦的微前端实现方案
  • 【单目标优化算法】食肉植物优化算法(Matlab代码实现)
  • ANTLR4入门学习(四)
  • Android okhttp3中发送websocket消息,并通过mockwebserver将一个安卓设备模拟成服务器接发消息
  • MySQL系统变量和自定义变量
  • 基于Python来爬取某音动态壁纸,桌面更香了!
  • [数据库]表的约束
  • VisualGDB 5.6R9 FOR WINDOWS
  • Yolov8的多目标跟踪实现
  • 28--Django-后端开发-drf之自定义全局异常、接口文档生成以及三大认证源码分析
  • 【MyBatis】动态SQL
  • LeetCode(剑指offer) Day1
  • 1、MyBatis框架——JDBC代码回顾与分析、lombok插件的安装与使用
  • 笔记-GPS设备定位方式
  • 2023秋招携程SRE算法岗面试经验分享
  • 4.9 内部类
  • ncnn模型精度验证
  • IB-PYP幼儿十大素质培养目标
  • 02.13:监督学习中的分类问题
  • leetcode刷题 | 关于二叉树的题型总结3
  • 设计模式-结构型
  • 【新】华为OD机试 - 预订酒店(Python)| 运气好 会考到原题
  • 【编程基础之Python】4、安装Python开发工具
  • 5. 最长回文子串
  • 内网渗透(二十四)之Windows协议认证和密码抓取-Mimikatz读取sam和lsass获取密码
  • 【THREE.JS】网页中的炫酷3D
  • Go语言之 下载安装go以及vscode配置go环境
  • RBAC权限 API声明四种kubernetes对象
  • CDGP仿真选择题4
  • 典型相关分析与R语言实现