标签: OI

31 篇文章

thumbnail
【转载】笔记 – C++小知识
[原文链接] C++冷知识(逐渐更新) - By 种下一颗草莓 1. 输入 输出 4种输入输出方式 scanf 和 printf cin 和 cout puts gets getchar putchar 3 4 都是针对字符的,3针对字符串,4针对单个字符。 1. 单个字符 以方式1 4 输入单个字符时,空格 回车都会吸收,算作一个…
题解 – [20231110NOIP模拟] Cloud
题目描述 在 $xy-$ 直角坐标平面的天空中,有 $n$ 片四边平行于坐标轴的矩形云朵。每一片云由一个五元组 $(xi,yi,wi,hi,di)$ 表示,其中 $(xi,yi)$ 为云左下角顶点的坐标,$w_i$ 表示云在 $x$ 轴方向的宽度,$h_i$ 表示云在 $y$ 轴方向的长度,$di∈lbrace 0,1rbrace $ 为云的移动方…
题解 – [20231110NOIP模拟赛] 多树
题目描述 给定 $n$ 和 $k$ 棵有 $n$ 个点的树。对于每个点对 $(i,j)$ ,求出其在每棵树上的路径经过的点(含端点)的交集大小。 数据范围: $1 \leq n, k \leq 500$ 时间限制: $2.000s$ 题解 首先明白一个性质:对于某一棵树,考虑 $x$ 在 $(u, v)$ 路径上的充要条件:$dis(u,x) + …
笔记 – 关于两个序列的顺序对 的影响
这个是原题链接 关键在于发现题目是逆序对,实际上你在赛场上直接猜结论(确实需要一定的勇气,毕竟数据不够多,罚时等等)也是可以的,那么我们来推导一下这个性质。 $$\sum{(a_i-b_i)^2} = \sum{[a_i^2 + b_i^2 - 2a_ib_i]} = \sum{(a_i^2 + b_i^2)} - 2\sum {a_ib_i}$$…
题解 – [20231109NOIP模拟] 汪哥图 (wang.cpp)
问题描述 给定一个 $n$ 行 $m$ 列的网格图,每个格子的颜色是蓝色、白色中的一种。白色的格子是障碍点。对于 $2$ 个有公共边的蓝色格子,它们之间是连通的。保证任意 $2$ 个蓝色格子间最多只有 $1$ 条不经过白色格子的路径。现给出 $Q$ 个矩形区域,对每个矩形区域求出对蓝色格子来说的连通块个数(不能经过白色格子和矩形区域外的格子)。 数…
题解 – [20231109NOIP模拟/CF830A] Office Keys
题目大意 在一条数轴上有 $n$ 人 $k$ 把钥匙,每个人能拿且仅能拿一把钥匙,办公室坐标为 $p$ ,所有人同时开始去拿钥匙,然后去办公室。求所有人消耗的最大时长。 每人的坐标在 $a_i$ ,每个钥匙的坐标在 $b_i$ 。 题解 我们先将每个人的坐标和钥匙先排序,然后可以证明: $$\forall a_i\leq a_j\ …
笔记 – 子序列问题
最长上升子序列(LIS) 1. $\mathcal{O}(n^2)$ 做法 设 $dp_{i}$ 表示以i 结尾的答案。所以先枚举一个 $i$ ,再从$1$ 开始枚举 $j$ ,每次看到小于 $a_{j}$ 的数,取一个最大的更新 $dp_{i}$ 。 2. $\mathcal{O}(nlog_n)$ 做法 状态设计: $dp_i$ 表示长度为 $…
笔记 – 各种背包问题
一. 01背包 01背包问题关键在于某个物品取还是不取,状态可以从上一个占用空间转移而来。 for(int i = 1; i <= n; i++) { for(int j = m; j >= c[i]; j--) { dp[j] = max(dp[j], dp[j - c[i]] + w[i]); } } 二. 完全背包 完全背包问题就…
题解 – [CF600E] Lomsat gelral
[题目链接] Lomsat gelral [原题链接] E. Lomsat gelral Lomsat gelral 题面翻译 有一棵 $n$ 个结点的以 $1$ 号结点为根的有根树。 每个结点都有一个颜色,颜色是以编号表示的, $i$ 号结点的颜色编号为 $c_i$。 如果一种颜色在以 $x$ 为根的子树内出现次数最多,称其在以 $x$ 为根的子…
题解 – [20231108NOIP模拟] 爱吃鱼的小Y
期望值(Expectation)是概率论和统计学中的一个重要概念,它表示在一个随机事件或随机变量的多次重复实验中,某个特定数值的平均或期望表现。通常用符号 "$E(X)$" 表示,其中 "$X$" 是随机变量。期望值提供了一个概率分布的数值特征,它可以帮助我们了解随机事件的中心趋势。 在离散随机变量的情况下,期望值的计算可以使用下面的公式: $$&…