摘要: 第一个 我按dp找 结果是个二分 我还想半天 这怎么dp 不过 这题目 也很有意义 首先我一直以为vector的low或者upp下标只能用distance求 现在看来是错的 不要再写auto 迭代器写法 用int就行 减初始指针就行 然后二分的话 思路也很好 先存进去 然后在跑t的时候 先开一个指针 阅读全文
posted @ 2024-08-09 22:08 LteShuai 阅读(17) 评论(0) 推荐(0)
摘要: 第一个 这道题 主要思考到一个不可以连续两步 以及最大往左移动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] + 阅读全文
posted @ 2024-08-09 21:24 LteShuai 阅读(28) 评论(0) 推荐(0)
摘要: 第一个 这道题考察了数论 但是很奇葩的是他只是要求前后gcd不是1就行了 所以 我们可以想到fi+1是可以直接继承fi的 如果他们俩gcd>1 然后观察了数据 这个暴力做不了的 不过牵涉到gcd不就两个做法 一个根号n的做法 求约束 另一个就是埃氏的loglog写法 本题考查后者 前者不适合 因为 阅读全文
posted @ 2024-08-09 18:34 LteShuai 阅读(19) 评论(0) 推荐(0)
摘要: 第一个 开了个二维数组表示删除不删除 然后去重了下 如果前后相差为1的话 ,就可以进行删除的思考 此时i要删除 的话 i-1必须要不删除 如果i不删除的话 存一个前面的max即可 这边注意下可能有重复的数 如果前后相差不为1的话 我们就可以肆无忌惮 怎么搞都行 此题结束 #include <bits 阅读全文
posted @ 2024-08-09 18:19 LteShuai 阅读(19) 评论(0) 推荐(0)