摘要: 本题做法 二分查找,排序。 思路 我们可以先将科技创新奖的名单读入到 \(b\) 数组中,特殊贡献奖的名单读入到 \(a\) 数组中,然后先排序 \(a\) 数组,接着就开始遍历 \(b\) 数组,对于每一次遍历,我们在 \(a\) 中二分查找 \(b_i\),若存在,则输出 \(b_i\)。 为什 阅读全文
posted @ 2025-04-07 22:07 EnjoySilence 阅读(91) 评论(0) 推荐(0)
摘要: 本题做法 BFS。 思路 简单的 BFS 打卡题。从 m 的位置开始 BFS,直到找到 d 的位置,此时由于是按照层序搜索的,所以步数一定是最少的,故直接输出步数,程序退出。最后如果 BFS 结束后依然没有输出,则直接输出 No Way!。 代码 #include <bits/stdc++.h> # 阅读全文
posted @ 2025-03-24 19:47 EnjoySilence 阅读(44) 评论(1) 推荐(0)
摘要: 本题做法 贪心+排序+双指针 two-pointers。 思路 对于这道题,我们不难发现,当每次跳跃的 \(|h_i-h_j|\) 越大,最后消耗的体力值就越多。 我们可以使用双指针,一个指向开头(即 \(l=1\)),另一个指向结尾(即 \(r=n\))。进行循环 \(i:1\sim n\) 次, 阅读全文
posted @ 2025-03-13 21:26 EnjoySilence 阅读(108) 评论(0) 推荐(0)
摘要: 本题做法 BFS。 思路 本题其实难就难在传送门如何存储。我的做法是使用 3 个 map 存储传送门,一个 map 叫做 \(exist\)(map<char,bool>),代表传送门 \(c\) 是否存在(就是有没有输入过了),是为了后面的存储判断做准备;第二个 map 叫做 \(lastdoor 阅读全文
posted @ 2025-03-13 20:14 EnjoySilence 阅读(121) 评论(0) 推荐(0)
摘要: 本题做法 二分答案+贪心。 思路 二分一个答案\(x\),每次检测\(x\)是否可行。 遍历每一件衣服,先将原本的湿度值减去\(x\cdot a\),再判断,若已经干了(即湿度值\(\le0\)),则不再处理,否则使用烘干机烘干,记录使用的时间。最后若总时间小于等于\(x\),返回true;否则返回 阅读全文
posted @ 2025-03-02 15:44 EnjoySilence 阅读(123) 评论(0) 推荐(0)
摘要: 本题做法 二分答案+并查集。 思路 二分答案\(x\),使用并查集判断在\(x\)时刻内是否能够形成连通块。 若任意2点的曼哈顿距离(即\(x\)坐标和\(y\)坐标的差值之和)小于等于\(2x\)(因为2个点是同时在扩散的),则这2点在\(x\)时刻内是可以形成连通块的。将2点在并查集内连边在一起 阅读全文
posted @ 2025-03-02 13:15 EnjoySilence 阅读(54) 评论(0) 推荐(0)
摘要: 目录 什么是OI? 什么是OI? 信息学竞赛(Olympics in Informatics,简称OI),是五大学科竞赛之一。在国内,主要有CSP-J/S(以及少数地区的CSP-X)、NOIP、NOI几个活动(当然还有国际层面上的IOI国际信息学竞赛)。他们的难度依次递增。 学OI有什么好处吗? 学 阅读全文
posted @ 2025-03-02 12:54 EnjoySilence 阅读(118) 评论(0) 推荐(0)
摘要: 本题做法 01分数规划+二分答案。 思路 二分答案\(x\),\(check\)函数内部将每个调料的\(v_i-xc_i\)求出,再从大到小排序,将前\(m\)个的值累加,返回这个和是否大于等于0。 代码 #include <bits/stdc++.h> #define endl '\n' #def 阅读全文
posted @ 2025-03-02 12:30 EnjoySilence 阅读(40) 评论(0) 推荐(0)
摘要: 本题做法 01分数规划(或许?类似贪心?)。 思路 这题是一道01分数规划的模板题(虽然没有写在标题里)。 本文主要讲解01分数规划的介绍与使用方法。 何为01分数规划? 01分数规划用于解决如下这类问题: 每个物品有2个权值\(a_i\)和\(b_i\),给定这些权值,要求选择\(k\)个物品,使 阅读全文
posted @ 2025-03-02 12:10 EnjoySilence 阅读(46) 评论(0) 推荐(0)
摘要: 本题做法 二分答案+BFS。 思路 对于输入的数据,使用4个数组\(head,tail,value,next\)记录每个点的第一条边、每条边的结尾、每条边的拥挤值以及每条边的下一条边。 随后使用二分答案法二分所求的答案,使用\(check\)函数检测是否可行。 \(check\)函数:从\(s\)点 阅读全文
posted @ 2025-03-01 22:10 EnjoySilence 阅读(53) 评论(0) 推荐(0)