小L的区间求和

题目传送

此题解法真是妙哉,不服高人有罪啊,直接上代码 (PS:你妹的,你当时直接看代码看懂了)上li 子……

9 7 4 5 6 13 1 七个数K=3 sum[i]存的是1到i(下标从1开始)前i项和对K取模后的结果;sum的值依次是0 1 2 1 1 2 0 如果sum[i]等于0了,说明从1到i这个区间的和能被K整除,没毛病吧,那就更新一下结果呗,某:如果不等于0呢 俺:这个这个…… 请看比方说到了sum[6]这时等于2,你发现前面sum[3]也等于2,这就有搞头了,那么此时下标从4到6的区间和一定能被K整除,为什么呢?sum[2]%K之前的区间和一定可以表示为N1K+2,同理,sum[6]可以表示为N2K+2,对吧(N2K+2-(N1K+2))一定能被K整除滴嘛,妥了,某:你咋知道之前也有个2 呢,俺:就你能,代码扔你,自己看吧

#pragma GCC optimize(2)
#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
#include<algorithm>
#include<map>
using namespace std;
typedef long long ll;
const int maxn=1e5+7;
int N,K;
int n[maxn];
ll sum[maxn];
map<int,int>M;//做标记用的
int main()
{
	while(~scanf("%d %d",&N,&K))
	{
		int i,j,cnt;
		int ans;
		sum[0]=0;
		for(i=1;i<=N;i++)
		{
			int n;
			scanf("%d",&n);
			sum[i]=(sum[i-1]+n)%K;//处理,搞一下
			M[sum[i]]=-1;
		}
		ans=0;
		for(i=1;i<=N;i++)
		{
			if(sum[i]==0)
			ans=max(ans,i);
			else if(M[sum[i]]!=-1)
			ans=max(ans,i-M[sum[i]]);   
			else
			M[sum[i]]=i;
		}
		printf("%d\n",ans);
	}
	return 0;
}

代码注释的好像都是屁话 跑路

全部评论

相关推荐

孤寡孤寡的牛牛很热情:为什么我2本9硕投了很多,都是简历或者挂,难道那个恶心人的测评真的得认真做吗
点赞 评论 收藏
分享
10-13 17:47
门头沟学院 Java
wulala.god:图一那个善我面过,老板网上找的题库面的
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-26 18:54
说等下个版本吧的发呆爱好者很贪睡:佬最后去了哪家呀
点赞 评论 收藏
分享
评论
点赞
收藏
分享
正在热议
# 25届秋招总结 #
442240次浏览 4509人参与
# 春招别灰心,我们一人来一句鼓励 #
41913次浏览 531人参与
# 阿里云管培生offer #
120217次浏览 2219人参与
# 地方国企笔面经互助 #
7961次浏览 18人参与
# 同bg的你秋招战况如何? #
76585次浏览 561人参与
# 虾皮求职进展汇总 #
115499次浏览 886人参与
# 北方华创开奖 #
107425次浏览 599人参与
# 实习,投递多份简历没人回复怎么办 #
2454609次浏览 34856人参与
# 实习必须要去大厂吗? #
55761次浏览 961人参与
# 提前批简历挂麻了怎么办 #
149889次浏览 1977人参与
# 投递实习岗位前的准备 #
1195913次浏览 18548人参与
# 你投递的公司有几家约面了? #
33205次浏览 188人参与
# 双非本科求职如何逆袭 #
662189次浏览 7394人参与
# 如果公司给你放一天假,你会怎么度过? #
4751次浏览 55人参与
# 机械人春招想让哪家公司来捞你? #
157622次浏览 2267人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
11535次浏览 284人参与
# 发工资后,你做的第一件事是什么 #
12682次浏览 62人参与
# 工作中,努力重要还是选择重要? #
35793次浏览 384人参与
# 参加完秋招的机械人,还参加春招吗? #
20120次浏览 240人参与
# 我的上岸简历长这样 #
452000次浏览 8088人参与
# 实习想申请秋招offer,能不能argue薪资 #
39289次浏览 314人参与
# 非技术岗是怎么找实习的 #
155866次浏览 2120人参与
牛客网
牛客企业服务