#462. 数组2

    ID: 462 Type: Default 1000ms 512MiB Tried: 3 Accepted: 1 Difficulty: 10 Uploaded By: Tags>数据结构树状数组哈希动态开点线段树

数组2

题目背景

北北的面前出现了一个数组,他想给这个数组加上几个操作:区间加,单点查询。

题目描述

有一个长度为 2×10182\times 10^{18},下标范围为 [1018,1018)[-10^{18},10^{18}) 的数组,一开始值均为 00,你要支持两种操作:

  1. opop11,则输入 l,r,kl,r,k,将 aa 数组的 [l,r][l,r] 加上 kk
  2. opop22,则输入 xx,询问 axa_x

共执行 mm 次。

输入输出

输入

第一行两个正整数,表示 mm

下面有 mm 行,每行四个或两个正整数,输入如题目描述。

输出

op=2op=2,输出一行正整数,表示答案。

样例

3
1 1 2 1
1 1 2 1
2 1
2

数据范围

1018<l,r,x<1018,m<105,k<3,op=-10^{18}<l,r,x<10^{18},m<10^5,k<3,op= {1,21,2}

保证 l,rl,r 均在 (1018,1018)(-10^{18},10^{18}) 之间。

如果你认为你的代码复杂度没错,但是 TLETLE,可以在头文件下加上这个:

#define fastcall __attribute__((optimize("-O3")))
#pragma GCC optimize(2)
#pragma GCC optimize(3)
#pragma GCC optimize("Ofast")
#pragma GCC optimize("inline")
#pragma GCC optimize("-fgcse")
#pragma GCC optimize("-fgcse-lm")
#pragma GCC optimize("-fipa-sra")
#pragma GCC optimize("-ftree-pre")
#pragma GCC optimize("-ftree-vrp")
#pragma GCC optimize("-fpeephole2")
#pragma GCC optimize("-ffast-math")
#pragma GCC optimize("-fsched-spec")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("-falign-jumps")
#pragma GCC optimize("-falign-loops")
#pragma GCC optimize("-falign-labels")
#pragma GCC optimize("-fdevirtualize")
#pragma GCC optimize("-fcaller-saves")
#pragma GCC optimize("-fcrossjumping")
#pragma GCC optimize("-fthread-jumps")
#pragma GCC optimize("-funroll-loops")
#pragma GCC optimize("-freorder-blocks")
#pragma GCC optimize("-fschedule-insns")
#pragma GCC optimize("inline-functions")
#pragma GCC optimize("-ftree-tail-merge")
#pragma GCC optimize("-fschedule-insns2")
#pragma GCC optimize("-fstrict-aliasing")
#pragma GCC optimize("-falign-functions")
#pragma GCC optimize("-fcse-follow-jumps")
#pragma GCC optimize("-fsched-interblock")
#pragma GCC optimize("-fpartial-inlining")
#pragma GCC optimize("no-stack-protector")
#pragma GCC optimize("-freorder-functions")
#pragma GCC optimize("-findirect-inlining")
#pragma GCC optimize("-fhoist-adjacent-loads")
#pragma GCC optimize("-frerun-cse-after-loop")
#pragma GCC optimize("inline-small-functions")
#pragma GCC optimize("-finline-small-functions")
#pragma GCC optimize("-ftree-switch-conversion")
#pragma GCC optimize("-foptimize-sibling-calls")
#pragma GCC optimize("-fexpensive-optimizations")
#pragma GCC optimize("inline-functions-called-once")
#pragma GCC optimize("-fdelete-null-pointer-checks")

虽然提高不了多少效率

友情提示:用 STLSTL 会因常数大而 TLETLE,建议手写。