一
二
三
四
五
六
七
素数1.随着数字增大,素数的出现概率变小,越来越稀疏
2.素数的数量约等于 logn
素数筛 (欧拉筛)123456789101112131415161718192021222324252627#include <iostream>#include <cstring>using namespace std;//求小于等于1e7的所有素数const int n = 1e7;//isprime用于判断某个数是否是素数bool isprime[n + 1];//prime用来存放找到的素数int prime[n];//用来记录找到的素数的总数int cnt = 0;int main(){ memset(isprime, 1, sizeof (isprime)); for (int i = 2; i <= n; i++) { if (isprime[i]) { prime[++cnt] = i; } for (int j = 1; j <= cnt && i * ...
迟来的周记。博客出了点 bug,刚搞好。最近很忙,设计大赛项目开工,果然还是手足无措,没有任何合作经验,这几天实操下来,感觉困难重重。队友也估计不会怎么帮忙,大家都有自己的事情。。。很难再有志同道合呀!这个项目的意义我现在也说不清,也许浪费时间吧。放肆一回哈哈哈。对于算法学习,系统进度很难再进,忙着补题都会有许多新知识要学。。。打了两场比赛,一场华中菜鸟杯线上赛,很遗憾因为家教的事情不能参加线下赛,并且也没打满时间,并不是找借口,确实是打崩了,a 题二分没想到。。。b 题很遗憾,f 题我简直是猪,g 题竟然没开(当时因为它配图很模糊,吓到了)但其实它真的很简单。。就是签到题啊。第二场学校周赛,发挥不错,d 题贪心很可惜,其他还好。今天感冒发烧了,很意外。也许睡眠不足?很奇怪,最近生活还是蛮健康(除了睡觉想来也是开学一个月喽,状态不错的,基本坚持了每天学习+健身,虽然篮球和足球整不了了,不过好在每周可以和几个朋友一起打羽毛球去哈哈哈。诶!也许是昨天打太猛了 着凉了。。。
这个月题单
大一下学习记录
body {
...
这周开了搜索,不过很难,题还没过完,为了应对天梯赛选拔,又开了 dp 一节虽然没用到还有就是,我之前一直计划的项目 idea 要开始啦, 因为刚好有个计算机设计大赛,与几个朋友刚好各取所需,实现我的 idea,然后拿去参赛。计划这周开始哈哈哈然后就是天梯赛校预选,这两天打了两场选拔赛,第一场周六,acm 赛制,在比较熟悉的牛客平台答题(开局三分钟先 wa 了一发 🤪)第二场今天,pta 按数据得分,成绩很差,比赛时很崩溃,我仍然当做 acm 赛制处理题目,从第 1 题开到第 12 题,中间第四题不会,其他都能写,考场上心态很糟 急,成绩很差,不过赛后补题时,我很开心,这阶段的学习在我的错误代码上有很多体现,打的不错 😋(赛时进度被逼着跳,真的很糟心!
并查集定义并查集是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题(即所谓的并、查)
初始化1234567//定义数组,记忆每个节点对应的父节点int fa[N];for (int i = 1; i <= N - 1; i++){ //初始时,每个节点的父节点就是自己本身 fa[i] = i;}
定义 find 函数,用于寻找某个节点的根节点(就是父节点的父节点的父。。。。。12345678910111213141516171819202122232425//非递归写法int find(int x){ while (fa[x] != x) { x = fa[x]; } return x;}//递归写法int find(int x){ if (fa[x] == x) return x; else { return find(fa[x]); }}//简化写法int find(int x){ return fa[x] == x ...
又一周结束啦,回想起来,这周倒也算抗住了,周一到周五正常学习算法,感觉时间超级快,一周基本都在搞数据结构,倒也充实,周五打了一场月赛,战绩还是 6ac3,第四题看出来是 dp 但很无力啊,还没开到 dp,希望回头再来补喽,然后第五题竟然是一道二分前缀和,我并没能写出来,考场上没能分析出来,一直感觉是我无法解决的问题。。。今天下午学校组织了第一次周赛,令人不解的是一共七题全部是构造,数学问题,似乎我能做到的地方并没有用到什么算法,这其实有点失望,不过好在运气不错,第二道的位运算构造似乎卡住很多同学,我也是因为上次刚好在 cf 上写了一道类似,记忆比较深刻,最后 ac3 道,赛后发现很多同学都是 ac3 道,只赢在罚时而已。。。第四第五也都开了,不过都 wa 了。接下来这周就开搜索和 dp 啦,下周二打一场 cf,周日天梯赛选拔,希望成绩能进步!不过接下来还有好多麻烦事,导员要开始严查课,每周六要和同学打羽毛球,还有考驾照,还有家教。。。思来想去,决定周六拿出来解决这些问题是,刚好上午驾照,下午羽毛球,晚上家教,管理大师!
优先队列 #include <queue>
代码 含义
q.push(ele) 元素ele入栈增加元素 (logN)
q.pop() 弹出队首元素 (logN)
q.top() q.top() == 队首元素
q.empty() 判断栈内是否为空,空为真
q.size() 返回栈内元素的个数
没有 clear!!!设置优先级1234567//默认大根堆,每次取出最大元素priority_queue<int> q;//小根堆,每次取出最小元素priority_queue<int, vector<int>, greater<int>> q;//less<int> 表示数字大的优先级大,堆顶为最大的元素//greater<int>表示数字小的优先级大,堆顶为最小的元素
pair代替二元结构体
12345678910111213141516171819//头文件#include <utility>//1.初始化定义pai ...
栈 代码 含义
s.push(ele) 元素ele入栈增加元素
s.pop() 弹出栈顶元素
s.top() s.top() == 栈顶元素
s.empty() 判断栈内是否为空,空为真
s.size() 返回栈内元素的个数
数组模拟栈的遍历12345678910// 栈 从左至右为栈底到栈顶int s[100];// p 代表栈顶指针,初始栈内无元素,p为-1int p = -1;for(int i = 0; i <= 11; ++i) { //入栈 s[++p] = i;}// 出栈int top_element = s[p--];
栈的应用题目大意:有 n 个人从左到右排成一队,全部人向右看,每个人会被比自己高的人挡住,求出每个人是被哪个位置的人挡到。如果没有被挡住就输出 0。
思考:因为向右看,所以最右一个人一定是输出 0,从右向左考虑,如果一个人 a,a 的左边人如果比 a 高,那么 a 就失去挡住别人的能力,如果左边人比 a 矮,那么两人都可能有挡住别人的能力。
代码模板 ...
这周是开学第一周,每天时间基本都花在了算法上,这一周算法学习了两章,博客发布了 7 篇原创,学习状态还不错,不过下一周就是天梯赛选拔,然后四月又有蓝桥杯,感觉进度还是很紧张,决定重头学习算法,导致搜索,图论,dp 这些到现在都还没开,打了一场牛客周赛,一场 cfdiv.3,成绩都很差。。。苦恼啊,希望下周进度可以好些,成绩涨涨涨!再有就是最近各种计算机细分方向开始成为同学们讨论的话题,各种眼花缭乱的技术相当吸引人,不过问题就是如何选择?几次动摇后,最终还是决定与其纠结,不如踏实做好现在手头的事,让子弹再飞会,别急,会变好的吧。。。现在是 2025.3.3 0:11 今天就是生日!期待一下明天开心一整天!订了两个大大的蛋糕,嘿嘿给同学们一个惊喜~~

