#include <bits/stdc++.h> using namespace std; long long T[300100]; long long dp[300100]; const long long K=1000000000+7; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin>>n; for(int i=1;i<=n;i++){ cin>>T[i]; } dp[0]=1; long long sum; for(int i=0;i<=n;i++){ sum=0; //cout<<dp[i]<<" "; for(int j=i+1;j<=n;j++){ sum = sum + T[j]; if((sum%K)%2==0){ dp[j]=(dp[j]+dp[i])%K; } } } cout<<dp[n]<<"\n"; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #include <bits/stdc++.h> using namespace std; long long T[300100]; long long dp[300100]; const long long K=1000000000+7; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin>>n; for(int i=1;i<=n;i++){ cin>>T[i]; } dp[0]=1; long long sum; for(int i=0;i<=n;i++){ sum=0; //cout<<dp[i]<<" "; for(int j=i+1;j<=n;j++){ sum = sum + T[j]; if((sum%K)%2==0){ dp[j]=(dp[j]+dp[i])%K; } } } cout<<dp[n]<<"\n"; } |