hdu4561 bjfu1270 最大子段积
就是最大子段和的变体。最大子段和只要一个数组,记录前i个里的最大子段和在f[i]里就行了,但是最大子段积因为有负乘负得正这一点,所以还需要把前i个里的最小子段积存起来。就可以了。直接上代码:
/** Author : ben*/ #include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <ctime> #include <iostream> #include <algorithm> #include <queue> #include <set> #include <map> #include <stack> #include <string> #include <vector> #include <deque> #include <list> #include <functional> #include <numeric> #include <cctype> using namespace std; //输入非负整数,用法int a = get_int(); int get_int() {int res = 0, ch;while (!((ch = getchar()) >= '0' && ch <= '9')) {if (ch == EOF)return -1;}res = ch - '0';while ((ch = getchar()) >= '0' && ch <= '9')res = res * 10 + (ch - '0');return res; } //输入整数(包括负整数,故不能通过返回值判断是否输入到EOF,本函数当输入到EOF时,返回-1),用法int a = get_int2(); int get_int2() {int res = 0, ch, flag = 0;while (!((ch = getchar()) >= '0' && ch <= '9')) {if (ch == '-')flag = 1;if (ch == EOF)return -1;}res = ch - '0';while ((ch = getchar()) >= '0' && ch <= '9')res = res * 10 + (ch - '0');if (flag == 1)res = -res;return res; }const int MAXN = 10009; int maxr[MAXN], minr[MAXN];inline int mymul(int a, int b) {int sign = 1;if (a * b == 0) {return 0;}if (a * b < 0) {sign = -1;}return sign * (abs(a) + abs(b)); }int main() {int T = get_int(), tmp, N;int a[3];for (int t = 1; t <= T; t++) {N = get_int();maxr[0] = minr[0] = 0;int ans = 0;for (int i = 1; i <= N; i++) {tmp = get_int2() / 2;a[0] = mymul(maxr[i - 1], tmp);a[1] = mymul(minr[i - 1], tmp);a[2] = tmp;sort(a, a + 3);maxr[i] = a[2];ans = maxr[i] > ans ? maxr[i] : ans;minr[i] = a[0];}printf("Case #%d: %d\n", t, ans);}return 0; }
转载于:https://www.cnblogs.com/moonbay/p/4263040.html
hdu4561 bjfu1270 最大子段积相关推荐
- 机器学习、计算机视觉面经整理(持续完善整理中……)
算法岗计算机视觉方向求职经验总结 进入11月份,楼主找工作也基本进入尾声了,从7月份开始关注牛客网,在求职的过程中学到了不少,感谢牛客提供这样一个平台,让自己的求职历程不再孤单. 先说一下楼主教育背景 ...
- java求数组中满足给定和的数对_关于数组的几道面试题 - zdd - 博客园
2011年2月15日更新,加入找出绝对值最小的元素一题 数组是最基本的数据结构,关于数组的面试题也屡见不鲜,本文罗列了一些常见的面试题,仅供参考,如果您有更好的题目或者想法,欢迎留言讨论.目前有以下1 ...
- 计算方法之数值积分方法——复化梯形法,复化辛普森法,龙贝格法,三点高斯公式 附matlap程序下载
数值积分 复化求积法就是将求积区间[a,b]划分为n等份,步长h=(b-a)/n,等分点为xi=a+ih,i=0,1,2,-,n.然后用低阶求积公式求的每个字段[xi,xi+1]上的积分值I,然后再将 ...
- hdu4561 连续最大积
题意: 连续最大积 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total ...
- P1115 最大子段和(python3实现)
最大子段和 - 洛谷 """P1115 最大子段和(python3实现) https://www.luogu.com.cn/problem/P1115"&quo ...
- 台积电2nm与3nm制程
台积电2nm与3nm制程 台湾积体电路制造股份有限公司,中文简称:台积电,英文简称:tsmc,属于半导体制造公司.成立于1987年,是全球第一家专业积体电路制造服务(晶圆代工foundry)企业,总部 ...
- 薄膜封装,等离子体技术,原子层沉积,化学气相沉积
薄膜封装,等离子体技术,原子层沉积,化学气相沉积 薄膜封装 薄膜封装概念 薄膜真空沉积的一个很重要的技术应用就是薄膜封装.人们对薄膜封装最简单的认识就是日常生活中最常见的保鲜膜,水氧渗透率大约是1-1 ...
- 原子层沉积(ALD)和化学气相沉积(CVD)微电子制造铜金属化的研究进展
原子层沉积(ALD)和化学气相沉积(CVD)微电子制造铜金属化的研究进展 Atomic Layer Deposition (ALD) and Chemical Vapor Deposition (CV ...
- 机器人建模中移动关节如何建立坐标系_机器人工程师进阶之路(八)指数积(PoE)建立机械臂模型及正运动...
梁政:机器人工程师进阶之路(六)旋量法(上)zhuanlan.zhihu.com 梁政:机器人工程师进阶之路(七)旋量法(下)zhuanlan.zhihu.com 从上两篇我们可以了解到,利用旋量 ...
最新文章
- 阿里P8都留不住的程序员和他们的公众号!
- DBSCAN的两个核心参数是什么?如何获取最佳参数?如何可视化获取的过程?
- Pandas.DataFrame删除指定行和列(drop)
- Java 转型问题(向上转型和向下转型)
- 不仅能搜索还能查信息 带你了解LBS应用
- Find Minimum in Rotated Sorted Array II
- 超硬核直播课 | 自主旋翼无人机主流算法、视觉SLAM基础
- MongoDB小型文档型数据库使用
- java 龟兔赛跑预测_[Java] 蓝桥杯BASIC-24 基础练习 龟兔赛跑预测
- “头脑王者”爆红被封,微信小程序迎来蛮荒期
- 【java学习之路】(java框架)005.mybatis框架整合及逆向工厂
- 横向合计代码 锐浪报表_锐浪报表使用技巧
- Excel 宏编程的常用代码
- 桃李春风一杯酒,江湖夜雨十年灯。—第十一天
- android 记事本软件,安卓日历记事本软件
- winform自定义控件无法显示在工具箱中以及显示但使用时出错的解决办法
- 使用HBuilder打包App教程(图文教程)
- 每日一犬 · 哈瓦那犬
- C++语言入门3(定义整数与整数输入)
- 基于硬件定时器的软件定时器
热门文章
- BRI OS 高级ping
- 分布式系统概念和设计 第十五章 (1)
- 产品经理的四点思考:不该简单满足用户需求
- 企业如何对付DDoS***
- python的深拷贝和浅拷贝
- 计算机硬件检测维修资料,计算机硬件检测维修实训台 Computer hardware detection and maintenance training bench...
- windows怎么用gpu跑python程序_在GPU(windows)上运行Theano的命令
- 小小在线教授何为BTC跳矿(教授如何在线扩大收益)
- Bootstrap3 弹出提示插件的使用方法
- android androidruntime java,java – Runtime.exec():在Android中重启?