博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdoj 5586 Sum (最大连续子段和)
阅读量:6682 次
发布时间:2019-06-25

本文共 904 字,大约阅读时间需要 3 分钟。

 

转变一下思维, 求差值最大连续字段和, 因为最后结果只增不减;
#include 
#include
#include
using namespace std;#define N 100000+100typedef long long LL;const LL INF = 0x3f3f3f3f;LL num[N], transNum[N], dp[N];inline LL f(LL a){ return (1890* a +143)% 10007; }int main(){ int n; while(scanf("%d", &n) != EOF) { LL sum=0; for(int i=1; i<= n; i++) { scanf("%lld", &num[i]); sum+= num[i]; } for(int i=1; i<= n; i++) { transNum[i]= f(num[i])-num[i]; } memset(dp, 0, sizeof(dp)); LL maxsum =0; for(int i=1; i<= n; i++) { dp[i]= dp[i-1]>0? dp[i]+dp[i-1]+transNum[i]: dp[i]+transNum[i]; maxsum =max(maxsum, dp[i]); } printf("%lld\n", maxsum+ sum); } return 0; }
 
 

转载于:https://www.cnblogs.com/soTired/p/5422685.html

你可能感兴趣的文章
vue2.0学习笔记(第九讲)(vue-router实现路由)
查看>>
AppleScript脚本入门
查看>>
Windows环境下Jekyll+Github搭建个人博客
查看>>
windows下安装Logstash
查看>>
Hystrix使用
查看>>
最常用的正则表达式
查看>>
《啊哈!算法》-第 2 章:栈、队列、链表
查看>>
闲话JavaScript数据类型
查看>>
Facebook--Graphql 为什么功能这么强大?与开源数据库的结合分析
查看>>
用 ClojureScript 语法运行 React
查看>>
手摸手,带你用vue撸后台 系列四(vueAdmin 一个极简的后台基础模板)
查看>>
Composer的Autoload源码实现——注册与运行
查看>>
Android 自定义 View - 收藏集 - 掘金
查看>>
Restful API 的设计规范
查看>>
图像工具包VintaSoftImaging.NET SDK v8.5,新增独立web服务
查看>>
Angular 4 依赖注入教程之二 组件服务注入
查看>>
[譯] 理解 SVG 座標系統與 Transformation - 3 建立 viewpor
查看>>
「小技巧」 SSH 连接断了但是不想关掉终端重新打开怎么办?
查看>>
input下拉列表选中后背景变黄色
查看>>
工作的未来:敏捷人士瑞典大会上午议程回顾
查看>>