1 条题解
-
0
首先注意到至关重要的一点,每一次都只从最左边的某个点开始,也就是说每次获得的分数预留下的卡牌都是这个位置的前缀和。所以直接抛出前缀和数组,将所有的整数加起来就秒了。
代码:
#include<bits/stdc++.h> using namespace std; int a[100005]; int main(){ int n; cin>>n; long long d=0,ans=0; for(int i=1;i<=n;i++){ cin>>a[i]; } d=a[1]; for(int i=2;i<=n;i++){ d+=a[i]; ans=max(ans,ans+d); } cout<<ans; return 0; }
- 1
信息
- ID
- 7241
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- 递交数
- 21
- 已通过
- 5
- 上传者