Acwing 242 乙個簡單的整數問題

2021-10-03 02:24:16 字數 1047 閱讀 6408

給定長度為n的數列a,然後輸入m行操作指令。

第一類指令形如「c l r d」,表示把數列中第l~r個數都加d。

第二類指令形如「q x」,表示詢問數列中第x個數的值。

對於每個詢問,輸出乙個整數表示答案。

輸入格式

第一行包含兩個整數n和m。

第二行包含n個整數a[i]。

接下來m行表示m條指令,每條指令的格式如題目描述所示。

輸出格式

對於每個詢問,輸出乙個整數表示答案。

每個答案佔一行。

資料範圍

1≤n,m≤1051≤n,m≤105,

|d|≤10000|d|≤10000,

|a[i]|≤1000000000|a[i]|≤1000000000

輸入樣例:

10 5

1 2 3 4 5 6 7 8 9 10

q 4q 1

q 2c 1 6 3

q 2

輸出樣例:

412

5

時/空限制:1s / 64mb

思路:利用樹狀陣列對該變數進行記錄,輸出時用原數字加上該變數即可.

#include#define ll long long

using namespace std;

const int n = 100000 + 10;

ll a[n],tree[n];

ll n;

ll lowbit(ll x)

ll query(ll x)

void add(ll x, ll val)

int main()

char c;

while(m--)

}return 0;

}//10 5

//16 -12 -16 -5 11 14 7 -3 -19 2

//c 5 8 -6

//q 3

//c 7 8 -1

//c 1 10 10

//q 4

acwing 242 乙個簡單的整數問題

給定長度為n的數列a,然後輸入m行操作指令。第一類指令形如 c l r d 表示把數列中第l r個數都加d。第二類指令形如 q x 表示詢問數列中第x個數的值。對於每個詢問,輸出乙個整數表示答案。輸入格式 第一行包含兩個整數n和m。第二行包含n個整數a i 接下來m行表示m條指令,每條指令的格式如題...

AcWing 242 乙個簡單的整數問題

原題鏈結 考察 樹狀陣列 確實簡單.就是差分 樹狀陣列即可.本蒟蒻還以為又有什麼神乎其神的優化.思路 我們先看第乙個指令 第一類指令形如c l r d,表示把數列中第 l r l r 個數都加 l r l r d d l r d l r區間內 d l r d l r d 單看這個操作容易想到差分.即...

一天乙個演算法題 簡單的 求乙個整數的反序列整數。

例如 現在有整數1234,輸出4321整數,問題摘自 演算法實現的不夠好.package com.jue.numberreverse public class numberreverse public static int getreversedatanumber int old int newda...