首页 > 其他分享 >CF2021D Boss, Thirsty

CF2021D Boss, Thirsty

时间:2024-10-08 16:59:56浏览次数:6  
标签:Thirsty limits int CF2021D Boss max INF include MAX

原题链接

原来就是直接做啊。

记 \(s_{i,j}=\sum\limits_{k\leq j} a_{i,k}\),设 \(f_{i,x,y}\) 表示第 \(i\) 行选区间 \([x,y]\) 的最大答案,有转移:

\[f_{i,x,y}=s_{i,y}-s_{i,x-1}+\max(\max\limits_{x<l\leq y,r\geq l} f_{i-1,l,r},\max\limits_{x\leq r<y,l\leq r} f_{i-1,l,r}) \]

设 \(L_{i,l},R_{i,r}\) 分别表示 \(\max\limits_{r\geq l} f_{i,l,r},\max\limits_{l\leq r} f_{i,l,r}\),转移变为:

\[f_{i,x,y}=s_{i,y}-s_{i,x-1}+\max(\max\limits_{x<l\leq y} L_{i-1,l},\max\limits_{x\leq r<y} R_{i-1,r}) \]

考虑直接求 \(L_{i,x},R_{i,y}\)

\[L_{i,x}=\max\limits_{y\geq x} f_{i,x,y}=-s_{i,x-1}+\max(\max\limits_{l>x} (L_{i-1,l}+\max\limits_{y\geq l} s_{i,y}),\max\limits_{r\geq x} (R_{i-1,r}+\max\limits_{y>r} s_{i,y})) \]

\[R_{i,y}=\max\limits_{x\leq y} f_{i,x,y}=s_{i,y}+\max(\max\limits_{l\leq y} (L_{i-1,l}-\min\limits_{x<l} s_{i,x-1}),\max\limits_{r<y} (R_{i-1,r}-\min_{x\leq r} s_{i,x-1})) \]

计算四个括号里的东西即可,注意能否取等,这意味着先后顺序。第一行要特殊处理。

#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<vector>
#define int long long
using namespace std;
typedef pair<int,int> P;
const int N=2e5+10,INF=1e18;
int T,n,m,s[N],l[N],r[N],a[N],b[N],c[N],d[N];
inline void work()
{
    cin>>n>>m;int ans=-INF;
    for(int j=1;j<=m;++j)
        cin>>s[j],s[j]+=s[j-1];
    for(int j=m,MAX=-INF;j;--j)
        MAX=max(MAX,s[j]),l[j]=MAX-s[j-1];
    for(int j=1,MIN=INF;j<=m;++j)
        MIN=min(MIN,s[j-1]),r[j]=s[j]-MIN;
    for(int i=1;i<n;++i)
    {
        a[m+1]=b[m+1]=c[0]=d[0]=-INF;
        for(int j=1;j<=m;++j)
            cin>>s[j],s[j]+=s[j-1];
        for(int j=m,MAX=-INF;j;--j)
            MAX=max(MAX,s[j]),a[j]=max(a[j+1],l[j]+MAX);
        for(int j=m,MAX=-INF;j;--j)
            b[j]=max(b[j+1],r[j]+MAX),MAX=max(MAX,s[j]);
        for(int j=1,MIN=INF;j<=m;++j)
            c[j]=max(c[j-1],l[j]-MIN),MIN=min(MIN,s[j-1]);
        for(int j=1,MIN=INF;j<=m;++j)
            MIN=min(MIN,s[j-1]),d[j]=max(d[j-1],r[j]-MIN);
        for(int j=1;j<=m;++j)
            l[j]=-s[j-1]+max(a[j+1],b[j]);
        for(int j=1;j<=m;++j)
            r[j]=s[j]+max(c[j],d[j-1]);
    }
    for(int j=1;j<=m;++j) ans=max(ans,l[j]);
    cout<<ans<<'\n';return ;
}
signed main()
{
#ifndef ONLINE_JUDGE
    freopen("in.in","r",stdin);
    freopen("out.out","w",stdout);
#endif
    cin.tie(0),cout.tie(0);
    ios::sync_with_stdio(0);
    cin>>T;while(T--) work();return 0;
}

