UCSD ICPC Club Nov20 D

Since it’s guaranteed that each queried $v$ exists, this problem is not necessarily online.
First construct the entire tree, and then DP on the tree.
For each vertex, maintain two values, $minv$ and $maxv$, representing the minimum and maximum sums of the substring of the path from the root to this vertex.
Transition function:
$dpmax[i] = max(x, dpmax[v] + x)$
$dpmin[i] = min(x, dpmin[v] + x)$
Time complexity $O(n)$

Actually, this problem is a easy version, where the queries do not have to start from the root; they can be between any two vertices.
If it’s between any two vertices, first construct the entire tree, with each vertex storing the timestamp it was added and its weight.
Preprocess three arrays:
ancestor[i][j] represents the $2^j-th$ ancestor of vertex $i$
maxv[i][j] represents the maximum value of the path from vertex $i$ to its $2^j-th$ ancestor
minv[i][j] represents the minimum value of the path from vertex $i$ to its $2^j-th$ ancestor
Then preprocess the DP array. For each query, increase both vertex upwards by powers of two to find the answer. The complexity is $O(n\log)$.

For the harder version, another approach is heavy-light decomposition, with a complexity of $O(n\log^2)$. If require online, Link-Cut Tree is a solution.

// compile: make data
// run: ./data < data.in
#include <bits/stdc++.h>
using namespace std;
#pragma GCC optimize("O3,unroll-loops")
#ifdef LOCAL
#include <debug/codeforces.h>
#define debug(x...) _debug_print(#x, x);
#define Debug(x...) _debug_print_format(#x, x);
std::ifstream terminal("/dev/tty");
#define PP cerr<<"\033[1;30mpause...\e[0m",terminal.ignore();
#else
#define debug(x...)
#define Debug(x...)
#define PP
#endif
template<typename...Args> void print_(Args...args){((cout<<args<<" "),...)<<endl;}
#define rep(i,a,b) for(int i=(a);i<(int)(b);++i)
#define sz(v) ((int)(v).size())
#define print(...) print_(__VA_ARGS__);
#define FIND(a, x) ((find(a.begin(),a.end(),(x))!=a.end())?1:0)
#define cmin(x,...) x=min({(x),__VA_ARGS__})
#define cmax(x,...) x=max({(x),__VA_ARGS__})
#define INTMAX (int)(9223372036854775807)
#define INF (int)(1152921504606846976)
#define NaN (int)(0x8b88e1d0595d51d1)
#define double long double
#define int long long
#define uint unsigned long long
#define MAXN 200010

void solve() {
    int q; cin >> q;
    int idx = 0;
    // min, max
    vector<pair<int, int>> dp(q + 10, {INF, -INF}), num(q + 10);
    dp[idx] = {1, 1};
    num[idx] = {0, 1};
    while (q--) {
        string s; cin >> s;
        if (s[0] == '+') {
            int v, x; cin >> v >> x; --v;
            dp[++idx] = {min(x, dp[v].first + x), max(x, dp[v].second + x)};
            num[idx] = {min(num[v].first, dp[idx].first), max(num[v].second, dp[idx].second)};
            // debug(v, x, dp[idx], num[idx])
        }
        else if (s[0] == '?') {
            int u, v, x; cin >> u >> v >> x; --u, --v;
            cout << (x >= num[v].first && x <= num[v].second ? "YES" : "NO") << endl;
        }
    }
}

int32_t main() {
    ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);

    int _; cin >> _;
    while (_--) solve();

    return 0;
}

