vijos连续数之和
来源:互联网 发布:机器视觉算法 编辑:程序博客网 时间:2024/05/16 10:12
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<vector>
using namespace std;
const int maxn=1e5;
const int mod=1234567;
long long n,k,a[5*maxn+10],s[5*maxn+10],num[5*maxn+10],c[5*maxn+10][10];
inline long long read(){
long long num=0; char ch=getchar();
while(ch<'0'||ch>'9') ch=getchar();
while(ch>='0'&&ch<='9') num=num*10+ch-'0',ch=getchar();
return num;
}
int main(){
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++){
a[i]=read();
s[i]=s[i-1]+a[i];
num[s[i]%k]++;
}
c[0][0]=1; c[1][0]=c[1][1]=1; c[2][0]=c[2][2]=1; c[2][1]=2;
for(int i=3;i<=n;i++){
for(int j=0;j<=2;j++){
c[i][j]=(c[i-1][j]%mod+c[i-1][j-1]%mod)%mod;
}
}
/*for(int i=1;i<=n;i++){
for(int j=0;j<=2;j++){
cout<<c[i][j]<<' ';
}
cout<<endl;
}*/
long long ans=0;
for(int i=0;i<k;i++){
if(num[i]>=2) ans=ans%mod+c[num[i]][2]%mod;
ans%=mod;
}
cout<<(ans%mod+num[0]%mod)%mod<<endl;
return 0;
}
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<vector>
using namespace std;
const int maxn=1e5;
const int mod=1234567;
long long n,k,a[5*maxn+10],s[5*maxn+10],num[5*maxn+10],c[5*maxn+10][10];
inline long long read(){
long long num=0; char ch=getchar();
while(ch<'0'||ch>'9') ch=getchar();
while(ch>='0'&&ch<='9') num=num*10+ch-'0',ch=getchar();
return num;
}
int main(){
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++){
a[i]=read();
s[i]=s[i-1]+a[i];
num[s[i]%k]++;
}
c[0][0]=1; c[1][0]=c[1][1]=1; c[2][0]=c[2][2]=1; c[2][1]=2;
for(int i=3;i<=n;i++){
for(int j=0;j<=2;j++){
c[i][j]=(c[i-1][j]%mod+c[i-1][j-1]%mod)%mod;
}
}
/*for(int i=1;i<=n;i++){
for(int j=0;j<=2;j++){
cout<<c[i][j]<<' ';
}
cout<<endl;
}*/
long long ans=0;
for(int i=0;i<k;i++){
if(num[i]>=2) ans=ans%mod+c[num[i]][2]%mod;
ans%=mod;
}
cout<<(ans%mod+num[0]%mod)%mod<<endl;
return 0;
}
阅读全文
0 0
- vijos连续数之和
- Vijos P1090连续数之和
- #Vijos P1090#连续数之和
- Vijos 1090题:连续数之和
- Vijos 连续数之和 (组合数学)
- Vijos1090. 连续数之和
- 前缀和(vijos1090连续数之和)
- 连续数之和为x,求共有几对
- python_lintcode_397最长上升连续子序列_56两数之和
- LightOJ 1278 一个固定数可以换为几个连续数之和 求这样的连续数有多少对
- 计算一串连续数组的之间 连续几个数(任意连续)之和的最大值 Microsoft Visual Studio
- 判断一个数是否可以表示为k个连续的数之和
- 连续正整数之和
- 连续正整数之和
- 连续正整数之和
- 连续整数之和
- 连续自然数之和
- poj2140 连续自然数之和
- 异常----概述
- springcloud体系介绍
- laravel sqlServer遇到的坑
- Java数据类型
- 记一次OOM总结
- vijos连续数之和
- AngularJS中单选按钮radio的简单使用
- HTML&CSS设计与构建网站(html)
- splint的使用
- thinkphp5 in_array函数 不区分大小写的实现
- 转:程序员35岁前成功的12条黄金法则 以资激励
- 高级C语言教程-中断和设备驱动
- 1075. PAT Judge (25)
- JavaScript基础