11 2023 档案

[ABC328D] Take ABC 题解
摘要:链接 如果只是扫一遍肯定是不行的,所以我们使用一个栈,遇到 C 就判断栈顶的两个元素是不是分别为 B 和 A。这样就能做出来这道题了。 代码 #include<bits/stdc++.h> using namespace std; string s; char stk[200010]; int ma
19
0
0
[ABC328C] Consecutive 题解
摘要:Hello World 链接 这道题是一个很明显的前缀和,我们把 sumi 表示为前 i 个字符有多少个有重复,查询的时候就用 sumr1suml1 就行了。 代码 #include<bits/stdc++.h> using namespace std; string
15
0
0
CF222A Shooshuns and Sequence 题解
摘要:分析 这题是一个很水的题,就是对一个序列有 2 种操作方法,一种是对第 K 个数以前的数的第一个进行删除,另一个则是在整个序列后添加这第 K 个数,使得整个序列为同一个数字,显然,后者是无效操作,则只需要判断第 K 个数以后有无与第 K 个不同的数,有则无解,反之有解。若有解,然
16
0
0
[ABC326C] Peak 题解
摘要:题目链接 题目思路 这个问题要求找到一个半开区间,使得在这个区间内包含尽可能多的礼物。首先,我们需要将输入的礼物坐标按照从小到大的顺序进行排序。然后,我们可以使用双指针的方法来寻找最佳的区间。 代码 以下是代码解释: #include<bits/stdc++.h> using namespace s
18
0
0
CF391D1题解
摘要:题目链接 题意简述 给出若干条平面上线段,找出最大的正+形边长多少。 思路 不难,但是判断两直线相交要考虑全面。数据不大不多,暴力直接过了。 代码 #include<bits/stdc++.h> using namespace std; typedef struct line { int sx,sy
7
0
0
[ABC326D] ABC Puzzle 题解
摘要:题目链接 解法分析 这个问题是一个经典的排列谜题,通过回溯算法来穷举所有可能的字符排列,然后验证是否满足行和列约束。这个解决方案可以用于解决类似的谜题,其中需要满足一定的排列条件。通过仔细考虑约束条件,可以加快解决问题的速度,减少不必要的计算。 更详细的我写在代码里了。 代码 #include <b
17
0
0
P7775 [COCI2009-2010#2] VUK 题解
摘要:链接 这道题卡了我 40 多分钟。 其实就是跑两遍广搜,第一遍算出每个点距离树的最小距离,第二遍开个优先队列,算出逃回窝的途中最大可能的离它最近的树的距离的最小值。 接下来重点讲一下第二遍广搜。 首先,我们要知道,如果我们用 queue ,那么最先到的点不一定是最优的。 所以,我们需要用 pri
23
0
0
P2678 跳石头 题解
摘要:P2678 跳石头 链接 这道题其实很水 我们二分最长距离,最后用 check 函数 判断合不合法 一下是核心代码 check 函数这样写: bool check(int x){ int last=0,tot=0; for(int i=1;i<=n;i++){ if(a[i]-last<x)
9
0
0
CF1552D题解
摘要:CF1552D题解 思路 首先,ai 的正负不重要,如果 ai=bjbk,那么就有 ai=bkbj,读入时将 ai 全部转化为正数。 若满足 ai+aj++ak,那么就可以构造出 b 序列,否则不行。 从左到右遍历一遍 a 序列,动
17
0
0
CF985C 题解
摘要:CF985C题解 思路 由题意得知,现在有 n×k 块木板需要组装成 n 个木桶,每个木桶由 k 块板组成,容量服从短板原理,要求容量差不得超过 I,求最大容量和。 不管采用什么方法,无疑我们首先需要将板长(数组 a)从小到大排列。 利用贪心算法。先找出与 a0
22
0
0
点击右上角即可分享
微信分享提示
深色
回顶
展开