hdu5400(模拟)
来源:互联网 发布:手机淘宝店铺管理软件 编辑:程序博客网 时间:2024/05/18 06:28
链接:点击打开链接
题意:问有几个子区间,满足可以分成两段,前一段为差为d1的等差数列,后一段为差为d2的等差数列
代码:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <iostream>#include <algorithm>using namespace std;long long a[100005],l[100005],r[100005];int main(){ long long n,d1,d2,i,j,ans; while(scanf("%I64d%I64d%I64d",&n,&d1,&d2)!=EOF){ for(i=1;i<=n;i++) scanf("%I64d",&a[i]); l[0]=0; for(i=1;i<=n;i++){ if(i!=1&&a[i]==a[i-1]+d1) l[i]=l[i-1]+1; else l[i]=1; } r[n+1]=0; for(i=n;i>=1;i--){ if(i!=n&&a[i]==a[i+1]-d2) r[i]=r[i+1]+1; else r[i]=1; } //找出向左和向右的最大长度 ans=0; if(d1!=d2){ for(i=1;i<=n;i++) ans+=(l[i]*r[i]); } //不相等的直接乘,否则加上右区间 else{ for(i=1;i<=n;i++) ans+=r[i]; } printf("%I64d\n",ans); } return 0;}
0 0
- hdu5400(模拟)
- hdu5400
- hdu5400
- hdu5400(计数)
- HDU5400 Arithmetic Sequence 数学题
- hdu5400--Arithmetic Sequence
- hdu5400 Arithmetic Sequence
- 2015 多校联赛 ——HDU5400(水)
- 模拟
- 模拟
- 模拟
- 模拟
- 模拟
- 模拟
- 模拟
- 模拟
- 模拟
- 模拟:
- 排列组合
- Oracle数据库
- 接口设计
- Matlab GUI 鼠标事件(一)
- MLiA AdaBoost
- hdu5400(模拟)
- Android自助餐之大图片加载
- HDU 1195 Open the Lock (不一样的BFS)
- 如何在三个月内获得三年的工作经验
- 二叉树的深度,平衡二叉树深度
- time元素和pubdate属性
- 静态文件版本号替换与压缩
- 异常类型处理
- 关于HTTP请求