• P2389 电脑班的裁员


    题目背景

    隔壁的新初一电脑班刚考过一场试,又到了BlingBling的裁员时间,老师把这项工作交给了ZZY来进行。而ZZY最近忙着刷题,就把这重要的任务交(tui)给了你。

    题目描述

    ZZY有独特的裁员技巧:每个同学都有一个考试得分ai(-1000<=ai<=1000),在n个同学(n<=500)中选出不大于k段(k<=n)相邻的同学留下,裁掉未被选中的同学,使剩下同学的得分和最大。要特别注意的是,这次考试答错要扣分【不要问我为什么】,所以得分有可能为负。

    输入输出格式

    输入格式:

    第一行为n,k,第二行为第1~n位同学的得分。

    输出格式:

    一个数s,为最大得分和。

    #include<bits/stdc++.h>
    using namespace std;
    int n,m;
    int v[5200],num[5200],t[5200],f[5200][2];
    int main()
    {
        cin>>n>>m;
        for(int i=1;i<=n;i++)cin>>num[i];
        int cnt=0,ans=num[1];
        for(int i=2;i<=n;i++)
        if((num[i-1]>=0&&num[i]>=0)||(num[i-1]<0&&num[i]<0))ans+=num[i];
        else{t[++cnt]=ans;ans=num[i];}
        t[++cnt]=ans;
        n=cnt;
            for(int k=1;k<=n;k++)
            for(int i=m;i>=1;i--)
            {
            f[i][0]=max(f[i][0],f[i-1][1])+t[k];
            f[i][1]=max(f[i][1],f[i][0]);
            }
            cout<<max(f[m][1],f[m][0]);
  • 相关阅读:
    [Bullet3]创建世界(场景)及常见函数
    [erlang]supervisor(监控树)的重启策略
    [game]十字链表的AOI算法实现
    [翻译][erlang]cowboy handler模块的使用
    数据挖掘算法系列目录
    Spark原理分析目录
    Spark实战系列目录
    2019年读书书单
    Hadoop源码解读系列目录
    分布式架构系列目录
  • 原文地址:https://www.cnblogs.com/SFWR-YOU/p/10887240.html
Copyright © 2020-2023  润新知