08 2024 档案
摘要:第一个 这道题 我衷心觉得难的 考察递推 首先说下题目 要求你最终放慢 就是每列都要有 每一行也是 否则 那不叫满 考虑如何放置的问题 首先假设我们已经放了x个了 那么x可以由什么推来呢 x你可以理解成现在是边长为x的正方形 那么我们可以由x-1的正方形推过来 就是此时放对角线y=x 推来 然后就是
阅读全文
摘要:第一 这道题可以用dp写也可以暴力去写 着重介绍暴力写法 首先观察数据范围 我们发现n m 都很小 考虑暴力 那如何暴力呢 最原始的想法就是一个个匹配 我们先假设答案都是全选第一个的 如果不是 那么假设第一行选第二个 别的还是都选第一个 然后第一行枚举完 发现没有出答案 证明第一行所有数字都相同 因
阅读全文
摘要:第一个 我按dp找 结果是个二分 我还想半天 这怎么dp 不过 这题目 也很有意义 首先我一直以为vector的low或者upp下标只能用distance求 现在看来是错的 不要再写auto 迭代器写法 用int就行 减初始指针就行 然后二分的话 思路也很好 先存进去 然后在跑t的时候 先开一个指针
阅读全文
摘要:第一个 这道题 主要思考到一个不可以连续两步 以及最大往左移动5位 就像背包一样 所以我们开个二维的dp数组表示 for (int j = 1; j <=z ; j++) { if (i + j *2<= k + 1 &&i-1>=1) { dp[i][j] = max(dp[i][j - 1] +
阅读全文
摘要:第一个 这道题考察了数论 但是很奇葩的是他只是要求前后gcd不是1就行了 所以 我们可以想到fi+1是可以直接继承fi的 如果他们俩gcd>1 然后观察了数据 这个暴力做不了的 不过牵涉到gcd不就两个做法 一个根号n的做法 求约束 另一个就是埃氏的loglog写法 本题考查后者 前者不适合 因为
阅读全文
摘要:第一个 开了个二维数组表示删除不删除 然后去重了下 如果前后相差为1的话 ,就可以进行删除的思考 此时i要删除 的话 i-1必须要不删除 如果i不删除的话 存一个前面的max即可 这边注意下可能有重复的数 如果前后相差不为1的话 我们就可以肆无忌惮 怎么搞都行 此题结束 第二题 这题和上一题相对比起
阅读全文
摘要:题目 题意简述 给定一个序列 。 A 先选择至多 个数删除,B 在剩下的数中选择至多 个数乘上 ,双方都做出最优选择,问最终序列和最大是多少。 题目思路 对于 B 来说肯定是尽量让最大的那几个数乘上 ,对
阅读全文
摘要:题目 题目思路 首先这道题我并不没有用树状数组然后离散化去写,因为不会,我的思路是逆序对。 分析以下给的样例: 2 6 3 9 4 5 1 8 7 10 -2 100 我做这道题的思路就是一个初中物理追及相遇的想法,比如对于 与 这两个点来说,我们可以发现是只
阅读全文
摘要:题目 迷人的分割线 题意 “如果多个乘客到某座位的距离最近且相同那么将会产生爆炸事件”。 可以这么认为一个座位让这些人一起坐上去,至于爆炸的次数,只需要最后统计哪些位子坐的人超过 即可,不用在代码别的地方进行操作。 “发生了多少次爆炸事故”。 其实就是:某个结果中所有的乘客到位子的"边"
阅读全文