本文共 1039 字,大约阅读时间需要 3 分钟。
***Arithmetic Sequence***Problem DescriptionA sequence b1,b2,⋯,bn are called (d1,d2)-arithmetic sequence if and only if there exist i(1≤i≤n) such that for every j(1≤j
题目大意:就是给你n个数,然后一个d1和d2,求:
1:这个区间是一个等差数列,且公差为d1或d2;2:若区间的下标范围为[l,r],应有l<=i<=r,使得[l,i]范围是公差为d1的等差数列,[i,r]范围是公差为d2的等差数列,就是找一共有几种排列方法
吧解题思路:首先由至少 n 个,然后根据数据推出公式就行了,
直接给出代码吧。。。。#include#include #include using namespace std;const int maxn = 1e5+5;int data[maxn];int main(){ int d1,d2,n,sum,j,i,t; __int64 ans, k; while(~scanf("%d%d%d",&n,&d1,&d2)) { t = 1; sum = j = 0; ans = 0; k = 1; for(i=1; i<=n; i++) scanf("%d",&data[i]); for(i=1; i i) ans--; k = 1; t = 1; sum = i; if(j) i--; } } } ans += (k+1)*k/2; if(sum+k > i) ans--; printf("%I64d\n",ans); } return 0;}
转载地址:http://hpxbx.baihongyu.com/