藍橋杯第10屆 后綴表達式

題目描述

給定?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,?10^{9}≤Ai?≤10^{9}

輸出描述

輸出一個整,代表答案。

輸入輸出樣例

示例

輸入

1 1
1 2 3

輸出

4

中綴轉后綴的順序是固定的:

  1. 轉換算法遵循明確的規則(如運算符優先級和結合性)

  2. 使用棧結構保證了確定的處理順序

  3. 結果后綴表達式能唯一反映原中綴表達式的運算順序

例如:(3 + 4) × 5 - 6?只能轉換為?3 4 + 5 × 6 -

后綴轉中綴的順序不固定:

  1. 運算符優先級的影響:相同的后綴表達式可能對應不同括號位置的中綴表達式

    • 例如:3 4 + 5 ×?可轉為?(3 + 4) × 5?或?3 + 4 × 5(后者數學等價但括號位置不同)

  2. 結合性的影響:相同優先級的運算符可能有不同分組方式

    • 例如:3 4 5 + +?可轉為?3 + (4 + 5)?或?(3 + 4) + 5

  3. 交換律的影響:可交換運算符(如+、×)的操作數順序可以交換

    • 例如:2 3 ×?可轉為?2 × 3?或?3 × 2

后綴轉中綴中可以隨意加括號、交換運算符的順序

思路:

1.如果沒有減號,最大的結果就是n+m+1個數的和

2.?如果有減號:最終只有1個減號起作用,其他減號可以抵消

與負數匹配的減號——負負得正,相消

與負數匹配的加號——放到第一個減號里? ?

eg: -5,?-3, 1, 2, +, -, -? ? ? ? ?2 - ((-5)+(-3)) +1

與正數匹配的減號——放到第一個減號里

eg: 1, 2, 3, 5, -, -, -? ? ? ? ?5 - (1-2-3)

與正數匹配的加號——正好

所以,最后的結果就是最大數-最小數+其他數的絕對值

#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;int a[200010];
long long ans; //必須開long long int main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int n, m; //加號、減號的個數 cin>>n>>m;int cnt=n+m+1;for(int i=1; i<=cnt; ++i) cin>>a[i];sort(a+1, a+cnt+1);//如果沒有減號 if(m==0){		for(int i=1; i<=cnt; ++i) ans += a[i];cout<<ans;return 0;		}ans = a[cnt]-a[1];for(int i=2; i<=cnt-1; ++i){ans += abs(a[i]);	}cout<<ans;return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/73628.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/73628.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/73628.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++前綴和

個人主頁&#xff1a;[PingdiGuo_guo] 收錄專欄&#xff1a;[C干貨專欄] 大家好&#xff0c;今天我們來了解一下C的一個重要概念&#xff1a;前綴和 目錄 1.什么是前綴和 2.前綴和的用法 1.前綴和的定義 2.預處理前綴和數組 3.查詢區間和 4.數組中某個區間的和是否為特定…

uni app跨端開發遇到的問題

技術棧 uni app&#xff0c;vue3&#xff0c;uview puls&#xff0c;map… nvue 因為項目中有地圖&#xff0c;要使用到map標簽&#xff0c;所以考慮用原生nvue開發&#xff0c;它是有痛點的&#xff0c;首先瀏覽器不支持&#xff0c;我是要開發ios和Android&#xff0c;所以…

SQL注入操作

sql注入 一&#xff0c;SQL注入分類按照注入的網頁功能類型分類按照注入點值的屬性分類基于從服務器返回內容按照注入的程度和順序 一&#xff0c;SQL注入分類 按照注入的網頁功能類型分類 登錄注入cms注入 cms邏輯&#xff1a;index.php首頁展示內容&#xff0c;具有文章列表…

微信 MMTLS 協議詳解(五):加密實現

常用的解密算法&#xff0c;對稱非對稱 加密&#xff0c;密鑰協商&#xff0c; 帶消息認證的加解密 #生成RSA 密鑰對 void GenerateRsaKeypair(std::string& public_key,std::string& private_key) {RSA* rsa RSA_new();BIGNUM* bn BN_new();// 生成 RSA 密鑰對BN_s…

ROS melodic 安裝 python3 cv_bridge

有時候&#xff0c;我們需要處理這些兼容性問題。此處列舉我的過程&#xff0c;以供參考 mkdir -p my_ws_py39/src cd my_ws_py39 catkin_make_isolated-DPYTHON_EXECUTABLE/usr/bin/python3 \-DPYTHON_INCLUDE_DIR/usr/include/python3.8 \-DPYTHON_LIBRARY/usr/lib/x86_64-l…

深入學習:SpringQuartz的配置方式!

全文目錄&#xff1a; 開篇語前言摘要概述1. 基于 XML 的傳統配置配置步驟1.1 Maven 依賴1.2 XML 配置文件1.3 實現 Job 類 2. 基于 Java Config 的現代配置方式配置步驟2.1 Maven 依賴2.2 配置類2.3 實現 Job 類 3. 動態任務調度動態添加任務動態刪除任務 4. Quartz 持久化配置…

ClickHouse與TiDB實操對比:從入門到實戰的深度剖析

ClickHouse與TiDB實操對比&#xff1a;從入門到實戰的深度剖析 寶子們&#xff0c;在當今數據驅動的時代&#xff0c;選擇合適的數據庫對于處理海量數據和支撐業務發展至關重要。ClickHouse和TiDB作為兩款備受關注的數據庫&#xff0c;各自有著獨特的優勢和適用場景。今天&…

