2024.2.2 鲜花
aLIEz
決めつけばかり 自惚れを着たチープな hokori で 音荒げても 棚に隠した哀れな 恥に濡れた鏡の中 都合の傷だけひけらかして 手軽な強さで勝取る術を どれだけ磨いでも気はやつれる ふらついた思想通りだ 愛-same-CRIER 愛撫-save-LIAR Eid-聖-Rising HELL 愛してる game 世界の day Don't-生-War Lie-兵士-War-World Eyes-Hate-War A-Z Looser-Krankheit-Was IS das? 受け売り盾に見下してても そこには地面しかない事さえ 気付かぬままに壊れた 過去に負けた鏡の奥 どこまで叫べば位置を知れる とどめもないまま息が切れる 堂々さらした罪の群れと 後ろ向きにあらがう 愛-same-CRIER 愛撫-save-LIAR Aid-聖-Rising HELL I'll-ness Reset-Endじゃない Burst Don't-生-War Lie-兵士-War-World Eyes-Hate-War A-Z 想像High-de-Siehst YOU das? 偽の態度な臆病loud voice 気高さを勘違いした心臓音 狙い通りの幻見ても 満たせない何度も目を開けても どこまで叫べば位置を知れる とどめもないまま息が切れる 堂々さらした罪の群れと 後ろ向きにあらがう 愛-same-CRIER 愛撫-save-LIAR Eid-聖-Rising HELL 愛してる Game世界のDay Don't-生-War Lie-兵士-War-World Eyes-Hate-War A-Z Looser-Krankheit-Was IS das? Leben was ist das? Signal siehst du das? Rade die du nicht weisst Aus eigenem willen Leben was ist das? Signal siehst du das? Rade die du nicht weisst Sieh mit deinen augen
P2305 [NOI2014] 购票
有点牛的题。
在序列上的部分是显,考虑上树。
发现加可撤销直接上,但是可撤销李超要精细卡空间,有没有不用卡空间的呢?
-
可撤销单调栈:
就是你每次插入都二分最终位置而不是依次弹出,这样复杂度就不基于均摊了,并且每次最多修改
个位置,撤销直接撤。然后用树状数组套一下即可优秀空间。
-
点分治:
有根树的点分确实有点牛。
具体的就是对于一颗以
为根的树,先找到它的重心 ,分治上下部分,在统计上部分对下部分的贡献即可。 -
树剖:
朴素树剖是
的。考虑一个很牛的 trick。我们发现对于每个链的划分都是一些重链的前缀和一个重链的中段,考虑预处理出所以重链的贡献,就可以做
了。实现时可以考虑直接将查询挂在重链上先扫一遍,也可以在处理到这条链时考虑对子树的贡献,如果按照第二种写法,就会写成广为人知的链分即 dsu on tree(每次先贡献所有轻儿子,在跑重儿子,最后清空跑轻儿子)。
这里给出可撤销的代码:
Code
#include <bits/stdc++.h> using namespace std; using llt = long long; using ull = unsigned long long; using llf = long double; #define endl '\n' #ifdef LOCAL FILE *InFile = freopen("in_out/in.in", "r", stdin), *OutFile = freopen("in_out/out.out", "w", stdout); #endif const int N = 2e5 + 3; int n, t; llt cq[N], cp[N], cl[N]; class Stk{ private: vector<pair<llt, llt>> stk; int top = -1; stack<tuple<pair<llt, llt>, int, int>> clr; public: void Epl(llt x, llt y){ auto Chg = [&](int p){ if(stk.size() == p) stk.emplace_back(0, 0); clr.emplace(stk[p], p, top); stk[top = p] = {x, y}; }; auto Chk = [&](int k){ auto &[xa, ya] = stk[k - 1]; auto &[xb, yb] = stk[k]; return (ya - yb) * 1. / (xa - xb) > (yb - y) * 1. / (xb - x); }; int l = 1, r = top; while(l <= r){ int mid = l + r >> 1; if(Chk(mid)) r = mid - 1; else l = mid + 1; } Chg(r + 1); } bool Ept(){ return top < 0; } pair<llt, llt> &Get(llt s){ auto Chk = [&](int k){ auto &[xa, ya] = stk[k - 1]; auto &[xb, yb] = stk[k]; return (ya - yb) * 1. / (xa - xb) > s; }; int l = 1, r = top; while(l <= r){ int mid = l + r >> 1; if(Chk(mid)) r = mid - 1; else l = mid + 1; } return stk[r]; } void Re(){ auto &[sk, p, tp] = clr.top(); clr.pop(); stk[p] = sk, top = tp; } }; class Bit{ private: Stk a[N]; int Low(int x){ return x & -x; } public: void Ins(int p, llt x, llt y){ for(int i = p; i; i -= Low(i)) a[i].Epl(x, y); } llt Get(int p, llt k){ auto Val = [&](const pair<llt, llt> &t){ auto &[x, y] = t; return -k * x + y; }; llt ans = 0x3f3f3f3f3f3f3f3f; for(int i = p; i <= N; i += Low(i)) if(!a[i].Ept()) ans = min(ans, Val(a[i].Get(k))); return ans; } void Re(int p){ for(int i = p; i; i -= Low(i)) a[i].Re(); } } bt; struct Gph{ vector<pair<int, llt>> to[N]; void Add(int u, int v, llt w){ to[u].emplace_back(v, w); } void ADD(int u, int v, llt w){ Add(u, v, w), Add(v, u, w); } #define For_to(i, u, v, w, g) for(auto &[v, w] : g.to[u]) } g; llt dp[N], dep[N]; int stk[N], top; void Dfs(int u, llt ds){ dep[stk[++top] = u] = ds; int l = 1, r = top - 1; while(l <= r){ int mid = l + r >> 1; if(dep[stk[mid]] + cl[u] >= ds) r = mid - 1; else l = mid + 1; } dp[u] = bt.Get(l, cp[u]) + cp[u] * ds + cq[u]; bt.Ins(top, ds, dp[u]); For_to(i, u, v, w, g) Dfs(v, ds + w); bt.Re(top), --top; } int main(){ ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr); cin >> n >> t; for(int i = 2; i <= n; ++i){ int f; llt s; cin >> f >> s >> cp[i] >> cq[i] >> cl[i]; g.Add(f, i, s); } bt.Ins(1, 0, 0), stk[top = 1] = 1; memset(dp, 0x3f3f3f3f, sizeof(dp)), dp[1] = 0; For_to(i, 1, v, w, g) Dfs(v, w); for(int i = 2; i <= n; ++i) cout << dp[i] << endl; }
zzz 体验
想了想还是放好了。
早想玩玩二游,在开学的前四天晚上经过不怎么仔细的考虑选择了 zzz。
事实上一共就玩了一坤天,感觉不错。
好像说大改了走格子,反正改了以后的感觉十分不错。
感觉第五章的剧情太赶了,但考虑 1.4 大改,也还能接受。
打斗很爽,难度还是有的,可能是我懒得养,一个二游被我玩出了魂类游戏的感觉也是没救了,感谢闪避,感谢弹刀。
三分钟日常喜了,三分钟日常也没人给我做恼了。
就是抽嘉音结果吧猫又的队都抽出来了确实是地狱了,最后拼尽全力也没出……
某涛:我有理由合理的怀疑一下你这东西的抽取概率(
本来这里应该有一张 zzz 的图,因为没有机会找,所以不放了。
P
本文来自博客园,作者:5k_sync_closer,转载请注明原文链接:https://www.cnblogs.com/xrlong/p/18690966
版权声明:本作品采用 「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0) 进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库