From f9b5a94c128c0ac2a0f3921013a4becca173a716 Mon Sep 17 00:00:00 2001 From: Zengtudor Date: Mon, 18 Aug 2025 11:50:38 +0800 Subject: [PATCH] update --- src/8/16/trionic-array-ii.cpp | 53 ++++++++++++++++++++++++++ src/8/18/segtree_add.cpp | 72 +++++++++++++++++++++++++++++++++++ 2 files changed, 125 insertions(+) create mode 100644 src/8/16/trionic-array-ii.cpp create mode 100644 src/8/18/segtree_add.cpp diff --git a/src/8/16/trionic-array-ii.cpp b/src/8/16/trionic-array-ii.cpp new file mode 100644 index 0000000..9494853 --- /dev/null +++ b/src/8/16/trionic-array-ii.cpp @@ -0,0 +1,53 @@ +#include +#include +#include +using namespace std; + +class Solution { +public: + long long maxSumTrionic(vector& nums) { + vector dp(nums.size()); + cout<0 && (l==1||dp[l-1]!=dp[l-2]) && nums[l]>0){ + l--; + lsum+=nums[l]; + cout<<"l:"< v={1,4,2,7}; + cout< +#include +#include +#include +#include + +using ll = int64_t; + +std::vector t; +std::vector nums; + +ll create(ll l, ll r, ll idx) { + if (l == r) { + t[idx] = nums[l]; + return t[idx]; + } + ll mid = (l + r) / 2; + t[idx] = std::min(create(l, mid, 2 * idx + 1), create(mid + 1, r, 2 * idx + 2)); + return t[idx]; +} + +void update(ll l, ll r, ll idx, ll pos, ll val) { + if (l == r) { + t[idx] = val; + return; + } + ll mid = (l + r) / 2; + if (pos <= mid) { + update(l, mid, 2 * idx + 1, pos, val); + } else { + update(mid + 1, r, 2 * idx + 2, pos, val); + } + t[idx] = std::min(t[2 * idx + 1], t[2 * idx + 2]); +} + +ll query(ll cur,ll ql,ll qr,ll l,ll r){ + if(qr::max(); + if(ql<=l && r<=qr)return t[cur]; + ll mid = (l+r)/2; + return std::min( + query(cur*2+1, ql, qr, l, mid), + query(cur*2+2, ql, qr, mid+1, r) + ); +} + +int main(){ + // 区间min 单点修改 + ll n; + std::cin>>n; + t.resize(4*n); + nums.resize(n); + for(ll i=0; i>nums[i]; + } + create(0, n - 1, 0); + ll q; + std::cin>>q; + while(q--){ + ll idx, val; + std::cin>>idx>>val; + idx--; + update(0, n - 1, 0, idx, val); + std::cout << t[0] << "\n"; + } + std::cin>>q; + while(q--){ + ll l,r; + std::cin>>l>>r; + l++,r++; + std::cout<