随笔分类 -  杂题乱刷

摘要:题目链接 简单贪心。 由于我们需要判断无解情况,于是我们可以在做的过程中记录答案。 比较容易发现,对于每个时间段,我们肯定是优先复习日期较近的考试的,贪心了这一点,就能轻松 AC 了。 参考代码: 点击查看代码 #include<bits/stdc++.h> using namespace std; 阅读全文
posted @ 2023-12-16 19:40 wangmarui 阅读(19) 评论(0) 推荐(0)
摘要:题目链接 算法一: 直接暴力,时间复杂度 \(O(n^2)\)。 算法二: 使用双指针维护,时间复杂度 \(O(n)\)。 算法三: 是用前缀和维护,时间复杂度 \(O(n)\)。 这里提供算法二的代码: 点击查看代码 #include<bits/stdc++.h> using namespace 阅读全文
posted @ 2023-12-16 00:42 wangmarui 阅读(14) 评论(0) 推荐(0)
摘要:题目链接 一道 dp 板子题。 只需要设 \(dp_{i,j}\) 为前 \(i\) 位 \(\bmod 3\) 为 \(j\) 的方案数的数量即可。 剩下的就看代码了。 参考代码: 点击查看代码 #include<bits/stdc++.h> using namespace std; #defin 阅读全文
posted @ 2023-12-16 00:22 wangmarui 阅读(16) 评论(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 阅读(15) 评论(0) 推荐(0)
摘要:题目链接 CF1272D Remove One Element 题意简述 给定一个长度为 \(n\) 的序列,你需要求出至多删除一个数后的这个序列的最长上升子串。 解题思路 首先我们可以想一下这题的弱化版,给定一个长度为 \(n\) 的序列,你需要求出至多删除一个数后的这个序列的最长上升子序列。 这 阅读全文
posted @ 2023-12-12 11:24 wangmarui 阅读(22) 评论(0) 推荐(0)
摘要:题目链接 CF1904B Collecting Game 题意简述 给你一个由 \(n\) 个正整数组成的序列 \(a\) 和一个分数。如果你的分数大于或等于 \(a_i\),那么你可以将分数增加 \(a_i\),并从序列中删除 \(a_i\),你需要求出对于每一个 \(a_i\) 为你的分数时你可 阅读全文
posted @ 2023-12-10 13:24 wangmarui 阅读(45) 评论(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 阅读(17) 评论(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 阅读(59) 评论(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 阅读(74) 评论(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 阅读(44) 评论(0) 推荐(0)
摘要:题目链接 CF1534C Little Alawn's Puzzle 题意简述 给定两个排列 \(a,b\),你可以进行的操作为交换一列中的两个数字,你需要求出操作后能够满足没有相同数字在同一行的数阵能的个数并对 \(10^9+7\) 取模。 解题思路 我们先举两个例子: 1 2 3 4 5 1 2 阅读全文
posted @ 2023-11-28 16:43 wangmarui 阅读(32) 评论(0) 推荐(0)
摘要:原题链接 CF283A Cows and Sequence 题目简述 给定一个初始为空的序列 \(a\),并给出 \(3\) 种操作方式: 将 \(a_1 \sim a_x\) 均加上 \(y\); 将 \(a\) 序列末尾增加一个正整数 \(x\); 将 \(a\) 序列的最后一个数字给去掉; 现 阅读全文
posted @ 2023-11-23 20:36 wangmarui 阅读(25) 评论(0) 推荐(0)
摘要:原题链接 P9515 「JOC-1A」限时签到 题意简述 有一条公路上有 \(n\) 个商店,每个商店分别在不同的时刻开放,求如何在 \(t\) 时刻之前到达 \(f\) 点并且到达最多开放的商店的数量,特别的,一个时刻只能走一格。 解题思路 这一道题是一道贪心题。首先,因为要在 \(t\) 时刻之 阅读全文
posted @ 2023-11-23 20:35 wangmarui 阅读(28) 评论(0) 推荐(0)
摘要:原题链接 CF468A 24 Game 题目简述 现在有一个序列 \(n\) 包含 \(n\) 个整数 \(1 \sim n\),如果我们能经过加减乘三种操作让这个序列只剩下 \(24\),如果可以,输出 YES 并给出构造方案,否则输出 NO。 解题思路 首先不难看出,如果 \(n\) 小于 \( 阅读全文
posted @ 2023-11-23 20:34 wangmarui 阅读(33) 评论(0) 推荐(0)
摘要:原题链接 CF1585B Array Eversion 题目简述 现在有一个长度为 \(n\) 的序列 \(a\),每次操作将 \(a\) 中不大于序列 \(a\) 中最后一个数的元素按照在 \(a\) 序列中的顺序放入 \(b\) 序列中,大于序列 \(a\) 中最后一个数的元素同样按照在 \(a 阅读全文
posted @ 2023-11-23 20:33 wangmarui 阅读(23) 评论(0) 推荐(0)
摘要:原题链接 CF1221B Knights 题目简述 在一个 \(n \times n\) 的棋盘上放置黑马和白马,给出一个放置方式,使得黑马和白马之间的冲突数最多。 解题思路 这道题是一道贪心构造题,因为马每一步有 \(8\) 种移动方案,而我们假设将这个棋盘进行黑白交替染色,则会得到下图: 不难得 阅读全文
posted @ 2023-11-23 20:22 wangmarui 阅读(20) 评论(0) 推荐(0)
摘要:原题链接 CF624B Making a String 题目简述 现在有 \(n\) 个字母,要将这些字母拼成一个尽可能长的字符串,但是每个字母出现的次数不能相等,求这个字符串长度的最大值。 解题思路 首先输入 \(n\),再输入每个字母出现的次数,最后建造一个桶,存储桶内的每个数字,使得桶内每个数 阅读全文
posted @ 2023-11-23 20:21 wangmarui 阅读(19) 评论(0) 推荐(0)
摘要:题目链接 P9253 [PA 2022] Ornitolog 2 题目简述 给定一个音高序列,输出最少要修改多少整数才能使这个序列成为交替鹡鸰鸟鸣的音高序列。 题意分析 操作后的音高序列总共有 \(2\) 种可能: 音量由高变低再由低变高; 音量由低变高再由高变低。 又因为大小范围是 \(10^4 阅读全文
posted @ 2023-11-23 20:18 wangmarui 阅读(29) 评论(0) 推荐(0)