摘要:
Abstract 第二次打 CodeForce 。 Update 2024.8.16 C 题被 hack 掉了(手动捂脸),代码已经更新。 2024.8.17 补了 F 题 。 A. Primary Task Idea 签到题。 意思就是说给一个字符串,要你判断一下前两位是不是 10 ,除去前两位后 阅读全文
摘要:
Abstract 传送门 Idea 显然是一个差分约束系统。不妨用 dist[i] 表示前 i 个位置种的树的数目,那么,容易得出下列方程: dist[i] >= dist[i-1] dist[i] - dist[i-1] <= 1 (每个位置至多能种一颗树) 题目要求 b 到 e 之间至少种 t 阅读全文
摘要:
Abstract 记录一些自己写的算法模板,防止重复造轮子。 图论 邻接表 Code namespace graph { int n; const int maxn = 10000000; int head[maxn]; int cnt; struct Edge { int next, to, va 阅读全文
摘要:
Abstract 传送门 这题是线段树+离散化的典型例子。 Idea 题目要求我们求出在至多只改变一朵花种植时间的情况下,最多有多长的时间是有且只有一朵花开放的。种花可以视为给起始时间到中止时间的区间 +1 ,挖走一朵花,只用在原来的起始时间到中止时间的区间 -1,即可,自然的想到用线段树去维护这个 阅读全文
摘要:
Abstract 传送门 很有意思的一道题,需要巧妙的利用异或的结合律。 Idea 不妨取 1 为根节点,然后从 1 出发遍历整棵树,将 1 到 n 节点的路径异或和记录为 dis[i] ,那么,显然有从 i 到 j 的路径的异或和为 dis[i] ^ dis[j]。 Code 爱来自 namesp 阅读全文
摘要:
Abstract 介绍一下扫描线的经典用法。 命名空间还挺好用的。 A-扫描线(模板) Idea 想象现在有一根线正在从左向右扫描,那么,我们就可以通过纵坐标上区间的覆盖情况去确定扫过的矩形覆盖的面积,区间覆盖情况可以用线段树去维护。实现细节见代码注释。 Code #include <bits/st 阅读全文
摘要:
Abstract 第一次打 CF 的比赛~~~~ A. Legs Idea 签到题,没什么好说的。 Code #include <bits/stdc++.h> using namespace std; int main() { int t; scanf("%d", &t); while (t--) 阅读全文
摘要:
Abstract 传送门 本题是状态压缩+记忆化BFS的典型例子。 Idea 要求从出发点到终点的最短步数, BFS 自然是首选的方法,那么,如何构造搜索的每一个节点呢?考虑到机关的数量比较小,最多 10 种,我们可以考虑用状态压缩去描述机关当前的状态,然后再记录当前的横纵坐标,以及行走的步数即可。 阅读全文
摘要:
Abstract 好难qwq A-Cake Idea 全是博弈!首先来解释题目意思。 phase 1:给出一颗树,根节点为 1 ,树上每一条边的权值为 0 或者 1。初始时刻,根节点处有一只小马,小 G 和 小 O 依次控制小马移动,每次只能向子节点移动,若当前节点是叶节点,phase 1 结束。在 阅读全文
摘要:
Abstract 传送门 也算是状压 dp 模板题?不过这个数据给的有点阴间了,空间不够用,需要搞一个奇妙的优化。 Idea 所谓状压,就是用数字表示当前状态,比如说 0110100 这个数字,我们可以把 01 分别看作是是否到达过第 i 个点的标记。那么我们可以用 dp[i][j] 表示第 i 个 阅读全文