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

蓝桥杯复习之前缀和

题目链接:https://www.luogu.com.cn/problem/P8649

思路:
    看到区间和,第一反应肯定是前缀和,我们求出前缀和后对前缀和数组每一个值模k,然后对一个数组的值查看前面有几个相同的,举个例子:

    样例中前缀和数组a取模后为:1    1    0    0    1

    下标依次为1 2 3 4 5

    当题目所求子序列以a5结尾时,已知a5=1且a5前面与a5相同的值有2个,则以a5结尾可以获得2个满足题目要求的区间
    
    如果以a3结尾则是一个,因为实际上有一个a0=0。
 

#include<bits/stdc++.h>using namespace std;using ll = long long;
const ll N = 3e5 + 5;
const ll mod = 1e9 + 7;
int gcd(int a, int b) {return b ? gcd(b, a % b) : a;
}void solve() {int n; cin >> n;ll k; cin >> k;vector<ll>a(n + 1);vector<ll>pre(n + 1);vector<ll>cnt(n + 1);for (int i = 1; i <= n; i++) {cin >> a[i];pre[i] = pre[i - 1] + a[i];}ll ans = 0;cnt[0] = 1;for (int i = 1; i <= n; i++) {ans += cnt[pre[i] % k];cnt[pre[i] % k]++;}cout << ans << '\n';
}signed main() {ios::sync_with_stdio(false);cin.tie(0);std::cout.tie(0);int t1 = 1;//cin >> t1;while (t1--)solve();return 0;
}

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

相关文章:

  • 动态规划(算法竞赛、蓝桥杯)--背包DP求具体方案
  • go写mysql取得自增字段值
  • Vue 3的Composition API和vue2的不同之处
  • go语言基础 -- 面向对象编程
  • HarmonyOS—编译构建概述
  • 下载element-ui 资源,图标 element-icons.woff,element-icons.ttf 无法解码文件字体
  • Flutter整体框架
  • JVM堆内存中新生代晋升到老年代的条件
  • 前端监控为什么采用GIF图片做埋点?
  • webstorm 创建运行纯Typescript项目
  • GO-接口
  • 【C语言】动态内存管理常用函数
  • 【OpenGL】(1) 专栏介绍:OpenGL 库 | 3D 计算机图形应用 | GPGPU 计算 | 3D 建模和 3D动画 | 渲染技术介绍
  • SPI总线知识总结
  • 【异常关闭clas*h,导致无法访问任何网页_解决办法】
  • STL-map和set
  • [蓝桥杯 2020 省 B1] 整除序列
  • 【Android】View 的滑动
  • 基于ZYNQ的PCIE高速数据采集卡的设计(一)
  • 渗透测试工具 nmap 详解
  • Ubuntu下安装Scala
  • 无法启动报,To install it, you can run: npm install --save @/components/iFrame/index
  • 深入理解现代JavaScript:从语言特性到应用实践
  • ThreadPoolExecutor 学习
  • 深入理解计算机操作系统书籍阅读感悟(一)
  • 使用query请求数据出现500的报错
  • PostgreSQL教程(二十一):服务器管理(三)之服务器设置和操作
  • Linux运维_Bash脚本_编译安装GNU-Tools
  • leetcode 121.买卖股票的最佳时机
  • javaWebssh酒店客房管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计