Comments

  1. 10 months ago
    2025-12-06 2:22:38

    Alright, so keobet88 showed up on my radar. Checked it out and the interface is clean. Seems reliable for kèo. What do you guys think?

  2. 9 months ago
    2025-12-19 13:37:31

    55winvip, that’s where the real money is at! It’s the VIP experience, try it. It’s the only place where it is! See you at 55winvip.

  3. 9 months ago
    2025-12-29 6:05:41

    9nbetcom, huh? Took it for a spin. Honestly, it’s pretty smooth. Good selection and easy to use! Seems solid. Play responsibly though, yeah? 9nbetcom

  4. 7 months ago
    2026-2-13 0:44:54

    Yo, 66ggplataforma is where it’s at! Been having a blast. Check it out here: 66ggplataforma

  5. 7 months ago
    2026-2-13 0:45:09

    Alright, checking out 515bet5. Heard mixed things, but I gave it a go. Site’s clean and mobile-friendly, which is a plus. Gameplay’s smooth. Worth a look if you need something new. See for yourself: 515bet5.

  6. 7 months ago
    2026-2-13 0:45:25

    Heard 661betvip is trying to step up their game. The VIP program looks interesting if you’re a high roller. Might be worth a shot if you’re looking for some extra perks. Check out what they’re offering: 661betvip.

  7. 7 months ago
    2026-2-18 0:23:22

    Roulette strategy is fascinating – probability & risk are key! Seeing platforms like 747 live com expand options in the Asian market is interesting, especially with their focus on secure, accessible gaming experiences. It’s good to see responsible gaming prioritized.

  8. 6 months ago
    2026-3-14 17:03:36

    Pattern recognition is key in baccarat, but a smooth mobile experience matters too! Platforms like the jl 3 app casino are streamlining access for Filipino players – quick loading & easy navigation are huge wins. It’s about convenience and strategy!

  9. 3 months ago
    2026-6-27 1:30:56

    Interesting breakdown! While the platform features are clear, remember that assessing digital tools needs more than just a feature list. For deeper insights into secure online ecosystems, check out ace super legit. Always approach tech with critical analysis.

  10. 2 months ago
    2026-7-08 0:41:22

    For new users, understanding the APK setup is key! The platform’s diverse games are great, but check out 1333bet apk গেমস for a smooth start. Keep exploring!

  11. 1 month ago
    2026-8-04 11:42:27

    Honestly the game variety here is insane. I spent the whole weekend exploring different slots and everything worked perfectly. Definitely giving rubik88ory a permanent spot in my bookmarks.

  12. 1 month ago
    2026-8-04 11:42:43

    The login process is seamless and the site loads very quickly even on mobile data. Great job! phhaliklogin

  13. 1 month ago
    2026-8-04 11:42:59

    The betting odds here are some of the most competitive I have seen in a while. It is very easy to navigate and place bets quickly. eclasplatasapuestas is now my go-to for sports betting.

  14. 4 weeks ago
    2026-8-23 16:20:19

    This platform reminds me of those late night gaming sessions with friends back home but now I can enjoy it safely from my couch. The graphics are top notch and the payment methods work perfectly with local banks. I love how easy it is to switch between slots and live tables depending on my mood. It feels like a celebration every time I hit a winning streak. mxjokerjewels

  15. 4 weeks ago
    2026-8-23 16:20:35

    Navigating this site on my phone feels incredibly smooth and I never have to worry about those annoying pop ups that ruin my focus. The deposit options are super convenient and my winnings show up in record time. I enjoy how the community stays active and helpful when new players ask questions. It really feels like a neighborhood casino brought online with all the warmth we miss. vn0xbet

  16. 4 weeks ago
    2026-8-23 16:20:51

    Downloading the app was a breeze and it has become my go to for quick betting sessions during lunch breaks. I love how the notifications keep me updated on live matches without being too pushy. The odds are competitive and I always feel confident when I place my wagers here. It is rare to find a mobile platform that balances speed and security this well. ggbetapk

  17. 3 weeks ago
    2026-8-27 21:03:44

    The shift from binary lifting to Link-Cut Trees demonstrates a mastery of dynamic flow optimization. This concept of finding the most efficient path under complex constraints is universal-it applies not only to graph theory but also to optimizing digital user journeys, where seamless access, like finding the best 4777 angel number ভিআইপি option, is paramount for retention.

  18. 3 days ago
    2026-9-15 3:20:09

    The game selection keeps getting better every week and I never run out of new things to try. Whether I want slots or table games the quality stays top notch. I enjoy my gaming time so much more since I joined. npmt63

Send Comment Edit Comment


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
Previous
Next