注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Yavin(某沙茶的代码库)

Star Wars fan and OIer

 
 
 

日志

 
 

CF133  

2012-08-15 16:30:34|  分类: CodeForces |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
题目蛮水,排名129 似乎还不错
主要失误在于E这题,当我从网上关于10进制数的数根mod9不变而想到了通过modk-1的算法后,在k-1和0的区分上纠结了蛮久
我竟然把19的树根算作了0,于是纠结了半天。直到今天下午到网上翻题解时发现了错误
事实上E不是很难

#include<cstdio>
#include<map>
#include<iostream>
using namespace std;

typedef long long LL;
const int MAX=100000+10;
const int NUM=30;

LL a[MAX],sum[MAX],k,b,n;
map<LL,int> hash;

int main()
{
// freopen("E.in","r",stdin);freopen("E.out","w",stdout);
int i;
LL zero=0,now=0,ans=0,d;
cin>>k>>b>>n;
for(i=1;i<=n;++i)
{
cin>>a[i];
sum[i]=(sum[i-1]+a[i])%(k-1);
}
for(i=1;i<=n;)
{
if(a[i]!=0)++i;
else
{
now=0;
while(i<=n && a[i]==0)
{
++now;
++i;
}
zero+=now*(now+1)/2;
}
}
hash[0]++;
for(i=1;i<=n;++i)
{
d=sum[i]-b;
if(d<0)d+=k-1;
ans+=hash[d];
hash[sum[i]]++;
}
if(b==0)
cout<<zero<<endl;
else if(b==k-1)cout<<ans-zero<<endl;
else cout<<ans<<endl;
}



  评论这张
 
阅读(118)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018