标签:Thirsty,limits,int,CF2021D,Boss,max,INF,include,MAX
From: https://www.cnblogs.com/int-R/p/18452036/CF2021D

相关文章

  • 搜广推算法校招面试:BOSS直聘 推荐搜索系统工程师
      本文介绍2024届秋招中,BOSS直聘的推荐/搜索系统工程师岗位一面的面试基本情况、提问问题等。  2023年12月,赶在秋招的末尾,投递了BOSS直聘的推荐/搜索系统工程师岗位,并不清楚所在的部门。目前完成了一面,在这里记录一下一面经历。  首先,这一次的投递就是在BOSS直聘这个APP上......
  • (赠源码)Python+django+echars+MySQL+爬虫+大屏 boss直聘数据分析可视化系统的设计与实
    摘要随着互联网的飞速发展和技术的不断进步,数据分析和可视化技术在各个领域都扮演着越来越重要的角色。在人才招聘领域,招聘平台作为连接求职者和招聘公司的重要平台,需要不断创新和提升服务体验。设计和实现一个boss直聘数据分析可视化系统,可以帮助BOSS直聘平台更好地利用数......
  • Jboss CVE-2017-12149 靶场攻略
    漏洞简述该漏洞为Java反序列化错误类型,存在于Jboss的HttpInvoker组件中的ReadOnlyAccessFilter过滤器中。该过滤器在没有进⾏任何安全检查的情况下尝试将来⾃客户端的数据流进⾏反序列化,从⽽导致了漏洞漏洞范围JBoss5.x/6.x环境搭建cdvulhub-master/jboss/CVE-20......
  • 基于Node.js+vue直面BOSS招聘管理系统(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景在当今竞争激烈的就业市场中,招聘与求职双方均面临着信息不对称、沟通效率低下的挑战。传统招聘方式往往依赖于线下招聘会、招聘网站的海量信息筛选,以及繁琐......
  • 2024年华为OD机试E卷- Boss的收入-(Java&c++&Python)
    题目描述:一个XX产品行销总公司,只有一个b0ss,其有若千一级分销,一级分销又有若干二级分销,每个分错只有唯一的上级分销。规定,每个月,下级分销需要将自己的总收入(自已的+下级上交的)每满100元上交15元给自己的上级现给出一组分销的关系,和每个分销的收入,请找出boss并计算出这个boss......
  • F. Final Boss(二分,周期)
    题目来源:https://codeforces.com/contest/1985/problem/F//题意:你有n种攻击,每种攻击有周期和攻击力,如果当前回合是x,以为着第i种攻击,下次攻击是x+ci回合。现在有Boss,生命值为h,当h<=0的时候,Boss死亡。一开始所有攻击都没有冷却时间,问最少第几回合Boss死亡。//思路:“最开始无脑模......
  • 【2024HVV结束】这是属于网安人的"春晚" 祝还在现场的师傅们一切顺利 小心二阶段的"Bo
    ......
  • 对象池模式,处理Boss的投射物攻击
    不使用对象池如果不使用对象池,那么假设一个Boss技能发射10个投射物,那么就会导致每次技能的释放需要创建10个投射物,然后遇到条件进行销毁对象池模式维护一个存储投射物的容器,然后在发射时从容器中取出,当"销毁时"放回容器中。实现方式以发射投射物为例,首先对于投射物创建一个......
  • BossPlayersCTF靶机笔记
    BossPlayersCTF靶机靶机概述这是vulnhub上的一个简单的linux靶机,适合初级渗透测试人员,同时也告诉我们在渗透测试过程中要有耐心,要允许有兔子洞。靶机整体思路:主机端口探测,发现web服务。在web服务中进行信息收集,发现命令注入,反弹shell利用SUID进行提权,拿到rootflag靶机下......
  • (已解决)QT4 自定义信号函数调用报错 error: C2248: “Boss::DeadSignal”: 无法访问 pr
     (解决方法见文章末尾)报错语句如下 DeadSignal是自定义槽函数,是放在public下的,不知道为什么报错说是protected,不知道是不是版本问题Boss类和DeadSignal定义如下 mboss是在自定义类Widget中调用的Boss对象 调用位置是Widget的自定义槽函数 解决方法在Boss中定......