04 2023 档案
摘要:优先队列有两个分支,一个是小根堆,一个是大根堆。 这是一个优先队列的定义: priority_queue<int> q; 默认是大根堆。 大根堆,也就是堆顶是最大的数,按着降序排到堆底。 小根堆,也就是堆顶是最小的数,按着升序排到堆底。 大根堆定义: priority_queue<int> q; 由
阅读全文
摘要:题目: 这道题目十分简单,只要用大根堆维护前k小的数字即可,用大根堆是因为方便输出(用小根堆需要输出堆底),前k个先单独输入,不输出(第k个除外,单独输出) ,之后k+1~n如果输入进来的数字比堆顶大,直接跳过,否则先把原堆顶弹出再推入输入进来的数字,每一次输出堆顶即可。 大根堆与小根堆及优先队列
阅读全文
摘要:题目: 题意简洁明了,一边输入一遍判断,如果是第一个就开始第一次的订阅,如果不是,就比较是继续订阅好还是重新订阅好,十分暴力。 程序: #include<bits/stdc++.h> using namespace std; const int N=1e5+10; long long n,k,ans
阅读全文
摘要:题目: 这题直接暴力旋转印章再暴力比较是否有多余的黑色,如果没有,进行涂色即可,不需要任何优化。 注意:画布不可以旋转。 肝程序.jpg 程序一会发 注:虽然我喜欢用string但用string一直莫名其妙的错,懒得改了,就换成了char 程序: #include<bits/stdc++.h> us
阅读全文
摘要:题目: 来写周练了,这道题目开开胃,就只用遍历一遍b数组、d数组再加上一些特判即可 程序: #include<bits/stdc++.h> using namespace std; const int N=1e5+10; long long n,t,d[N],b[N]; int main() { i
阅读全文
摘要:先假设a+t=b+l 那么是不是可以推出 abs(a-b)+t=b+l 设a-b 为x 所以我们现在只需要考虑 (a-b, 0) 的问题怎么解决。与其思考怎么把 1, 2, · · · , k 这 k 个数字分配到两边,不如考虑先把 k 个数字全部加到 0 那儿去再取一些回 来。 把k个数全都加到0
阅读全文
摘要:题目: 这道题目比较简单,由于数据量比较小我们用邻接矩阵来存图,方便查找两点间是否有连接 i,j,k三重循环暴力枚举,因为会有重复情况所以我们要保证i<j<k 故代码为: #include<bits/stdc++.h> #define io ios::sync_with_stdio(false),c
阅读全文