D. Dog Walking
我们知道在最大值和最小值之外我们进行加减对答案是不影响的,而对于两个极值内部,我们一定会让他尽最大努力向一个方向走,因此我们可以把同一方向的放在一块。
但是我们不知道极值在哪里,只知道结构,所以我们循环整个取值去尝试找到最大值就好了,答案一定是其中之一的情况
/*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相关推荐
- 基于单目的3D人体姿态估计
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者:彡枫| 来源:知乎 https://zhuanlan.zhihu.com/p/148251873 ...
- 与word2vec_NLP--Word2Vec详解
注:其他有很多公式是用markdown写的,但头条显示不了,推荐大家在微信公众号阅读- 微信公众号:浩波的笔记 文章链接:Word2Vec详解:https://mp.weixin.qq.com/s?_ ...
- 我的AI之路(55)--如何获取kinetics数据集和如何制作自己的kinetics数据集
近来做行为动作识别,根据近两年的CVPR.ICCV.ECCV论文实验了一序列的动作识别方面的模型,很多都用到了kinetics数据集或者something-something数据集,但是后者的官网目前 ...
- 【数据集】Kinetics-600 dataset介绍
最近在做行为识别,然后介绍一下目前种类多且数据量很大的行为数据集 Kinetics-600 dataset. 参考链接: activityNet:http://activity-net.org/cha ...
- 行为识别数据集 Kinetics
文章目录 0. 前言 1. 数据集介绍 附录-分类目录 Kinetics-400 分类 Kinetics-600 分类 Kinetics-700 分类 0. 前言 行为识别中重要的benchmark, ...
- python oop编程_Python 3中的面向对象编程(OOP)
python oop编程 In this article you'll pick up the following basic concepts of OOP in Python: 在本文中,您将了解 ...
- 3D人体姿态估计(介绍及论文归纳)
推荐镜子大佬的知乎 2D 多人姿态估计论文汇总.分类与简介 2D多人姿态估计指南:热图回归与坐标回归流程指南 openmmlab微信公众号里的3DHPE综述 opemmlab框架下的MMPose库,有 ...
- Python 迁移学习实用指南:1~5
原文:Hands-On Transfer Learning with Python 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自[ApacheCN 深度学习 译文集],采用译后编辑(MT ...
- 定义一个DOG类(Java)
class Dog{String name;String color;int age;public Dog(String name,String color,int age){System.out.p ...
最新文章
- hql中获取前一天的数据_oracle实现动态查询前一天早八点到当天早八点的数据功能示例...
- UVa483 Word Scramble
- 博为峰JavaEE技术文章 ——MyBatis 简介(2)
- 使用入站适配器公开HTTP Restful API。 第1部分(XML)
- leetcode276. 栅栏涂色
- 最强盘点!国产数据分析BI工具怎么选?看这篇就够了
- Java实训项目5:GUI学生信息管理系统 - 实现步骤 - 创建数据库与表
- matlab水蒸气焓值计算_暖通干货,巧析焓湿图,焓湿图如何应用?一读就懂不容错过...
- 电子邮箱官网地址是什么,企业邮箱官网地址登录入口讲解
- Science:拟南芥根系三萜化合物塑造特异的微生物组
- Dex.top“50计划”新玩法,能否让行业格局重新洗牌?
- 苹果手机屏幕如何投射到win10?
- K3 CLOUD计划管理之计划方案(MPS/MRP)
- 聊聊前端开发日常的协作工具(全)
- linux qt 获取u盘名称,QT windows平台下获取U盘 QComboBox显示U盘盘符
- 前段基础 HTML 第三章文字与段落标记----假期学习第二天
- 大数据技术原理与应用 概念、存储、处理、分析和应用(林子雨)——第七章 MapReduce
- RFID-RC522/STM32F103RB/KEIL5 简单实现读取卡片ID
- 这只线虫不简单!大脑被高精度还原,可动态蠕动前行
- 在网页中在线浏览ppt文档
热门文章
- Metro UI配色方案
- kindeditor html 引入,KindEditor编辑器的调用方法
- 工匠精神是吹牛,互联网时代需打磨“剑锋
- springmvc整合shiro做登陆权限控制,使用mongodb存储session
- 有一个一个装逼的同事,写了一段代码
- RS485接口中英文液晶语音收银专用密码键盘HX552通讯命令
- 各地软件行业协会通讯录
- Winodws XP 32bit系统中使用3GB以上的内存解决方案
- 12388举报时显示服务器异常,【权威发布】即日起,12388电话举报受理系统为民服务...
- JavaScript定时器示例