摘要: 题目链接 一道 dp 板子题。 只需要设 \(dp_{i,j}\) 为前 \(i\) 位 \(\bmod 3\) 为 \(j\) 的方案数的数量即可。 剩下的就看代码了。 参考代码: 点击查看代码 #include<bits/stdc++.h> using namespace std; #defin 阅读全文
posted @ 2023-12-16 00:22 wangmarui 阅读(12) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2023-12-15 16:00 wangmarui 阅读(0) 评论(0) 推荐(0)
摘要: 一道好题。 题目链接 考虑离线操作。 我们可以设 \(a_i\) 为当前 \(i\) 表示的数字,然后直接倒序操作,运用并查集的思想,可以 \(O(n)\) 通过此题。 参考代码: #include<bits/stdc++.h> using namespace std; long long n,a[ 阅读全文
posted @ 2023-12-14 21:52 wangmarui 阅读(11) 评论(0) 推荐(0)
摘要: 题目链接 CF1272D Remove One Element 题意简述 给定一个长度为 \(n\) 的序列,你需要求出至多删除一个数后的这个序列的最长上升子串。 解题思路 首先我们可以想一下这题的弱化版,给定一个长度为 \(n\) 的序列,你需要求出至多删除一个数后的这个序列的最长上升子序列。 这 阅读全文
posted @ 2023-12-12 11:24 wangmarui 阅读(17) 评论(0) 推荐(0)
摘要: 题目链接 CF1904B Collecting Game 题意简述 给你一个由 \(n\) 个正整数组成的序列 \(a\) 和一个分数。如果你的分数大于或等于 \(a_i\),那么你可以将分数增加 \(a_i\),并从序列中删除 \(a_i\),你需要求出对于每一个 \(a_i\) 为你的分数时你可 阅读全文
posted @ 2023-12-10 13:24 wangmarui 阅读(41) 评论(0) 推荐(0)
摘要: 题目链接 一道 dp 的入门题。 \(O(2^n)\): 考虑直接爆搜,可以考虑到所有情况。 \(O(n^2)\): 考虑 \(dp\),设 \(dp_{i,j}\) 代表到达第 \(i\) 层第 \(j\) 个数所能达到的最大值。 状态转移方程为 \(dp_{i,j}=a_{i,j}+\max(d 阅读全文
posted @ 2023-12-08 23:45 wangmarui 阅读(13) 评论(0) 推荐(0)
摘要: 题目链接 数字三角形的变形。 直接在原来的基础上加个判断 \(3\) 倍的就行了。 参考代码: 点击查看代码 #include<bits/stdc++.h> using namespace std; long long n,m,ans=-1e18,a[110][110],dp[110][110][5 阅读全文
posted @ 2023-12-08 21:54 wangmarui 阅读(52) 评论(0) 推荐(0)
摘要: 题目传送门 一道小清新动态规划题,直接设 \(dp[i]\) 表示前 \(i\) 个鼹鼠最多能打到几个,然后状态转移方程也很好想了。 参考代码: 点击查看代码 #include<bits/stdc++.h> using namespace std; long long n,m,ans,dp[1001 阅读全文
posted @ 2023-12-08 09:56 wangmarui 阅读(69) 评论(0) 推荐(0)
摘要: 题目传送门 一道算是 dp 的板子题了。 题意大概就是 01 背包 + 捆绑。 首先回顾一下 01 背包,一个比较基础的 dp 题,状态转移方程也很好想,是 \(dp[i][j]=\max(dp[i][j],dp[i-1][j-w[i]]+v[i])\)。 代码实现如下: 点击查看代码 #inclu 阅读全文
posted @ 2023-12-07 20:38 wangmarui 阅读(38) 评论(0) 推荐(0)
摘要: AC A,B,C,D,E 共 1500pts Rating+277 阅读全文
posted @ 2023-12-02 23:03 wangmarui 阅读(0) 评论(0) 推荐(0)