码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 蓝桥杯:后缀表达式


    后缀表达式【思维】

    题目描述

    给定 N 个加号、M 个减号以及 N+M+1 个整数 A1,A2,⋅⋅⋅,AN+M+1,小明想知道在所有由这 N 个加号、M 个减号以及 N+M+1 个整数凑出的合法的 后缀表达式中,结果最大的是哪一个?

    请你输出这个最大的结果。

    例如使用 1 2 3 + -,则 “2 3 + 1 -” 这个后缀表达式结果是 4,是最大的。

    输入描述

    第一行包含两个整数 N,M。

    第二行包含 N+M+1 个整数 A1,A2,⋅⋅⋅,AN+M+1。

    其中,0≤N,M≤105,−109≤*Ai*≤109。

    输出描述

    输出一个整,代表答案。

    输入输出样例

    示例

    输入

    1 1
    1 2 3
    
    • 1
    • 2

    输出

    4
    
    • 1

    思路:

    后缀表达式不同于我们常见的表达式,我们常见的表达式叫中缀表达式,如 2+3,而后缀表达式是 23+
    后缀表达式是电脑喜欢的一种计算方式,采用压栈的方式计算,遇到数字就压进栈中,遇到计算符号就取出两个数
    进行计算,所以后缀表达式相比于中缀表达式可以不借助括号就能进行中缀表达式的括号运算。如 2+3*(3+7)是
    中缀表达式,而改成后缀表达式就是 2 3 3 7 + * + 。
    所以本题不可用中缀表达式的方法计算,应该是用括号加上加减号进行中缀表达式计算来找最大值。
    先对数按递增排序,将数组中的最大值减去最小值,如 6 - (-5),其余的数如果和符号组成负数,放在括号的
    里面,就能变成整数,如果是整数,就直接放在括号的外面,这样不管是正数还负数相加就行,只要一个最大值减
    最小值就行,其余的相加。

    代码:

    #include
    using namespace std;
    int main()
    {
    	long long n,m,sum=0;
    	int a[210000];
    	scanf("%lld %lld",&n,&m);
    	for(int i=0;i<n+m+1;i++)
    		scanf("%d",&a[i]);
    	sort(a,a+n+m+1);  //按递增排序 
    	if(m==0) //判断是否有符号 
    		for(int i=0;i<n+m+1;i++)
    			sum+=a[i]; //没负号就全部加在一起 
    	else 
    	{   //有负号就将最大的值减去最小的值 
    		sum=a[n+m]-a[0]; 
    		for(int i=1;i<n+m;i++)
    			sum+=abs(a[i]); //其余全部的数的绝对值相加 
    	}
    	printf("%lld",sum);
    	return 0;
    } 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
  • 相关阅读:
    【LeetCode】挑战100天 Day11(热题+面试经典150题)
    深入理解Linux网络技术内幕(九)——中断和网络驱动程序
    通过WARN(1,“xxx“) 来确定code的flow和打印callstack
    longjmp导致局部变量丢失
    内网安全学习
    linux脚本执行docker容器命令
    解决安装 WP Super Cache 插件提示 Advanced-Cache.Php 是另一个插件创建的
    CorelDraw插件开发-X4-反调试分析-CDR插件开发
    STC51单片机学习笔记5——串口发送&查询接收
    热门免费api接口:含物流api,短信api,天气api等
  • 原文地址:https://blog.csdn.net/zhouhaoNB_/article/details/126717026
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号