語文成績(洛谷)

題目

原題

題目背景

語文考試結束了,成績還是一如既往地有問題。

題目描述

語文老師總是寫錯成績,所以當她修改成績的時候,總是累得不行。她總是要一遍遍地給某些同學增加分數,又要注意最低分是多少。你能幫幫她嗎?

輸入格式

第一行有兩個整數 n n n p p p,代表學生數與增加分數的次數。

第二行有 n n n 個數, a 1 ~ a n a_1 \sim a_n a1?an?,代表各個學生的初始成績。

接下來 p p p 行,每行有三個數, x x x y y y z z z,代表給第 x x x 個到第 y y y 個學生每人增加 z z z 分。

輸出格式

輸出僅一行,代表更改分數后,全班的最低分。

樣例 #1

樣例輸入 #1


3 2 1 1 1 1 2 1 2 3 1

樣例輸出 #1

2

提示

對于 40 % 40\% 40% 的數據,有 n ≤ 1 0 3 n \le 10^3 n103

對于 60 % 60\% 60% 的數據,有 n ≤ 1 0 4 n \le 10^4 n104

對于 80 % 80\% 80% 的數據,有 n ≤ 1 0 5 n \le 10^5 n105

對于 100 % 100\% 100% 的數據,有 n ≤ 5 × 1 0 6 n \le 5\times 10^6 n5×106 p ≤ n p \le n pn,學生初始成績 $ \le 100 , , z
\le 100$。

思路

這里的思路是差分。因為直接模擬的話時間會爆。
離散化操作就是生成一個新的數組。每個元素都是由原數組當前位置減去元素組上一個位置得到( b [ i ] = a [ i ] ? a [ i ? 1 ] b[i]=a[i]-a[i-1] b[i]=a[i]?a[i?1])。特別的新的數組第一個元素就是其本身因為第一個元素前面沒有元素。新的數組的前綴和得到的就是原數組。
例如新數組第一個元素和第二個元素相加,第二個元素是第二個和第一個元素的差值,這個差值加上第一個元素原數組第一個元素很明顯就是等于第二元素本身,而新數組里第一個元素和原數組第一個元素恰好相等。同理新數組第三個元素是原數組第三個和第二個元素差值。而新數組第一個和第二個元素相加等于原第二元素,這樣第一二三個元素相加就是等于原數組第三個元素。這就是前綴和等于原數組。
這里的新數組有什么好處呢。好處在于在新數組上任意位置加上某個數,該位置后面元素全會加上這個數。在上面例子中如果在第二個位置減去1,那么根據前綴和計算出來的第二個元素會比原數組小1,而第三個元素也需要加上第二個元素,也就是說第三個元素也會比原數組第三個元素小于1.如果后面還有元素又會繼續小1。
那如果希望某個區間加上某個值,這里只需要在右界減去同一個值。這樣右邊超過區域的位置原本加上的值就會被這個減去的值抵消。這樣可以大大減少時間消耗。因為改一個區域只需要改元素兩個位置。如果是直接模擬區間一旦變大就會消耗大量時間。

代碼

