hdu 5400

原创 2016年05月31日 10:25:43

开个map表示每个数组单独是否已经被算过了,注意自增和下标的前移以及回退,不要死循环~

#include<bits/stdc++.h>
using namespace std;
#define ll long long
int n,d1,d2;
const int maxn=1e5+10;
int a[maxn];map<int,int>m;
int main(){
    while(scanf("%d%d%d",&n,&d1,&d2)!=EOF){
        for(int i=1;i<=n;i++){
            scanf("%d",&a[i]);
        }
        m.clear();
        ll ans=0;
        int sum,flag;flag=0;
        for(int i=1;i<=n;i++){
            int j=i+1;sum=1;//flag=0;
            while(j<=n&&a[j]-a[j-1]==d1){
                sum++;j++;
            }
            while(j<=n&&a[j]-a[j-1]==d2){
                sum++;j++;
            }
        //  system("pause");
        //  cout<<" j= "<<j<<endl;
        //  cout<<" i= "<<i<<" sum= "<<sum<<endl;
            if(j!=i+1){
             ans+=(1ll*sum*(sum+1)/2);m[j-1]=1;
             if(m[i]) ans--;
            }
            else if(m[i]==0) ans+=(1ll*sum*(sum+1)/2);
        //  cout<<" ans = "<<ans<<endl;
            if(j!=i+1) i=j-2;
        }
        printf("%lld\n",ans);
    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

HDU 5400 Arithmetic Sequence(数学,容斥)

题目: Arithmetic Sequence Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (J...

HDU 5400 Arithmetic Sequence

Problem Description A sequence b1,b2,⋯,bn are called (d1,d2)-arithmetic sequence if and only ...

HDU-5400 Arithmetic Sequence(数学 || DP)

法一: 和队友讨论之后,觉得每一个序列,只要其符合(①公差为d1②公差为d2③前面公差为d1,后面公差为d2)三者任意一个就满足题意 然后求出每一个最长的符合题目条件的序列,然后求其连续子序列(元素个...

hdu 5400 Arithmetic Sequence 2015多校联合训练赛#9 枚举

Arithmetic Sequence Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Othe...

HDU 5400 Arithmetic Sequence(左d1等差右d2等差的区间个数)(枚举位置,求最大区间,算区间个数)

Arithmetic Sequence Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Othe...

hdoj5400Arithmetic Sequence【等差数列】

Arithmetic Sequence Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Oth...

DP-HDOJ-5400-Arithmetic Sequence

Arithmetic SequenceTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Other...

DELL笔记本E5400刷BIOS激活win7

DELLE5400刷BIOS激活win7一、文档目的:a)         公司用DELL笔记本的同事非常多,很多人都没有真正激活。b)         网上很多讲DELL笔记本激活的帖子都说的不...
  • hdfyq
  • hdfyq
  • 2011年03月13日 15:55
  • 5295

EMC_VNX5400日常维护手册

  • 2017年02月14日 10:31
  • 101KB
  • 下载

vnx5400安装实施

  • 2015年07月01日 09:59
  • 6.12MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hdu 5400
举报原因:
原因补充:

(最多只允许输入30个字)