还以为是搜索,写了半天之后懒得写了看看题解才发现出问题了。。
题解:https://www.luogu.org/blog/user31898/solution-p2327
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #include<iostream> #include<cstring> using namespace std; int n; int arr1[10005],arr2[10005]; bool f(){ for(int i=2;i<=n+1;i++){ arr2[i]=arr1[i-1]-arr2[i-1]-arr2[i-2]; if(arr2[i]!=1&&arr2[i]!=0)return false; if(i==n+1&&arr2[i]!=0)return false; } return true; } int main(){ ios::sync_with_stdio(false); cin>>n; for(int i=1;i<=n;i++)cin>>arr1[i]; int num=0; arr2[1]=0; if(f())num++; arr2[1]=1; if(f())num++; cout<<num; } |