#include<iostream>
using namespace std;
int d[5000001];
int de[5000001];
int main(){int m,n;cin>>n>>m;for(int i=1;i<=n;i++){cin>>d[i];de[i]=d[i]-d[i-1];}int x,y,z;for(int j=1;j<=m;j++){cin>>x>>y>>z;de[x]+=z;			//左邊界加zde[y+1]-=z;			//右邊界減z}int mins=9999999;for(int i=1;i<=n;i++){	//前綴和還原數組d[i]=de[i]+d[i-1];if(d[i]<mins)mins=d[i];}cout<<mins;
} 

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

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

相關文章

【springboot】 `@Column` 注解的使用

定義一個實體的屬性時&#xff0c;如果和數據庫的列名不一致的時候&#xff0c;需要用column 建立映射關系。 Column 是 Java 持久化 API&#xff08;Java Persistence API&#xff0c;JPA&#xff09;中的注解之一&#xff0c;用于指定實體類中屬性與數據庫表中列的映射關系。…

2024牛客(4)K題

登錄—專業IT筆試面試備考平臺_牛客網 using i64 long long; using ll long long; constexpr ll M 1e9 7; template<class Info> struct SegmentTree {int n;std::vector<Info> info;SegmentTree() : n(0) {}SegmentTree(int n_, Info v_ Info()) {init(n_, …

Vue樣式綁定

1. 綁定 HTML class ①通過class名稱的bool值判斷樣式是否被啟用 <template><!--通過樣式名稱是否顯示控制樣式--><div :class"{ haveBorder: p.isBorder, haveBackground-color: p.isBackgroundcolor }">此處是樣式展示區域</div><br /…

Linux篇:開發工具yum/vim/gcc/g++/Makefile/gdb

一. yum&#xff1a;軟件包管理器 什么是軟件包&#xff1f; 在Linux 下安裝軟件 , 一個通常的辦法是下載到程序的源代碼 , 并進行編譯 , 得到可執行程序 . 但是這樣太麻煩了, 于是有些人把一些常用的軟件提前編譯好 , 做成軟件包 (可以理解成windows 上的安裝程序) 放在…

Linux C++ 字符編碼轉換 GBK與UTF8互轉

Linux 下使用 iconv 命令可以轉換文件的編碼 iconv -f GBK -t UTF-8 input_file -o output_fileC 代碼 使用 iconv 函數 iconv 函數簽名&#xff1a; size_t iconv(iconv_t cd,、 char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft); 需要注意的是&…

Python基礎20 面向對象(3)多態、封裝、反射

文章目錄 一、多態1、什么是多態2、多態小實驗 二、封裝1、什么是封裝2、內部屬性的約定 三、反射1、什么是反射2、四個實現自省的函數&#xff08;1&#xff09;hasattr(object,name)&#xff08;2&#xff09;getattr(object,name,defaultNone)&#xff08;3&#xff09;seta…

神秘人暗訪:行政窗口為什么要開展神秘顧客調研

在競爭日益激烈的服務市場中&#xff0c;行政窗口作為公共服務的直接提供者&#xff0c;其服務質量的好壞直接關系到政府的形象和公眾對政府的信任度。為了更好地滿足市民的需求&#xff0c;提升服務質量&#xff0c;開展神秘顧客調查顯得尤為重要。神秘顧客調查的必要性包括以…

內網穿透的應用-如何本地部署Elasticsearch搜索分析引擎實現并發布公網遠程訪問

文章目錄 系統環境1. Windows 安裝Elasticsearch2. 本地訪問Elasticsearch3. Windows 安裝 Cpolar4. 創建Elasticsearch公網訪問地址5. 遠程訪問Elasticsearch6. 設置固定二級子域名 Elasticsearch是一個基于Lucene庫的分布式搜索和分析引擎&#xff0c;它提供了一個分布式、多…

探索Flask框架:打造優雅而強大的Web應用

在當今互聯網時代&#xff0c;Web應用的需求日益增長&#xff0c;而作為開發者&#xff0c;我們需要一個簡潔明快、靈活可擴展的框架來滿足這些需求。Flask框架作為一個Python微型框架&#xff0c;在其簡潔的設計理念和豐富的擴展生態系統之間找到了完美的平衡&#xff0c;為我…

洛谷--二分(Java實現)

洛谷 B3627 立方根 題目描述 給定正整數 n&#xff0c;求 √n?。答案向下取整。 輸入格式 僅一行&#xff0c;一個正整數 n。 輸出格式 僅一行&#xff0c;一個正整數&#xff0c;表示√n。向下取整輸出。 輸入輸出樣例 輸入 #1 27 輸出 #1 3 輸入 #2 100000 輸…

ORACLE之 decode函數

語法&#xff1a; DECODE(expression, search1, result1, search2, result2, ..., default_result) 其中&#xff0c;expression是要進行比較的表達式&#xff0c;search1, search2等是可能的值&#xff0c;result1, result2等是對應的結果。如果expression等于search1&#x…

Java類的成員、繼承、多態

當談論Java類的成員、繼承和多態時&#xff0c;我們談論的是面向對象編程的基本概念。讓我逐一介紹&#xff1a; 1. **成員**&#xff1a; - **字段&#xff08;Field&#xff09;**&#xff1a;也稱為屬性或變量&#xff0c;用于存儲對象的狀態信息。 - **方法&#xf…

防御保護第六次作業

需求: 8&#xff0c;分公司內部的客戶端可以通過域名訪問到內部的服務器 9&#xff0c;假設內網用戶需要通過外網的web服務器和pop3郵件服務器下載文件和郵件&#xff0c;內網的FTP服務器也需要接受外網用戶上傳的文件。針對該場景進行防病毒的防護。 10&#xff0c;我們需要針…

C++模板從入門到入土

1. 泛型編程 如果我們需要實現一個不同類型的交換函數&#xff0c;如果是學的C語言&#xff0c;你要交換哪些類型&#xff0c;不同的類型就需要重新寫一個來實現&#xff0c;所以這是很麻煩的&#xff0c;雖然可以cv一下&#xff0c;有了模板就可以減輕負擔。 下面寫一個適…

日常leetcode代碼思路總結(持續更新)

日常leetcode代碼思路總結&#xff08;持續更新&#xff09; 難易leecode題號題目描述思路簡單121. 買賣股票的最佳時機只準一次買賣0表示持有&#xff0c;1表示不持有&#xff1b;dp[0][i] max(dp[0][i-1], -prices[i])&#xff1b;dp[1][i] max(dp[1][i-1], dp[0][i] pric…

Openwrt刪除內核patch

環境說明 ubuntu-18.04 openwrt-21.02 安裝quilt sudo apt install quilt quilt指令說明 Usage: quilt [--trace[=verbose]] [--quiltrc=XX] command [-h] ...quilt --version Commands are:add fold mail refresh snapshotannotate fork new rem…

基于springboot+vue的中小企業設備管理系統(前后端分離)

博主主頁&#xff1a;貓頭鷹源碼 博主簡介&#xff1a;Java領域優質創作者、CSDN博客專家、阿里云專家博主、公司架構師、全網粉絲5萬、專注Java技術領域和畢業設計項目實戰&#xff0c;歡迎高校老師\講師\同行交流合作 ?主要內容&#xff1a;畢業設計(Javaweb項目|小程序|Pyt…

H 橋逆變方式介紹(雙極性)

單極性控制和雙極性控制是說IGBT四個管子的控制 前面所說的單極性控制是其中一個管子開通、關閉另外一個管子持續開通 而雙極性是四個管子中的兩個管子同時導通&#xff0c;同時關斷。彼此交替變化 所以當方波出現低電平時&#xff0c;是一對管子同時導通&#xff0c;出現高電…

2.21 Qt day2 菜單欄/工具欄/狀態欄/浮動窗口、UI界面、信號與槽

思維導圖 使用手動連接&#xff0c;將登錄框中的取消按鈕使用qt4版本的連接到自定義的槽函數中&#xff0c;在自定義的槽函數中調用關閉函數 將登錄按鈕使用qt5版本的連接到自定義的槽函數中&#xff0c;在槽函數中判斷ui界面上輸入的賬號是否為"admin"&#xff0c;…

成像光譜遙感技術中的AI革命:ChatGPT應用指南

“成像光譜遙感技術中的人工智能革命&#xff1a;ChatGPT應用指南”&#xff0c;這是一門旨在改變您使用人工智能處理遙感數據的方式。將最新的人工智能技術與實際的遙感應用相結合&#xff0c;提供不僅是理論上的&#xff0c;而且是適用和可靠的工具和方法。無論你是經驗豐富的…