摘要: 模拟 采用 \(\Theta (N^2)\) 的算法进行去重,最后用 \(52\) 张卡牌减去即可. 代码 #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> using namespace std; i 阅读全文
posted @ 2024-10-31 12:19 Panda_LYL 阅读(340) 评论(0) 推荐(0)
摘要: 代码 #include<bits/stdc++.h> using namespace std; string s; int ans = 0; int main() { // freopen("number.in", "r", stdin); // freopen("number.out", "w", 阅读全文
posted @ 2024-10-24 12:17 Panda_LYL 阅读(47) 评论(0) 推荐(0)
摘要: 最短路 对于上图,如果我们相知道 $2$ 号工人想要一个 $3$ 阶段的零件,其实是看 $2$ 到 $1$ 有没有一条长度为 $3$ 的路径.但如果要求 $4$ 阶段的路径,那就不一定了. 所以我们直接求一遍最短路,分奇最短路和偶最短路. 处理完后,最后一次 $\Theta (1)$ 的回答,如果路 阅读全文
posted @ 2024-10-24 12:14 Panda_LYL 阅读(40) 评论(0) 推荐(0)
摘要: 背包 因为小伟可以每天进行 $2$ 种操作 无限 次,所以显然可以使用完全背包. 定义状态 $f_i$,表示还剩下 $i$ 时,可以拿到钱的最大值. 再假设小伟今天买了,明天就卖掉. 状态转移方程如下: $f_i=max(f_i,f_{i-p_{k,i}} + p_{k+1,i} - p_{k,i} 阅读全文
posted @ 2024-10-24 12:13 Panda_LYL 阅读(31) 评论(0) 推荐(0)
摘要: 模拟 "公交换乘"按题意模拟即可. 注意:可以使用结构体,但是超过时间的优惠券需要被忽略. 代码 #include<iostream> #include<cstdio> using namespace std; struct node{ int price, deadline, is_use; // 阅读全文
posted @ 2024-10-24 12:12 Panda_LYL 阅读(32) 评论(0) 推荐(0)
摘要: 动态规划 dp 方格取数类似于数字三角形,均可以使用动态规划直接秒杀. 但此题有 \(3\) 个方向:上、右、下.所以可以定义一个三维数组 dp 数组. 假设 \(f_{i, j, 1}\) 是从右、上方到达 \((i,j)\) 的和的最大值. 又有 \(f_{i, j, 0}\) 是从右、下方到达 阅读全文
posted @ 2024-10-23 22:33 Panda_LYL 阅读(147) 评论(0) 推荐(0)
摘要: 短路 这道题目中所含的运算符只有3个:与、或、非. 在与运算和或运算中有2个性质. 进行与运算时,若其中有一个值为0,则这个运算的结果就为0,即无需判断 另1个数是否是0或1. 进行或运算时,若其中有一个值为1,则这个运算的结果就为1,也无需判断 另一个数是否是0或1. 表达式树 根据短路的性质,可 阅读全文
posted @ 2024-10-23 22:31 Panda_LYL 阅读(68) 评论(0) 推荐(0)
摘要: 暴力 使用 $\Theta (n^2)$ 的时间复杂度来解决这题大约能拿到 $60pts$. 即枚举 $p$,再枚举每个选手的分数. 正解 桶是个好东西.我们开一个桶,记录当前分数有多少人. 然后计算获奖人数,分数从大到小进行枚举,直到当前人数 $\ge$ 获奖人数. 代码 #include<ios 阅读全文
posted @ 2024-10-23 22:28 Panda_LYL 阅读(44) 评论(0) 推荐(0)
摘要: 二进制 "优秀的拆分"如果存在,则代表 $n$ 的二进制最低位不是 $1$. $\because 2^0 = 1$ $\therefore$ 当 $n$ 的二进制最低位为 $1$ 时,不存在优秀的拆分. 即 $n$ 不是奇数. 上述条件判断完后,就可以从 $2$ 的 $30$ 次方开始模拟( int 阅读全文
posted @ 2024-10-23 22:27 Panda_LYL 阅读(93) 评论(0) 推荐(0)
摘要: 是模拟吗? 其实是的,虽然 $1 \le n \le 2 \times 10^5$,但是队列是个好东西. 我们定义一个结构体,来存放每一个块的信息,包括类型、起点、终点,将它们放入 队列当中,再使用基于广搜的思想,先处理,再合并,所以需要用到 $2$ 个队列. 注意点 数据中可能会有块的类型全是 $ 阅读全文
posted @ 2024-10-23 22:25 Panda_LYL 阅读(89) 评论(1) 推荐(1)