【qxbt day1】 P2367 语文成绩
生活随笔
收集整理的這篇文章主要介紹了
【qxbt day1】 P2367 语文成绩
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
?今天學(xué)了 差分********* ? ? 很明白 ? ? 然后 配合著luogu上的題寫一下吧 ? 裸的差分 ? 當時一直打暴力60分 ?交了十幾次 ?今天才知道 ?查詢修改什么的是差分
?
直接看題把
?
輸入輸出格式輸入格式: 第一行有兩個整數(shù)n,p,代表學(xué)生數(shù)與增加分數(shù)的次數(shù)。第二行有n個數(shù),a1~an,代表各個學(xué)生的初始成績。接下來p行,每行有三個數(shù),x,y,z,代表給第x個到第y個學(xué)生每人增加z分。輸出格式: 輸出僅一行,代表更改分數(shù)后,全班的最低分。根據(jù)zhw老師說的 ?先定義一個b數(shù)組 ?用來 加速
就像 ? ?b[i]=a[i]-a[i-1]
搞到最后 ?就等價于 ??
a[i]=b[i]+.......b[1]
操作的話 只需要在b[x]+z ? b[y+1]-z ?就好 ?加速嘛
?
代碼:
?
#include<iostream> #include<cstdio> using namespace std; int n,p,x,y,z,a[5000010],b[5000010],ans,sum=1111111; int main() {scanf("%d%d",&n,&p);for(int i=1;i<=n;i++){scanf("%d",&a[i]);b[i]=a[i]-a[i-1]; }for(int i=1;i<=p;i++){scanf("%d%d%d",&x,&y,&z);b[x]+=z;b[y+1]-=z;}for(int i=1;i<=n;i++){ans+=b[i];sum=min(sum,ans);}printf("%d",sum); }?
?
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/_Yrh/p/9312907.html
總結(jié)
以上是生活随笔為你收集整理的【qxbt day1】 P2367 语文成绩的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。