2025/2/9~10 集训 DP IV & V
昨天没写,今天一起补上。 寒假集训(动态规划四)补 - 题单 - 洛谷 | 计算机科学教育新生态 寒假集训(动态规划五)补 - 题单 - 洛谷 | 计算机科学教育新生态 D4T1 #(subset sum = K) with Add and Erase/背包の撤销 题面 原题面 ABC321F 题意 $Q$ 次询问,每次加入或取出一个物品,求此时维护出价值 $K$ 的方案数。 思路 用 $dp[j]$ 表示前 $i$ 次操作后凑出 $j$ 的方案数,有 $dp[j]`=dp[j]+dp[j-x]$ ,可推出柿子。 代码 Submission #62645136 D4T2 Infected Tree/简单染色问题 题面 原题面 CF1689C 题意 给一棵树,节点有点权,一个节点的价值为包含该节点的连通块的权值之和的最大值。求每个节点的价值? 思路 定义 $siz[u]$ 表示以 $1$ 为根节点时,子树 $u$ 的大小 $f[u]$ 表示表示以 $1$ 为根节点时,子树 $u$ 中所有节点 $siz$ 之和 $g[u]$ 表示以 $u$ 节点为根是,所有节点的子树的...
2025/2/8 集训 DP III
在听这个,很上头。 今天挺逆天,就树的那道题有 $60$ 分qwq,写不下去了。 T1 Porcelain 题面 原题面 CF148E $n$ 个货架,用二维数组表示价值,每个货架只能取出头部若干和尾部若干。取 $m$ 个物品价值之和最大多少。 代码 1234567891011121314151617181920212223242526272829303132333435363738int dp[N][M];int val[N][N];int num[N][N];int siz[N];int pre[N],suf[N];int n,m;signed main(){ //输入 n=read(); m=read(); for(int i=1;i<=n;i++){ siz[i]=read(); for(int j=1;j<=siz[i];j++){ num[i][j]=read(); } } //预处理 val[i][j] 第 i 个货架选 j 个最大贡献 for(int...
2025/2/7 集训 DP II
赛事得分:$100 + 0 + 50 + 30$ 鉴定为史。 T1 Palindrome Basis 题面 原题面 CF1673C 题意 问一个数拆成回文数,有多少种拆分方案。 思路 完全背包。想了一个小时差点没想出来。然后局势就很明朗了。 代码 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253// Contest code#include<iostream>#include<cstdio>#include<cmath>#include<queue>#include<cstring>#include<algorithm>//#define int long longusing namespace std;typedef long long ll;typedef pair<int,int> pii;const ll inf=1e18;const int...
2025/2/6 集训 DP I
赛事得分:$100 + 0 + 12 + 30$ 鉴定为史。 T1 Running Miles / 最佳の锻炼 题面 原题面 CF1826D Luogu 题意 给一个数组,选取一个区间 $[l, r]$ ,收益为区间最大的三个值减去区间长度,求最大收益 思路1(非动态规划) 令选择的数为 $a_l,a_m,a_r$ ,易得 $l = a_l \leq a_m \leq a_r = r$ 。 将柿子整理为 $(a_l + l) + a_m + (a_r - r)$ ,可以用前缀/后缀最大值优化,枚举 $a_m$ ,答案即为 $pre[i-1]+a_i+suf[i+1]$ ,复杂度 $\text{O}(n)$...
标签外挂笔记
带 下划线 的文本 带 着重号 的文本 带 波浪线 的文本 带 删除线 的文本 键盘样式的文本 command + D 密码样式的文本:这里没有验证码 彩色文字 在一段话中方便插入各种颜色的标签,包括:红色、黄色、绿色、青色、蓝色、灰色。 超大号文字 文档「开始」页面中的标题部分就是超大号文字。 Volantis A Wonderful Theme for Hexo default info success error warning bolt ban home sync cogs key bell 自定义font awesome图标 纯文本测试 支持简单的 markdown 语法 支持自定义颜色 绿色 + 默认选中 黄色 + 默认选中 青色 + 默认选中 ...
随笔之二
写在前面 聊聊压力、生活、音乐和一滩烂泥。 噢多麼美麗的一顆心 怎麼會 怎麼會 就變成了一灘爛泥 噢多麼單純的一首詩 怎麼會 怎麼會 都變成了諷刺 我想要說的 前人們都說過了 我想要做的 有錢人都做過了 我想要的公平都是不公們虛構的 我对于摇滚的态度很奇怪。有时候听着嫌吵,有时候却像珍宝一样握着爱不释手。我听歌喜欢按照专辑听,一次必须听完一整张。在这个快时代里可能显得有些奇怪,但是专辑和歌单不一样。专辑是作者给自己做的诗集,作品里有起承转合,歌单则是后人整理的,只有精华,却总少了些什么。专辑里有电影开场一样的 Intro...
随笔之月
在我心里,月亮是美好的象征,总是会把月亮看成“お月様”差不多的存在。小的时候,夜空还稍微明朗一些的时候,天上除了月亮也都其他的星星。数星星之类的正常回忆不怎么想说。在那是我觉得月亮和其他的星星没什么不同,只是大一点、明一点、有“阴晴圆缺”而已。 现在已经很久没看到过夜空中的星星了。对月亮感情最深的时候初一和初二。那时每天骑车上下学,晚自习下课是九点。在熟悉到不能再熟悉的、钢筋混凝土的丛林之间,只有月亮有些新意。但是月亮总不是想象中的慷慨大方的,要么是被楼房卡住视角、要么就是藏在盆地的云层之上,只有偶然转到路口时,抬头望去,月亮就挂在那栋楼上面。 我知道我的文笔很烂,完全讲不清楚月亮的美和我对月亮的感受。日复一日的两点一线,月亮却给了我生活中的一点“差异化”。看着月相,数着日子,能给生活创造点细微的不同。 ——中秋前夕 2024/R6/113-9-16
倍增 LCA 笔记
1234567891011int fa[N],st[N][20],dep[N];void dfs(int u,int f,int d){ fa[u]=f;dep[u]=d;st[u][0]=f; for(int i=1;i<=19;i++){ st[u][i]=st[st[u][i-1]][i-1]; } for(auto v:G[u]){ if(v==f||v==u) continue; dfs(v,u,d+1); }} 以上为 dfs 函数。dfs 函数的意义是预处理每个点 $N$ 向上跳跃 $2^i (0 \leq i \leq 19)$ 个节点的结果。 1234567891011int lca(int x,int y){ if(dep[x]<dep[y]) swap(x,y); for(int k=19;k>=0;k--){ if(dep[ st[x][k]...
题解 P11496
题目:P11496 [ROIR 2019 Day 1] 完全平方 题意 给出一个整数 $k$ ,寻找 $i, j \in \mathbb{N}$ 使得 $k+i^2=j^2$ ,求 $j$ 的最小值。若没有满足的取值,则输出 none 。 思路 对于 $k=0$ 的情况,原方程可化为 $i^2=j^2$ ,当 $i=0$ 时 $j$ 取得最小值 $0$ 。 对于 $k \neq 0$ 的情况,我们可以把原方程整理如下: $$k=j^2-i^2$$ $$k=(j+i)(j-i)$$ 令 $p=i+j$ , $q=j-i$ ,那么 $ i=\frac{p-q}{2}$ ,$ j=\frac{p+q}{2}$ 。 我们可以从 $1$ 到 $\sqrt{|k|}$ 的范围内遍历 $k$ 的所有因数,判断此时分解出来的因数 $p,q$ 是否能化为 $k=pq=(j+i)(j-i)$ 的形式,如果可以的话就更新 $j$ 的最小值,且这个方法正负数同理。 时间复杂度 $\text{O}(\sqrt{|k|})$...
题解 P11506
题目:[ROIR 2017 Day 1] 校园 题意 一个表格有 $n$ 行,无限多列,在每一列中要求行数为 $k$ 的倍数的格子里有 $x$ 个数,其他各自中有 $y$ 个数,格子中的数按照自然数顺序排序。共 $q$ 次询问,求给出的数 $a_1, a_2, \dots, a_q$ 在表格中的行数。 下图是一种 $n = 7$, $k = 3$, $x = 2$, $y = 3$ 的情况,同题面样例: 思路 如果对于每一次询问,直接按照题意模拟填数的话,时间复杂度为 $\text{O} (qn)$ ,显然只能通过 subtask #1 。 考虑优化,规定每填 $k - 1$ 次 $y$ 和 $1$ 次 $x$ 为一个周期。 我们可以预处理出每一列填入数字的数量和一个完整周期内填入数字的数量 $S_T$ 和 $S_k$ ,如果 $a_i > S_T$ , 那么 $a_i$ 所在的行数与 ${a_i}^{\prime} = a_i \bmod S_T $ (${a_i}^{\prime} < S_T$) 所在的行数相同,可以缩小一定范围的常数。 接下来对于每次询问...