jerry
时间:2019-11-13
本文章向大家介绍jerry,主要包括jerry使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
jerry
题目描述
众所周知,Jerry 鼠是一只非常聪明的老鼠。
Jerry 聪明到它可以计算64 位有符号整形数字的加减法。
现在,Jerry 写下了一个只由非负整数和加减号组成的算式。它想给这个算式添加合法的括号,使得算式的结果最大。这里加减法的运算优先级相同,和我们在日常生活中接触到的一样,当没有括号时,先算左边的,再算右边的。
比如,算式 (1+2)+3-(4-5)+6(1+2)+3−(4−5)+6 是合法的,但是 )1+2()1+2( 和 (-)1+2(−)1+2 以及 (1)+2(1)+2 都是不合法的。
输入格式
接下来,共有 TT 组数据,每组的格式如下:
第一行一个整数 nn,代表数字的个数。
接下来一行共 2n-12n−1 个符号或非负整数,组成一个由空格隔开的算式。
输出格式
一行一个整数,代表添加括号后,算式最大的可能结果。
样例
样例输入1
1
3
5 - 1 - 3
样例输出1
7
样例1说明
5-(1-3) = 7
样例输入2
1
4
1 - 1 - 1 - 3
样例输出2
4
样例2说明
1- (1 - 1 - 3) = 4
样例3
下发了额外的一个大型样例文件。
数据范围与提示
测试点编号 | n的范围 | 特殊性质 |
---|---|---|
1 | n \le 3n≤3 | 无 |
2,3 | n \le 10n≤10 | T \le 10T≤10 |
4,5 | n \le 100n≤100 | T \le 100T≤100 |
6,7 | n \le 1000n≤1000 | T \le 100T≤100 |
8,9,10 | \sum {n} \le 2 \times 10^5∑n≤2×105 | 无 |
对于全部的数据, n \le 10^5 , \sum {n} \le 2 \times 10^5, 2 \le nn≤105,∑n≤2×105,2≤n,算式中出现的数字在 [0,10^9][0,109] 区间内。
来源
CSP-S 2019模拟 长沙一中2
Solution
令f[i][j]表示前i个数,前面有j个左括号的最大值。
在一个点可以加一个左括号,删一个左括号,或不改变。(删两个等价于不删,加两个...想啥呢)
那么就是n^2的了
题解告诉我只需要两层括号,于是就O(N)了
#include<cstdio> #include<iostream> #include<cstdlib> #include<cstring> #include<algorithm> #include<cmath> #define maxn 1000006 #define ll long long #define inf 1e16 #define _(d) while(d(isdigit(ch=getchar()))) using namespace std; int T,n; ll f[maxn][3],a[maxn],g[maxn]; ll R(){ int F=1,v;char ch;_(!)if(ch=='-')F=0;v=(ch^48); _()v=(v<<1)+(v<<3)+(ch^48);return F?v:-v; } void work(){ n=R(); for(int i=1;i<=n;i++)a[i]=R(); for(int i=0;i<=n;i++) for(int j=0;j<=2;j++)f[i][j]=-inf; g[0]=1;for(int i=1;i<=n;i++)g[i]=-g[i-1]; f[0][0]=0; for(int i=1;i<=n;i++){ for(int j=0;j<=2;j++){ int v=g[j]*a[i]; if(j>0&&a[i-1]<0)f[i][j]=max(f[i][j],f[i-1][j-1]+g[j]*a[i]); f[i][j]=max(f[i][j],f[i-1][j]+g[j]*a[i]); if(j<2)f[i][j]=max(f[i][j],f[i-1][j+1]+g[j]*a[i]); } } ll ans=-inf; for(int x=0;x<=2;x++)ans=max(ans,f[n][x]); printf("%lld\n",ans); } int main(){ for(scanf("%d",&T);T--;work()); return 0; }
原文地址:https://www.cnblogs.com/liankewei/p/11850039.html
- 神经网络权重初始化问题
- Andrew Ng机器学习课程笔记--week11(图像识别&总结划重点)
- 市民近期到南沙有望体验到无人驾驶技术
- Andrew Ng机器学习课程笔记--week10(优化梯度下降)
- Andrew Ng机器学习课程笔记--week9(下)(推荐系统&协同过滤)
- Andrew Ng机器学习课程笔记--week9(上)(异常检测&推荐系统)
- python程序员开发必备的5大工具,你用过几个?
- Andrew Ng机器学习课程笔记--week8(K-means&PCA)
- Andrew Ng机器学习课程笔记--week7(SVM)
- Pytorch windows10安装教程
- Udacity并行计算课程笔记-The GPU Programming Model
- DeepLearning.ai学习笔记(二)改善深层神经网络:超参数调试、正则化以及优化--Week2优化算法
- DeepLearning.ai学习笔记(二)改善深层神经网络:超参数调试、正则化以及优化--Week1深度学习的实用层面
- 通俗理解决策树中的熵&条件熵&信息增益
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PowerBI DAX 度量值管理 - 驾驭度量值依赖关系,删除无效
- Git 实用命令小抄
- 手把手教你画酷炫环形图(图文详解)
- 为什么说神经网络可以逼近任意函数?
- 缩放|位移|渐变简单动画
- HTTP状态码及其含义
- 卷积神经网络中的参数共享/权重复制
- 前端面试基础题:从浏览器地址栏输入url到显示页面的步骤
- 学会这15个TS面试题,拿到更高薪的offer
- 前端面试基础题:请描述⼀下 cookies , sessionStorage 和 localStorage 的区别?
- matplotlib基础绘图命令之pie
- 【从0到1学算法】快速排序
- 每天一道前端面试题:左边宽度固定,右边⾃适应
- 几个IDEA高级调试技巧,完全是bug杀手啊
- Spring Security 实战干货:从零手写一个验证码登录