element-ui messageBox 組件源碼分享

messageBox 彈框組件源碼分享&#xff0c;主要從以下兩個方面&#xff1a; 1、messageBox 組件頁面結構。 2、messageBox 組件屬性。 一、組件頁面結構。 二、組件屬性。 2.1 title 標題&#xff0c;類型為 string&#xff0c;無默認值。 2.2 message 消息正文內容&#xf…

睡眠健康領域的智能硬件設備未來的發展趨勢

隨著社會節奏的不斷加快&#xff0c;人們的睡眠問題愈發多了起來&#xff0c;主要表現有以下幾個方面&#xff1a; 睡眠質量下降 淺睡眠增多&#xff1a;現代生活中&#xff0c;人們面臨著各種壓力源&#xff0c;如工作壓力、生活瑣事、經濟壓力等&#xff0c;這些壓力會導致大…

支付頁面安全與E-Skimming防護----淺談PCI DSS v4.0.1要求6.4.3與11.6.1的實施

關鍵詞&#xff1a;支付頁面安全、E-Skimming、PCI DSS v4.0.1、第三方腳本、風險管理、持卡人數據、數據安全、第三方服務提供商、TPSP、內容安全、網頁監控、惡意腳本攻擊 本文為atsec和作者技術共享類文章&#xff0c;旨在共同探討信息安全的相關話題。轉載請注明&#xff…

【gradio】從零搭建知識庫問答系統-Gradio+Ollama+Qwen2.5實現全流程

從零搭建大模型問答系統-GradioOllamaQwen2.5實現全流程&#xff08;一&#xff09; 前言一、界面設計&#xff08;計劃&#xff09;二、模塊設計1.登錄模塊2.注冊模塊3. 主界面模塊4. 歷史記錄模塊 三、相應的接口&#xff08;前后端交互&#xff09;四、實現前端界面的設計co…

案例分享|樹莓派媒體播放器,重構商場廣告的“黃金三秒”

研究顯示&#xff0c;與傳統戶外廣告相比&#xff0c;數字戶外廣告在消費者心中的記憶率提高了17%&#xff0c;而動態戶外廣告更是能提升16%的銷售業績&#xff0c;整體廣告效率提升了17%。這一顯著優勢&#xff0c;使得越來越多資源和技術流入數字廣告行業。 戶外裸眼3D廣告 無…

23種設計模式-裝飾器(Decorator)設計模式

裝飾器設計模式 &#x1f6a9;什么是裝飾器設計模式&#xff1f;&#x1f6a9;裝飾器設計模式的特點&#x1f6a9;裝飾器設計模式的結構&#x1f6a9;裝飾器設計模式的優缺點&#x1f6a9;裝飾器設計模式的Java實現&#x1f6a9;代碼總結&#x1f6a9;總結 &#x1f6a9;什么是…

[Vue]事件修飾符

文章目錄 一、語法介紹二、添加代碼三、結果展示四、參考文獻 如有錯誤&#xff0c;請指正&#xff01;&#xff01;&#xff01; 一、語法介紹 1、問題來源 我們在處理網頁時&#xff0c;當點擊按鈕時會觸發對應事件&#xff0c;但是有時并不想觸發該時間&#xff0c…

Go 語言 sync 包使用教程

Go 語言 sync 包使用教程 Go 語言的 sync 包提供了基本的同步原語&#xff0c;用于在并發編程中協調 goroutine 之間的操作。 1. 互斥鎖 (Mutex) 互斥鎖用于保護共享資源&#xff0c;確保同一時間只有一個 goroutine 可以訪問。 特點&#xff1a; 最基本的同步原語&#x…

ubuntu22.04安裝搜狗輸入法保姆教程~

一、添加中文語言支持 1.首先打開設置,找到Language and Region 2.點擊Manage Installed Languages 3.點擊 Install/Remove Languages... 4.選中Chinese (simplified),點擊Apply

docker中間件部署

1.docker安裝 # 1.卸載舊版本 yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine# 2.需要的安裝包 yum install -y yum-utils# 3.設置鏡像的倉庫 # 3.1.默認是國外的&#x…

python康復日記-request庫的使用,爬蟲自動化測試

一&#xff0c;request的簡單應用 #1請求地址 URLhttps://example.com/login #2參數表單 form_data {username: admin,password: secret } #3返回的響應對象response response requests.post(URL,dataform_data,timeout5 ) #4處理返回結果&#xff0c;這里直接打印返回網頁的…

強化學習和智能決策:Q-Learning和Deep Q-Learning算法

強化學習(Reinforcement Learning, RL)是機器學習的一個重要分支,它通過智能體(Agent)與環境交互來學習最優決策策略,旨在最大化智能體的長期累積獎勵。Q-Learning和Deep Q-Learning是強化學習中的兩種關鍵算法,它們在智能決策領域發揮著重要作用。 一、強化學習基礎 …

ubuntu22.04 安裝Jitsi meet 開源會議系統,代替騰訊會議

0.安裝 官方安裝教程Self-Hosting Guide - Debian/Ubuntu server | Jitsi Meet 一定要用域名訪問&#xff0c; 一定要用域名訪問&#xff0c; 一定要用域名訪問&#xff0c; 一定要用域名訪問&#xff0c; 域名一定要有ssl證書&#xff0c;域名一定要有ssl證書&#xff0c;域名…