随笔分类 -  理论学习

摘要:来写周练了~ 这道题目卡了很久。 首先看到最大值最小化就应该联想到二分,那么二分什么呢? 二分答案~ 这里l,r的取值范围需要注意,l=0没有争议,r必须取值到n2,又因为数据大所以要开 long long .十年it一场空,不开long long见祖宗 接下来看check函数,这里找到一个数加一次 阅读全文
posted @ 2023-05-16 20:45 王浩泽 阅读(20) 评论(0) 推荐(0) 编辑
摘要:不难发现每个数都不⼤实际没到1e9,这启发我们直接计算对于所有数字,以该数为因数的数字有 多少个即可。按照素数筛法的原理可知,这么做复杂度只有log n #include<bits/stdc++.h>//因式分解 using namespace std; const int N=1e6+1; int 阅读全文
posted @ 2023-05-05 21:41 王浩泽 阅读(66) 评论(0) 推荐(0) 编辑
摘要:优先队列有两个分支,一个是小根堆,一个是大根堆。 这是一个优先队列的定义: priority_queue<int> q; 默认是大根堆。 大根堆,也就是堆顶是最大的数,按着降序排到堆底。 小根堆,也就是堆顶是最小的数,按着升序排到堆底。 大根堆定义: priority_queue<int> q; 由 阅读全文
posted @ 2023-04-29 22:43 王浩泽 阅读(84) 评论(0) 推荐(0) 编辑
摘要:题目: 这道题目十分简单,只要用大根堆维护前k小的数字即可,用大根堆是因为方便输出(用小根堆需要输出堆底),前k个先单独输入,不输出(第k个除外,单独输出) ,之后k+1~n如果输入进来的数字比堆顶大,直接跳过,否则先把原堆顶弹出再推入输入进来的数字,每一次输出堆顶即可。 大根堆与小根堆及优先队列 阅读全文
posted @ 2023-04-29 22:32 王浩泽 阅读(267) 评论(0) 推荐(0) 编辑
摘要:题目: 题意简洁明了,一边输入一遍判断,如果是第一个就开始第一次的订阅,如果不是,就比较是继续订阅好还是重新订阅好,十分暴力。 程序: #include<bits/stdc++.h> using namespace std; const int N=1e5+10; long long n,k,ans 阅读全文
posted @ 2023-04-24 20:09 王浩泽 阅读(36) 评论(0) 推荐(0) 编辑
摘要:题目: 这题直接暴力旋转印章再暴力比较是否有多余的黑色,如果没有,进行涂色即可,不需要任何优化。 注意:画布不可以旋转。 肝程序.jpg 程序一会发 注:虽然我喜欢用string但用string一直莫名其妙的错,懒得改了,就换成了char 程序: #include<bits/stdc++.h> us 阅读全文
posted @ 2023-04-24 20:06 王浩泽 阅读(61) 评论(0) 推荐(0) 编辑
摘要:题目: 来写周练了,这道题目开开胃,就只用遍历一遍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 阅读全文
posted @ 2023-04-24 20:03 王浩泽 阅读(103) 评论(0) 推荐(0) 编辑
摘要:先假设a+t=b+l 那么是不是可以推出 abs(a-b)+t=b+l 设a-b 为x 所以我们现在只需要考虑 (a-b, 0) 的问题怎么解决。与其思考怎么把 1, 2, · · · , k 这 k 个数字分配到两边,不如考虑先把 k 个数字全部加到 0 那儿去再取一些回 来。 把k个数全都加到0 阅读全文
posted @ 2023-04-08 10:15 王浩泽 阅读(77) 评论(0) 推荐(0) 编辑
摘要:题目: 这道题目比较简单,由于数据量比较小我们用邻接矩阵来存图,方便查找两点间是否有连接 i,j,k三重循环暴力枚举,因为会有重复情况所以我们要保证i<j<k 故代码为: #include<bits/stdc++.h> #define io ios::sync_with_stdio(false),c 阅读全文
posted @ 2023-04-08 09:50 王浩泽 阅读(23) 评论(0) 推荐(0) 编辑
摘要:开 struct 记录月,日,名称 记得把XH、DH放在最前面。 然后处理问题只需要从前往后遍历⼀遍所有节⽓,判断⽉份和⽇⼦是否⼤于等于当前⽇⼦,是的话直接 输出然后 break。因为节⽓是按顺序放⼊数组的,所以第⼀个满⾜条件的就是答案。 由于本人是只懒🥚所以只写后半部分 伪代码使懒人快乐~~~~ 阅读全文
posted @ 2023-03-31 21:53 王浩泽 阅读(40) 评论(0) 推荐(0) 编辑
摘要:这是一道周赛题目,完全背包模板,但是打周赛的时候眼一瞎,手一抖,看成了01模板,写出了01模板,嘤嘤嘤,来复习一下完全背包动态转移方程:f[i][j]=max(f[i-1][j],f[i][k-p[i]]+k[i]); 对了再顺便讲一下压缩版 f[i , j ] = max( f[i-1,j] , 阅读全文
posted @ 2023-03-31 21:47 王浩泽 阅读(31) 评论(0) 推荐(0) 编辑
摘要:这道题目因为n是1e5级别的所以输入一次再排序一次不现实,辣么有两个东西可以写这道题目,1小根堆(免去排序时间),2二分插入,由于小根堆太难写了所以采用第二种方法,简简单单~ #include <bits/stdc++.h> using namespace std; int n; vector<in 阅读全文
posted @ 2023-03-27 21:39 王浩泽 阅读(40) 评论(0) 推荐(0) 编辑
摘要:显然是一道遍历树再加上判断权值的题目,只要注意只能往上走即可(回溯不算往下走) #include <bits/stdc++.h> using namespace std; const int MAXN=2e4; int n,q; int fa[MAXN],a[MAXN]; vector<int> a 阅读全文
posted @ 2023-03-26 22:22 王浩泽 阅读(16) 评论(0) 推荐(0) 编辑
摘要:暴力枚举即可,用vis[i]表示第i个人被没被抓,或者就是在图中求环长度。 #include<bits/stdc++.h> using namespace std; const int N=2010; int n,p[N],vis[N]; int main() { ios::sync_with_st 阅读全文
posted @ 2023-03-26 21:54 王浩泽 阅读(35) 评论(0) 推荐(0) 编辑
摘要:先来看看要求,能100%还原那么什么情况能只有一种还原方式呢?那就是上下限已定,差值为一的情况下(还有个递增,但题目数据给了递增所以没写)像1**4只有1234一种改法那么题目变为在数组中找连续的差值为1的数列截头去尾(因为要有上下限)的长度。(记得取max) 程序: #include<bits/s 阅读全文
posted @ 2023-03-26 21:40 王浩泽 阅读(20) 评论(0) 推荐(1) 编辑
摘要:题解:照着写树板子 #include<bits/stdc++.h> using namespace std; using LL=long long; const int N=30; const int maxN=1e5+5; int n,m; int a[maxN],dep[maxN]; int f 阅读全文
posted @ 2023-03-26 20:40 王浩泽 阅读(14) 评论(0) 推荐(0) 编辑
摘要:这道题并不需要高精度。我们把数字当字符串读入进来,把数字倒过来考虑, 然后用 ai 表示第 i 位的数字。 一个小学奥数常识:一个数是 4 的倍数,等价于它的最后两位是 4 的倍数。(为 什么?) 倒过来之后,也就相当于我们只需要管前两位是啥就行。 首先,我们可以考虑啥都不删,那么只需要判断前两位组 阅读全文
posted @ 2023-03-26 18:05 王浩泽 阅读(21) 评论(0) 推荐(0) 编辑
摘要:题目 这道题目十分简单,只要将奇数偶数分别放起来就可以了,4例外,排法为 3 1 4 2 程序 #include<bits/stdc++.h> using namespace std; int n; int main() { ios::sync_with_stdio(false); cin>>n; 阅读全文
posted @ 2023-03-26 17:56 王浩泽 阅读(22) 评论(0) 推荐(0) 编辑
摘要:题目 这道题目用暴力即可,两种方法,第一种用的是暴力dfs不用多讲 第二种方法细讲,先开 int s[N] 当s[i]的第j位为1是表示i j相关联,反之不相关连,当然了s[i][i]=1,有点类似邻接矩阵 枚举任意操作开关的⽅案时,也可以使⽤⼆进制数来枚举。具体来说,枚举2到2^n之内的所 有数字 阅读全文
posted @ 2023-03-26 17:47 王浩泽 阅读(31) 评论(0) 推荐(0) 编辑
摘要:暴力吗,没什么技术含量。 程序: #include<bits/stdc++.h> using namespace std; int n,m; int a[101]; string s[1002]; int vis[101]={0}; int main() { ios::sync_with_stdio 阅读全文
posted @ 2023-03-25 22:33 王浩泽 阅读(200) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示