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

蓝桥杯:k倍区间

[蓝桥杯 2017 省 B] k 倍区间

给定一个长度为 N 的数列,A1,A2,…AN,如果其中一段连续的子序列 Ai,Ai+1,…Aj 之和是 K 的倍数,我们就称这个区间 [i,j] 是 K 倍区间。

你能求出数列中总共有多少个 K 倍区间吗?

输入格式

第一行包含两个整数 N 和 K。

以下 N 行每行包含一个整数 Ai。

输出格式

输出一个整数,代表 K 倍区间的数目。

数据范围

1≤N,K≤100000,

1≤Ai≤100000

输入样例:

5 2

1

2

3

4

5

输出样例:

6

第一种方法:三层暴力循环(超时)

#include<iostream>
using namespace std;
int main()
{int n, g[100010], i, j, k, sum = 0, ans = 0;cin >> n >> k;for (i = 1; i <= n; i++){cin >> g[i];}for (i = 1; i <= n; i++){for (j = i; j <= n; j++){sum = 0;for (int m = i; m <= j; m++){sum += g[m];}if (sum % k == 0)ans++;}}cout << ans << endl;return 0;
}

第二种方法:两层循环+前缀和(依然超时)

#include<iostream>
using namespace std;
int main()
{int n, g[100010], s[100010]={0}, i, j, k, sum = 0, ans = 0;cin >> n >> k;for (i = 1; i <= n; i++){cin >> g[i];s[i] = s[i - 1] + g[i];}for (i = 1; i <= n; i++){for (j = i; j <= n; j++){int t = s[j] - s[i - 1];if (t % k == 0)ans++;}}cout << ans << endl;return 0;
}

第三种方法:一层循环+前缀和 (不超时)

#include<cstdio>
#include<iostream>
using namespace std;
typedef long long ll;
const int N = 100010;
int n, k;
ll s[N], cnt[N];int main()
{scanf("%d %d", &n, &k);for (int i = 1; i <= n; i++){scanf("%lld", &s[i]);s[i] += s[i - 1];}ll res = 0;cnt[0] = 1;for (int i = 1; i <= n; i++){res += cnt[s[i] % k];cnt[s[i] % k]++;}printf("%lld\n", res);return 0;
}
http://www.lryc.cn/news/5897.html

相关文章:

  • 【思维模型】概率思维的价值:找到你的人生算法!打开你的人生格局!实现认知跃迁!
  • API文档自动生成工具
  • 7、MyBatis框架——MyBatis对一对一关系的处理、分步查询、MyBatis对一对多关系的处理
  • 电商数据监测——中国白酒行业数据浅析
  • excel数据技巧:透视表快速统计年终业绩排名
  • TensorRT的Python接口解析
  • 【信管11.5】合同、采购、招投标相关法规
  • 使用 CSS 变量更改多个元素样式
  • 面试题(二十五)设计模式
  • 使用红黑树模拟实现map和set
  • 【django项目开发】用户登录后缓存权限到redis中(十)
  • 算法总结c++
  • Python 之 NumPy 切片索引和广播机制
  • Redis【包括Redis 的安装+本地远程连接】
  • 深度学习训练营_第P3周_天气识别
  • “华为杯”研究生数学建模竞赛2006年-【华为杯】C题:维修线性流量阀时的内筒设计问题(附获奖论文及matlab代码)
  • 数据结构:带环单链表基础OJ练习笔记(leetcode142. 环形链表 II)(leetcode三题大串烧)
  • 数模美赛如何找数据 | 2023年美赛数学建模必备数据库
  • SSTI漏洞原理及渗透测试
  • 【算法基础】高精度除法
  • optimizer.zero_grad(), loss.backward(), optimizer.step()的理解及使用
  • 融资、量产和一栈式布局,这家Tier 1如此备战高阶智驾决赛圈
  • centos7.8安装oralce11g
  • 【蓝桥杯集训·每日一题】AcWing 3956. 截断数组
  • 万丈高楼平地起:Linux常用命令
  • Linux(Linux的连接使用)
  • Unity中画2D图表(2)——用XChart包绘制散点分布图 + 一条直线方程
  • Go 排序包 sort
  • Java Email 发HTML邮件工具 采用 freemarker模板引擎渲染
  • CNI 网络流量分析(六)Calico 介绍与原理(二)