B 贪心题

可持久化动态图上树状数组维护01背包

https://ac.nowcoder.com/acm/contest/6290/B

说实话我都不知道可持久化动态图是个啥东西……
题目其实是贪心:显然每次删除第一个元素,可以让整体代价最小。
时,代价是负数,要求最大,那么对于 而言最大的下标就是原始下标。

#include <cstdio>
#include <algorithm>
#include <ctype.h>
const int bufSize = 1e6;
#define int long long
#define DEBUG
inline char nc()
{
    #ifdef DEBUG
    return getchar();
    #endif
    static char buf[bufSize],*p1 = buf,*p2 = buf;
    return p1==p2&&(p2=(p1=buf)+fread(buf,1,bufSize,stdin),p1==p2)?EOF:*p1++;
}
template<typename T>
inline T read(T &r)
{
    static char c;
    static int flag;
    r=0;
    flag = 1;
    for(c = nc();!isdigit(c);c = nc()) if(c == '-') flag = -1;
    for(;isdigit(c);c=nc()) r = r * 10 + c - 48;
    return r * flag;
}
const int maxn = 1e6 + 100;
int n;
int a[maxn];
signed main()
{
    scanf("%lld",&n);
    for(int i = 1;i<=n;++i) scanf("%lld",a + i);
    long long sum = 0;
    for(int i = 1;i<=n;++i) if(a[i] < 0) sum += i * a[i]; else sum += a[i];
    printf("%lld\n",sum);
    return 0;
}
全部评论

相关推荐

没关系现在见到了、
真的很糟糕:见过国王的offer吗
点赞 评论 收藏
分享
09-23 14:45
贵州大学 财务
牛客68802037...:怎么9.2佬人手一个中信证券实习
点赞 评论 收藏
分享
09-24 18:25
门头沟学院 Java
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务