声潮颁奖晚会倒计时 2 天|忙疯了,我要曝光晚会内幕!
转自微信公众号 “CUC 广播台”,本篇推送的头图、排版运营皆由小明制作。为了更好的阅读体验,请前往 微信公众平台 阅读。 ↓↓活动合作↓↓ ↓↓微信↓↓ ↓↓微博↓↓
掷地有声|到底是谁的人生在易如反掌啊?
转自微信公众号 “CUC 广播台”,本篇推送的运营由小明制作。为了更好的阅读体验,请前往 微信公众平台 阅读。 # 人生易如反掌 #成功百景图 最近,一段“人生,易如反掌”的台词在网上爆火,源自日本电视剧《四重奏》。剧中女孩有朱的逆袭故事,激发了无数年轻人的共鸣。这不仅是对“丧文化”的有力反击,更是一种积极心态的体现。在小红书上,“考研上岸”的分享,传递着喜悦与正能量,激励着追梦人。面对他人的成功,我们不必自卑或焦虑。每个“易如反掌”的背后,都是坚持不懈的努力。让我们一起以“易如反掌”的心态,面对生活中的挑战,相信“轻舟必过万重山”,每个人的人生都能易如反掌! ...
〔主机註記〕第 14 周主机註記 (May.13 - May.19)
第 14 周主机註記 月曜日 (May.13) 在高强度体育运动后之后需要的不是休息 而是: 更高强度的脑力劳动 1000 米之后 火曜日 (May.14) 水曜日 (May.15) 木曜日 (May.16) 金曜日 (May.17) 土曜日 (May.18) 日曜日 (May.19)
構造
構造 800 Q.\Large\mathcal{Q}.Q. 給定 nnn 和 kkk,找出長度最小的字符串 sss,使得所有長度爲 nnn 的用前 kkk 个小寫英文字母組成的字符串都是 sss 的子串。(CF1925A. We Got Everything Covered!) A.\Large\mathcal{A}.A. s=abc…xabc…x…abc…xs=abc\dots xabc\dots x\dots abc\dots xs=abc…xabc…x…abc…x Q.\Large\mathcal{Q}.Q. 規定一个數列的求和方法,從前向後遍歷,若這一項大於前一項,按常規方式求和,否則將和清零。在 1 到 n 的全排列中找出和的最大值。(VJwin4D, CF1728B. Best Permutation) A.\Large\mathcal{A}.A....
2024WHCPC|May.11 CUC2024 区域赛重现 #13
2024 ICPC National Invitational Collegiate Programming Contest, Wuhan Site
有事大家谈|我难道不是你的嫡长闺吗?
转自微信公众号 “CUC 广播台”,本篇推送的头图由小明制作。为了更好的阅读体验,请前往 微信公众平台 阅读。 文案 / 专题组 郭彤轩 付娆 张春玉 排版 / 宣推部 任嘉靓 头图 / 宣推部 陈旻庚 主播 / 专题组 卢芸迪 王鹏 制作 / 技术部 张津玮 马伊娜 编辑 / 宣推部 胡蕾 ↓↓微信↓↓ ↓↓微博↓↓ ↓↓节目表↓↓
樹上問題 - 樹形 DP
Tree 1234567891011121314151617181920212223242526272829303132333435363738struct node { string data; int l, r;}t[10005];void pretvs(int k) { // 先序遍历:先遍历根节点,然后遍历左节点,最后遍历右节点 if (k == 0)return; cout << t[k].data; if (t[k].l != 0) pretvs(t[k].l); if (t[k].r != 0) pretvs(t[k].r);}void intvs(int k) {// 中序遍历:先遍历左节点,然后遍历根节点,最后遍历右节点(大概可以理解为把树平面投影至二维从左到右) if (k == 0)return; if (t[k].l != 0) intvs(t[k].l); cout << t[k].data; if (t[k].r...
樹上問題 - 樹剖 啓發式合併
Segment Tree on Tree Heavy Path Decomposition 树链剖分 把一棵树分割成若干条链,以便于维护(路径、子树)信息。 重链剖分 (Heavy Path Decomposition) 从树上每个 轻节点 出发,不断向下走 重边,构成一条链。这样,树被剖分成了 lll 条链(lll 是轻节点的数量)。对于节点数为 nnn 的树,从任意节点向上走到根节点,经过的轻边数量不超过 logn\log nlogn。 使用两次 DFS 完成重链剖分。 12345678910111213141516171819202122232425262728293031323334353637const int N = 1e6 + 8;std::vector<int> E[N];int fa[N], hson[N], siz[N], dep[N], top[N];int unix, dfsn[N], dfsnR[N], tdfsn[N]; // DFS 树: 时间戳 DFS 序 子树的最大 DFS 序 DFS 序对应的节点编号void...
樹上問題 - 樹形 DP
TreeDP 树,有根有点权。点集 SSS 满足:若父节点 ∈S\in S∈S,则子节点 ∉S\not\in S∈S。最大化 SSS 点权和。( 树的最大独立集 ) 12345678910int n, w[N], dp[N][2];void dfs(int u) { dp[u][1] = w[u]; for (auto v : E[u]) { dfs(v); dp[u][0] += max(dp[v][0], dp[v][1]); dp[u][1] += dp[v][0]; }}print(max(dp[rt][0], dp[rt][1])); 树,有根有点权。mmm 元点集 SSS 满足:若子节点 ∈S\in S∈S,则父节点 ∈S\in S∈S。最大化 SSS 点权和。( 树上背包 ) 123456789101112int n, m, w[N], dp[N][M];void dfs(int u) { dp[u][1] = w[u]; ...
樹上問題 - 樹形 DP
Diameter 法 1 两次 DFS。 12345678910111213141516171819202122232425262728293031323334vector<pair<int, int> > E[N];int c; // 直径的端点 int lst[N], nxt[N], vis[N];int dep[N], dis[N];void dfs(int u, int fau = 0) { lst[u] = fau; // 记录路径 for (auto [w, v] : E[u]) { if (v != fau) { dep[v] = dep[u] + w; if (dep[v] > dep[c]) c = v; dfs(v, u); } }} // 两轮 DFS 找到距离根节点最远的点 void dfs2(int gfa, int u, int fau =...