摘要: 题目描述 分析 代码 #include<cstdio> #define rg register inline int read(){ rg int x=0,fh=1; rg char ch=getchar(); while(ch<'0' || ch>'9'){ if(ch=='-') fh=-1; 阅读全文
posted @ 2020-10-29 11:32 liuchanglc 阅读(183) 评论(0) 推荐(1) 编辑
摘要: 题目描述 分析 设$f[i]$ 为从 \(i\) 走到 \(i+1\) 的步数 初始值 \(f[i]=2\) 则 \(f[i]=\sum_{i=p[i]}^{i}f[i]\) 考试的时候用树状数组维护的前缀和 其实这东西也可以拿一个数组记录 代码 #include<cstdio> #include< 阅读全文
posted @ 2020-10-29 11:26 liuchanglc 阅读(98) 评论(1) 推荐(1) 编辑
摘要: 题目描述 分析 考虑自底向上贪心 \(f[x][k]\) 表示 \(x\) 下面距离为 \(k\) 的需要灭火器的房间数,\(g[x][k]\) 表示 \(x\) 下面距离为 \(k\) 的多余灭火器数 每个灭火器和房间的匹配在 \(lca\) 处处理 每次假设子树里已经最优了,那么 \(f[x][ 阅读全文
posted @ 2020-10-29 11:19 liuchanglc 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 题目描述 分析 看到 \(k \leq 10\) 和有关奇偶的问题就应该联想到状压 \(DP\) 我们用状态 $0$ 表示表示到当前的点有偶数条路径,用 $1$ 表示到当前的点有奇数条路径 对于每一层的点,我们存储正向和反向时该点能到达的点的集合 然后分两种情况转移即可 时间复杂度 \(O(mk \ 阅读全文
posted @ 2020-10-29 11:13 liuchanglc 阅读(95) 评论(1) 推荐(0) 编辑
摘要: 题目描述 \(EZ\) 每周一都要举行升旗仪式,国旗班会站成一整列整齐地向前行进。 郭神摄像师想要选取其中一段照下来。他想让这一段中每个人的身高成等比数列,展示出最萌身高差。但他发现这个太难办到了。于是他决定放低要求,让等比数列的每两项之间可以是不连续的(例如:$2$, $4$, $16$, …)。 阅读全文
posted @ 2020-10-29 11:06 liuchanglc 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 题目描述 分析 这道题比较关键的一点就是要看出最终牌数的种类数不会超过 \(\sqrt{n}\) 种 知道了这个性质我们就可以用 \(vector\) 维护一个有序的序列 \(vector\) 中存放牌数的大小和有多少堆这样的牌 每次二分插入和删除即可 时间复杂度 \(O(m\sqrt{n})\) 阅读全文
posted @ 2020-10-29 06:21 liuchanglc 阅读(133) 评论(0) 推荐(1) 编辑