本文主要是介绍Codeforces740B. Alyona and flowers,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
思路
对于选取的下标区间l <=x <=r;如果 Σsubarray[x]>0,就选取这个区间,否则不选
#include<bits/stdc++.h>
using namespace std;
int a[105];
vector<int> b[105];
int main(){int n,m;cin>>n>>m;for(int i=1;i<=n;i++)cin>>a[i];for(int i=1;i<=m;i++){int l,r;cin>>l>>r;b[i].push_back(l);b[i].push_back(r);}vector<int> spe;for(int i=1;i<=m;i++){int sum=0;for(int j=*(b[i].begin());j<=*(++b[i].begin());j++){sum+=a[j];}if(sum>0){spe.push_back(i);}}int sum=0;for(int i=1;i<=n;i++){int cnt=0;for(auto j=spe.begin();j!=spe.end();j++){if(i>=*(b[*j].begin()) && i<=*(++b[*j].begin()) ){cnt++;}}sum += cnt*a[i]; }printf("%d\n",sum);
}
这篇关于Codeforces740B. Alyona and flowers的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!