有事大家谈|我难道不是你的嫡长闺吗?
转自微信公众号 “CUC 广播台”,本篇推送的头图由小明制作。为了更好的阅读体验,请前往 微信公众平台 阅读。 文案 / 专题组 郭彤轩 付娆 张春玉 排版 / 宣推部 任嘉靓 头图 / 宣推部 陈旻庚 主播 / 专题组 卢芸迪 王鹏 制作 / 技术部 张津玮 马伊娜 编辑 / 宣推部 胡蕾 ↓↓微信↓↓ ↓↓微博↓↓ ↓↓节目表↓↓
樹上問題 - 樹形 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 =...
樹上問題 - 樹形 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...
〔主机註記〕第 13 周主机註記 (May.6 - May.12)
第 13 周主机註記 月曜日 (May.6) 每次 爲什麽我每次看電影的時候就會莫名很羨慕你, 快走開, 綜合發展型全面人才學科交叉聖手。 火曜日 (May.7) 水曜日 (May.8) 木曜日 (May.9) 金曜日 (May.10) 別的隊伍打重現賽,激烈討論五小時 我和隊友討論社科類論文選題五小時 要長腦子了 土曜日 (May.11) 日曜日 (May.12)
声音潮流季|获奖名单公示
转自微信公众号 “CUC 广播台”,本篇推送的头图、排版运营皆由小明制作。为了更好的阅读体验,请前往 微信公众平台 阅读。 ↓↓活动合作↓↓ ↓↓微信↓↓ ↓↓微博↓↓
[連載]《不囿晝夜·中外历史纲要》(六)
《不囿晝夜·中外历史纲要》辛丑第五 高壹肆班(四) 走班(下)
指针
指针 一、指针的基本概念 变量的地址 获取 变量在内存中的 起始地址,使用 & 变量名。 123int a;cout << (void*)&a << '\n'; // 十六进制cout << (long long)&a << '\n'; // 十进制 指针变量 简称 指针 , 存放 变量在内存中的起始地址,使用 数据类型 * 变量名 , 数据类型 * 也是一种数据类型,即 x 型指针。 对指针赋值 使用 指针 = & 地址,称为指向某变量,被指向的类型称为基类型。 12345int a;int* pa = &a;cout << (long long)&a << '\n';cout << (long long)pa << '\n';// 以上两行的输出结果相同 二、使用指针 注意:声明指针变量后必须初始化。 * 运算符(即...
C++ 面向对象
本笔记基于中国大学慕课《C/C++ 语言程序设计(下)(沈萦华老师)》及「OpenJudge - 信通学院编程小组」。 [[#§0 C++ 基础 |§0 C++ 基础]] [[#§0.1 指针 |§0.1 指针]] [[#§0.2 命名空间 |§0.2 命名空间]] [[#§0.3 引用 |§0.3 引用]] [[#§0.4 函数 |§0.4 函数]] [[#§1 类和对象基本概念与特性 |§1 类和对象基本概念与特性]] [[#§1.1 类的基本概念 |§1.1 类的基本概念]] [[#§1.2 构造函数与析构函数 |§1.2 构造函数与析构函数]] [[#§1.3 this 指针 |§1.3 this 指针]] [[#§2 类的进阶特性 |§2 类的进阶特性]] [[#§2.1 静态成员 static|§2.1 静态成员 static]] [[#§2.2 常量成员函数 const|§2.2 常量成员函数 const]] [[#§2.3 友元 friend|§2.3 友元 friend]] [[#§2.4 ...



![[連載]《不囿晝夜·中外历史纲要》(六)](/img/stz-cover.webp)