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

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

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

题目描述

给定一个长度为 N N N 的数列, A 1 , A 2 , ⋯ A N A_1,A_2, \cdots A_N A1,A2,AN,如果其中一段连续的子序列 A i , A i + 1 , ⋯ A j ( i ≤ j ) A_i,A_{i+1}, \cdots A_j(i \le j) Ai,Ai+1,Aj(ij) 之和是 K K K 的倍数,我们就称这个区间 [ i , j ] [i,j] [i,j] K K K 倍区间。

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

输入格式

第一行包含两个整数 N N N K K K ( 1 ≤ N , K ≤ 1 0 5 ) (1 \le N,K \le 10^5) (1N,K105)

以下 N N N 行每行包含一个整数 A i A_i Ai ( 1 ≤ A i ≤ 1 0 5 ) (1 \le A_i \le 10^5) (1Ai105)

输出格式

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

输入输出样例 #1

输入 #1

5 2
1  
2  
3  
4  
5

输出 #1

6

说明/提示

时限 2 秒, 256M。蓝桥杯 2017 年第八届

思路:求出前缀和 然后两重for循环枚举每一个子段是否满足要求,但超时了。 于是使用同余定理优化。

同余定理:给定两个整数A,B,当A%K==B%K时,

(A-B)%K==0

因为 A%K==R 即A=q1K+R,同样的B=q2K+R;
A-B=(q1-q2)*K那么 (A-B)%K=0

求出每个前缀和对K的余数,当余数相同时,两个前缀和相减,此子段可以整除K。当有多个余数时,排列组合公式为n(n-1)/2


#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

ll n;
ll k;
ll ans=0;
ll arr[100005];

//存余数 
ll cnt[100000];
int main()
{
	cin>>n>>k;
	for(int i=1;i<=n;i++)
	{
		cin>>arr[i];
		arr[i]=arr[i-1]+arr[i];
	}
	
	for(int i=1;i<=n;i++)
	{
		if(arr[i]%k==0)
		{
			ans++;
		}
	
		cnt[arr[i]%k]++;	
	} 
	for(int i=0;i<k;i++)
	{
		ans+=(cnt[i]*(cnt[i]-1))/2;
	}
	cout<<ans;
	
	return 0;
}

相关文章:

  • Unity检索一个物体下所有的子物体,只打印激活的物体
  • 【8】搭建k8s集群系列(二进制部署)之安装work-node节点组件(kubelet)
  • 实操(不可重入函数、volatile、SIGCHLD、线程)Linux
  • 从奖励到最优决策:动作价值函数与价值学习
  • UNet 改进(2):深入解析带有坐标注意力机制(CA)的UNet网络
  • go垃圾回收机制
  • Java全栈面试宝典:锁机制与Spring生命周期深度解析
  • edge webview2 runtime跟Edge浏览器软件安装包双击无反应解决方法
  • 探秘JVM内部
  • 流浪动物救助|基于Springboot+vue的流浪动物救助平台设计与实现(源码+数据库+文档)
  • 如何单独指定 Android SDK tools 的 monitor.bat 使用特定 JDK 版本
  • 论伺服电机在轨道式巡检机器人中的优势及应用实践​
  • 《QT从基础到进阶·七十四》Qt+C++开发一个python编译器,能够编写,运行python程序改进版
  • AIDD-深度学习 MetDeeCINE 破译代谢调控机制
  • 达芬奇预设:复古16mm胶片质感老式电影放映机转场过渡+音效
  • 《C++后端开发最全面试题-从入门到Offer》目录
  • WEB安全--XSS--XSS基础
  • ②(PROFINET 转 Modbus TCP)EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关
  • 【Linux系统篇】:探索文件系统原理--硬件磁盘、文件系统与链接的“三体宇宙”
  • Deepresearch的MCP实践
  • 南宁seo网站排名优化公司/如何弄一个自己的网站
  • 东莞seo网站建设公司/二级网站怎么做
  • 德兴网站建设公司/网络推广方法怎么做
  • 阿里云速美建站/seopc流量排名官网
  • 政府网站建设/免费软文网站
  • 网站建设报价明细/关键词挖掘长尾词