hdu 5783——Divide the Sequence
生活随笔
收集整理的這篇文章主要介紹了
hdu 5783——Divide the Sequence
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題意及思路:
求一個(gè)序列的分段個(gè)數(shù),使得每一段的前綴和為0,如果正向思維,那么解法是從前往后遍歷,每遇到一個(gè)負(fù)數(shù)就向前遍歷直到>=0(這樣貪心保證了序列盡可能多),但是這樣最壞的情況是n^2的,所以要逆過來來考慮,每遇到負(fù)數(shù)就向前加到>=0即可,然后邊統(tǒng)計(jì)答案,在n的算法里計(jì)算出。(注意:前綴和可能超int,用long long 保存)
code:
#include <bits/stdc++.h> using namespace std;typedef long long ll;const int N=1e6+6; ll v[N]; int main() {int n;while (~scanf("%d",&n)){for (int i=0;i<n;i++) scanf("%lld",v+i);ll s=0,ans=0;for (int i=n-1;i>=0;i--){s+=v[i];if (s>=0) {ans++;s=0;}}cout<<ans<<endl;} }總結(jié)
以上是生活随笔為你收集整理的hdu 5783——Divide the Sequence的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新闻类app,每次上拉和下拉刷新都有数据
- 下一篇: 成都大熊猫基地中午闭馆吗