差分方程的簡單使用

2021-10-04 18:27:46 字數 1199 閱讀 8960

多虧了上週大家的幫助,tt終於得到了乙隻可愛的貓。但沒想到的是,這是乙隻神奇的貓。

有一天,神奇的貓決定調查tt的能力,給他乙個問題。即從世界地圖中選擇n個城市,a[i]表示第i個城市所擁有的資產價值。

然後,這只神奇的貓將執行幾項操作。每輪選擇[l,r]區間內的城市,並將其資產價值增加c,最後需要給出q次操作後各城市的資產價值。

你能幫tt找到答案嗎?

第一行包含兩個整數n,q(1≤n, q≤2⋅105)-城市數目和運算元。

第二行包含序列a的元素:整數a1,a2,…,an (10^(-6) ≤ai≤10 ^6)。

接下來是q行,每一行代表乙個操作。第i行包含3個整數l,r和c(1≤ l ≤ r ≤ n ,(−10)^5≤ c ≤ 10 ^5)用於第i個操作。

輸出n個整數a1,a2,…an,每行乙個,ai應該等於第i個城市的最終資產價值。

input

4 2-3 6 8 4

4 4 -2

3 3 1

output

-3 6 9 2

input

2 15 -2

1 2 4

output

9 2input

1 20

1 1 -8

1 1 -6

output

-14

本題主要就是對差分方程的考察,藉此來降低時間複雜度。

思路就是根據差分方程的構造方法針對輸入陣列構造對應的差分陣列,然後根據修改值的區間對差分陣列進行單點修改,從而減少操作次數,降低複雜度。

#include

using

namespace std;

int n,q,l,r,c;

//陣列元素個數,運算元目,左,右端點,+的數字

long

long a[

200000

],b[

200000];

//為啥必須在靜態區?

intmain()

for(

int i=

0;i) a[1]

=b[1];

cout<<<

" ";

for(

int i=

2;i<=n;i++

) cout

}

微分方程,差分方程

自變數連續,一般自變數為時間t,因變數 函式值 連續,如 y t t 2 2t 1 如 y t 2y t 3y t 5 u t 3u t 其中y和u都是t的連續函式,y u 都是對自變數求導,即對t求導 自變數是離散的,一般自變數取k,所以因變數也是離散的,即k 0,1,2,3,n 差分方程一般有三...

代數方程與差分方程模型

代數方程與差分方程模型 原創tianguiyuyu 發布於2018 05 29 23 13 18 閱讀數 1149 收藏 展開1 代數方程模型。所謂的代數方程模型就是有一邊變數表示未知量,代數方程,即由多項式組成的方程。有時也泛指由未知數的代數式所組成的方程,包括整式方程 分式方程和根式方程。例如 ...

差分方程求解,leslie矩陣的快速冪。

k階差分方程以矩陣方式給出,形如 a a0,a1,a2 ak 1 1,0,0,0 0,1,0,0 0,0,0.1,0 樸素的求解這個矩陣的n次冪,bn a b0,時間複雜度高達o k 3 logn 下面,將優化差分方程的時間複雜度為o k 2 logn cayley hamilton定理 設其中 d...