我们知道在最大值和最小值之外我们进行加减对答案是不影响的,而对于两个极值内部,我们一定会让他尽最大努力向一个方向走,因此我们可以把同一方向的放在一块。

但是我们不知道极值在哪里,只知道结构,所以我们循环整个取值去尝试找到最大值就好了,答案一定是其中之一的情况

/*input
3 100
1 2 -3*/#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
typedef long long ll;
const int N=3010;
int a[N],b;
int p[N];
ll mx(int n)
{ll ans=0;for(int i=0;i<b+1;i++){ll l=0,r=0,idx=0,c=0;for(int j=1;j<=n;j++){if(a[j]) idx+=a[j];else idx+=p[(c+i)%b],c++;l=min(l,idx);r=max(r,idx);}ans=max(ans,r-l+1);}return ans;
}
int main()
{ll n,m;ll sum=0;cin>>n>>m;for(int i=1;i<=n;i++) {cin>>a[i];  sum+=a[i];if(a[i]==0) b++;}if(abs(sum)>1ll*b*m) cout<<-1<<endl;else{ll ans=0;ll q=abs(sum);for(int i=0;i<b;i++){if(q+m<=(b-i-1)*m) p[i]=m,q+=m;else if(q>0){if(q%m==0) p[i]=-m,q-=m;else p[i]=-q%m,q+=p[i];}if(sum<0) p[i]=-p[i];}ll test=sum;for(int i=0;i<b;i++) test+=p[i];if(test==0) ans=max(ans,mx(n));for(int i=0;i<b;i++) p[i]=0;q=abs(sum);for(int i=0;i<b;i++){if(m-q<=(b-i-1)*m) p[i]=-m,q-=m;else if(q<0){if(q%m==0) p[i]=m,q+=m;else p[i]=-q%m,q+=p[i];}if(sum<0) p[i]=-p[i];}test=sum;for(int i=0;i<b;i++) test+=p[i];if(test==0) ans=max(ans,mx(n));cout<<ans<<endl;} }

D. Dog Walking相关推荐

  1. 基于单目的3D人体姿态估计

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者:彡枫| 来源:知乎 https://zhuanlan.zhihu.com/p/148251873 ...

  2. 与word2vec_NLP--Word2Vec详解

    注:其他有很多公式是用markdown写的,但头条显示不了,推荐大家在微信公众号阅读- 微信公众号:浩波的笔记 文章链接:Word2Vec详解:https://mp.weixin.qq.com/s?_ ...

  3. 我的AI之路(55)--如何获取kinetics数据集和如何制作自己的kinetics数据集

    近来做行为动作识别,根据近两年的CVPR.ICCV.ECCV论文实验了一序列的动作识别方面的模型,很多都用到了kinetics数据集或者something-something数据集,但是后者的官网目前 ...

  4. 【数据集】Kinetics-600 dataset介绍

    最近在做行为识别,然后介绍一下目前种类多且数据量很大的行为数据集 Kinetics-600 dataset. 参考链接: activityNet:http://activity-net.org/cha ...

  5. 行为识别数据集 Kinetics

    文章目录 0. 前言 1. 数据集介绍 附录-分类目录 Kinetics-400 分类 Kinetics-600 分类 Kinetics-700 分类 0. 前言 行为识别中重要的benchmark, ...

  6. python oop编程_Python 3中的面向对象编程(OOP)

    python oop编程 In this article you'll pick up the following basic concepts of OOP in Python: 在本文中,您将了解 ...

  7. 3D人体姿态估计(介绍及论文归纳)

    推荐镜子大佬的知乎 2D 多人姿态估计论文汇总.分类与简介 2D多人姿态估计指南:热图回归与坐标回归流程指南 openmmlab微信公众号里的3DHPE综述 opemmlab框架下的MMPose库,有 ...

  8. Python 迁移学习实用指南:1~5

    原文:Hands-On Transfer Learning with Python 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自[ApacheCN 深度学习 译文集],采用译后编辑(MT ...

  9. 定义一个DOG类(Java)

    class Dog{String name;String color;int age;public Dog(String name,String color,int age){System.out.p ...

最新文章

  1. hql中获取前一天的数据_oracle实现动态查询前一天早八点到当天早八点的数据功能示例...
  2. UVa483 Word Scramble
  3. 博为峰JavaEE技术文章 ——MyBatis 简介(2)
  4. 使用入站适配器公开HTTP Restful API。 第1部分(XML)
  5. leetcode276. 栅栏涂色
  6. 最强盘点!国产数据分析BI工具怎么选?看这篇就够了
  7. Java实训项目5:GUI学生信息管理系统 - 实现步骤 - 创建数据库与表
  8. matlab水蒸气焓值计算_暖通干货,巧析焓湿图,焓湿图如何应用?一读就懂不容错过...
  9. 电子邮箱官网地址是什么,企业邮箱官网地址登录入口讲解
  10. Science:拟南芥根系三萜化合物塑造特异的微生物组
  11. Dex.top“50计划”新玩法,能否让行业格局重新洗牌?
  12. 苹果手机屏幕如何投射到win10?
  13. K3 CLOUD计划管理之计划方案(MPS/MRP)
  14. 聊聊前端开发日常的协作工具(全)
  15. linux qt 获取u盘名称,QT windows平台下获取U盘 QComboBox显示U盘盘符
  16. 前段基础 HTML 第三章文字与段落标记----假期学习第二天
  17. 大数据技术原理与应用 概念、存储、处理、分析和应用(林子雨)——第七章 MapReduce
  18. RFID-RC522/STM32F103RB/KEIL5 简单实现读取卡片ID
  19. 这只线虫不简单!大脑被高精度还原,可动态蠕动前行
  20. 在网页中在线浏览ppt文档

热门文章

  1. Metro UI配色方案
  2. kindeditor html 引入,KindEditor编辑器的调用方法
  3. 工匠精神是吹牛,互联网时代需打磨“剑锋
  4. springmvc整合shiro做登陆权限控制,使用mongodb存储session
  5. 有一个一个装逼的同事,写了一段代码
  6. RS485接口中英文液晶语音收银专用密码键盘HX552通讯命令
  7. 各地软件行业协会通讯录
  8. Winodws XP 32bit系统中使用3GB以上的内存解决方案
  9. 12388举报时显示服务器异常,【权威发布】即日起,12388电话举报受理系统为民服务...
  10. JavaScript定时器示例