自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 收藏
  • 关注

原创 1926 小书童

1926 小书童小A只剩r个单位时间,他想在及格的基础上更多地“刷题”

2021-07-31 20:46:35 82

原创 1832 A+B升级

1832 A+B 升级这个题和刚才做的那个类似,都是和约数的和有关,只不过这道题需要判断质数,只需要做一下小小的修改?显然不是这道题是完全背包,不是01背包,所以…我错了刚才的题需要对每一个数求和,现在需要提前筛一下素数,取得话f[i]=f[j-i]表示取这个数就得在总数中减去数据非常的水所以可以直接使用埃氏筛法昨天她对我撒娇了,她叫我哥哥了,加油,为了她,我一定会加油#include<iostream>#include<cstdio>#include<str

2021-07-31 20:08:12 65

原创 1734 最大约数和

1734 最大约数和练背包来的一般这种题就很难打暴力,连具体的实现都不行说一下这道题的题意,给定一个数s,在1~s中找到若干个数,让他们的约数的和最大所以我们用一个循环记录每一个数的约数和,存在a数组里面然后我们需要双层循环,对于每一个数i,都去枚举数j看看i在哪一个数的价值是最大#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<a

2021-07-31 19:03:54 51

原创 1064金明的预算(5个dp)

1064 金明的预算这道题就是一个依赖性背包,通过主件附件就能看出来输入的时候处理好主件和附件,把附件归到主件里面,在规划的时候跳过附件处理主件,因为本题只有0,1,2附件这几种情况,因此枚举所有情况跑01背包所有的背包都是根据01背包进行一个拓展,所以01背包基础一定要好......

2021-07-31 18:15:21 48

原创 1191矩形

1191 矩阵这个题,用手进行模拟一下,都会明白,他就是一个递推,暴力太…首先我们设状态f[i][j]表示从(1,1)到(m,n)的白色矩阵数量设方程f[i][j]=f[i-1][j]+f[i][j-1]+f[i-1][j-1]但是这个方程的状态很好想也很好理解,但是如何进行转移?如何进行...

2021-07-31 16:50:40 52

原创 1757 通天之分组背包

1757 通天之分组背包这是一个分组背包题,比较模板

2021-07-31 15:40:05 71

原创 济南题记2021

济南题记20212021.7.25~2021.7.30我参加了济南编程兔夏令营阶段三,这次的夏令营和日照的内容差不多,但是老师并没有换,都是一个老师,老师的思路清晰,对代码很清晰的运用及操作,很喜欢这个老师,最后一天的考试我考了170分,排名第三,总的来说还是不错的基础算法,数据结构,树形结构,图论,动态规划,字符串,这就是七天的流程了其他的并没有什么好说的,认识了lfs和zzh两个大神,并结交了朋友这几天放学都在追庆余年,感觉这部剧是真的挺好看的,但是没有她陪着我在济南回家的路上,是傍晚,我仔细

2021-07-31 13:23:15 158

原创 5020 货币系统

5020 货币系统简单概括题意,在考场上概括题意是一个非常重要的东西从n个数中,找到一个最小个数m使得这m个数能表示n中所有的数比如:43 19 10 6ans=2这两个数便是3和1010+3+3+3=19,3+3=6就是通过这种方式来表达n个数本来想着这个题可以打暴力的,但是发现根本无法实现,因为循环用到6左右 并且不太好实现所以使用背包的问题...

2021-07-31 12:50:15 72

原创 1628 合并序列

1628 合并序列模拟题目很水,不愧是橙题,首先这里说一个黑科技,真的科技中的科技,sort排序是可以排字符串的字典序的,所以这个题本来以为是个王者结果是个青铜,所以题目要求按照字典序输出,直接排序就好,对于判断前缀,只需要使用find 函数,因为前缀的串永远都在第一位,所以只需要判断find返回的位置是否为0就好#include<iostream>#include<cstdio>#include<algorithm>using namespace std;

2021-07-28 11:10:21 107

原创 1631 序列合并

1631 序列合并个人感觉,二叉堆类型的题都很类似这道题和之前做过的一些题非常的类似,如果用暴力很好就能做出来,得64分,详细得看代码#include<iostream>#include<cstdio>#include<algorithm>#include<queue>#include<cmath>using namespace std;const int SIZE=1e5+5;int n;long long a[SIZE],

2021-07-28 10:42:56 73

原创 1456 超市

1456 超市题目给定n个物品,每一个物品都有利润pi和过期时间di每天只能卖出一个物品,过期就不能卖了,如何安排卖的商品,才能使得利润最大这个题第一感觉用贪心或者动态规划来解决,感觉和堆并没有多大的关系贪心如果使用贪心来解决,那么思路就是比较明确的了,按着贪心的思想优先考虑利润大的商品,然后按着这一段时间为期限,只要不过期然后尽量地卖,贪心的精髓就体现在这里了,最后不要忘记加上利润输出就好了#include<cstdio>#include<algorithm>#i

2021-07-27 12:47:27 98

原创 1878 舞蹈课

1878 舞蹈课这个题的题目还是很简单的,但是实现起来不太好操作这个题的思路就是讲异性的两个人入堆并且利用重构和结构体保存两个人的差,然后每次从堆顶取出来,表示找到答案,然后再通过这两个点寻找没有出队的人,再次进行入堆操作#include<iostream>#include<cstdio>#include<algorithm>#include<queue>using namespace std;const int SIZE=2e3+5;cha

2021-07-26 19:43:24 151

原创 学习计划

学习计划这是CSP_s的最后一次学习计划,最后一次,距离CSP的初赛还有55天初赛的考试是在2021.9.18所以必须在暑假之前就完成突击,不能等到开学的18天再学习了暑假在夏令营的时候需要就把当天的内容完成夏令营完成后的一段时间,需要把最后剩余的数学学完,包括高中数学,高等数论,这是最后一点的内容学完知识点,需要对所有知识点进行一个做专题,然后快开学的时候,再看看初赛就好了初赛过后初赛过后还有一个月考复赛那么就将自己写过的博客看看,把做过题再敲一遍,然后迎接省一好了复赛过后复赛过后还

2021-07-26 18:19:04 76

原创 1334 瑞瑞的木板

1334 瑞瑞的木板其实很水,但是有一些小细节需要注意,,因为这个原因,会卡一个点,会卡一个点,会卡一个点这个题其实和合并果子是一个意思,每次取出优先堆的两个点,进行求和然后再次压入堆,把所有的和加起来直至队列中只有一个元素,输出即可但是有一个BUG,注意数据范围的大小,虽然这个大小不会炸int,但是我们想想,我们要求的是和,所以,104不会炸,但是如果累加起来绝对会炸,所以我们直接使用longlong就能AC,题目真的很水,真的很水#include<iostream>#include

2021-07-26 16:57:07 120

原创 2021.7.26随记

2021.7.26随记时光匆匆,昨天看见了一句话,人生是从12岁开始的。感触颇多,想想自己12岁(2019)以来做过的事闯过的地方,看看日历,已经两三年过去,纸张都随着记忆泛黄了。这些年,拍过电影,写过小说,喜欢过一部部警匪电影,做过一件件震天撼地的事,闯过一次次祸,遇见过一个个人,看见过一个个场景,听过雨声,闻过花香,唱过苦曲,走过一个个地方,什么都变了,在日照戏海,在济南养病,济宁养晦,在金乡留情,在烟台留恋,在蓬莱感叹,在北京叹惜,在上海匆忙,在蒙古回看,在秦皇愉悦,在一座座登过的山顶成全自己的张

2021-07-26 16:34:09 107

原创 1168 中位数

1168 中位数啊,又是一个中位数问题,本来感觉是一个水题,但是用简单的模拟就全部WA了,所以这个题就是用一个窗口限制再加上一个优先堆的问题,按照这个思路再次进行一个尝试…可是它真的不太好实现啊难道还得使用双顶堆的思想吗是的,还是需要维护两个堆,一个大根堆,一个小根堆这个题其实和3871 中位数 类似,只不过就是需要判断在奇数的情况来输出,而且是一个一个小区间,不是总共的区间进行求中位数,还是挺水的,尽管我做了不短时间但是我还是有勇气说出这句话维护大根堆小根堆,原理还是需要在进队的时候枚举两种情况——

2021-07-26 13:38:33 104

原创 0378 行有序数表第k大

行有序表第k大题目首先先来分析这道题的难点在哪里,他的难点是因为这个矩阵的各个元素都是在自序列有序而不是总系列有序,所以可能很难进行维护但是很好的就是,一个单独的行是有序的,所以每一行的最后一个数肯定是最大的,然后我还得将k对每行数的个数进行比较,例如,我们要找第8大的数,所以如果第一行第二行都小于8那么我们的答案肯定不在第一行第二行...

2021-07-26 08:56:46 118

原创 3871 中位数

3871 中位数这个题做了一个中午了,还是不会,我服气了维护中位数,就得利用对顶堆来解决,对顶堆就是维护两个堆,从而进行解决我们想要的问题因为说到中位数,所需要利用一个大根堆一个小根堆,小根堆放n/2个元素,大根堆放n-n/2个元素这样就能保证堆顶是就是中位数...

2021-07-25 19:00:04 181

原创 分块

分块按字面意思来看,分块就是把一个序列分成若干块来处理,维护好每一块信息对于给定的数据规模n,预设一个块的大小s,然后从左到右前s个视为第一块,O(sqrt(n))修改 O(1)查询仍然使用分块的思想,维护s[i]表示前i块的数字之和,有点像前缀和每次修改的时候只要把所在块和之后的块s修改一下即可询问的时候仍然可以通过差分整块的答案,然后部分使用暴力...

2021-07-25 08:07:36 151

原创 随记 2021.7.24

随记 2021.7.24匆匆忙忙,日未出而作,日落而不息,茫茫碌碌,这样的人生,是否真的值得?人生啊,他就是一个巨大的赌博,他玩的很大,下注也吓得很多,全国人民都会参加这场赌博,对于每个人来说,这场赌局只有一次很多人,或许会因为输了一大笔钱而放弃,有的时候,找着了目标,做好了铺垫,义无反顾的前往,但是走着走着,真的要问问自己,这一切,是否值得?嘈杂声中,往往会陷入焦虑,夜深人静中,常常会引起深思或许自己的不足有很多,比自己优秀的人多如牛毛,我真的没有过人的地方,没有付太多,妈妈说,想要成功,就必须

2021-07-24 21:49:42 111

原创 1901 发射站

1901 发射站

2021-07-24 19:39:30 55

原创 区间最值(单调)

区间最值(单调)题目:有一列n个数字a[1]…a[n],对所有1<=L<=R<=n求max(a[L],a[L+1],…,a[R])并求和, n<=1e6这是一道单调栈的应用题,如果用暴力枚举区间然后枚举一个数,那么将会是n3的复杂度,太慢了吧…所有,我们需要反过来,枚举每一个数在哪些区间里是最大的,不用盲目的去枚举这么多区间,我们枚举这个数在哪一个区间最大就好了,所以我们需要卡一个端点,这个端点a是比我们枚举的点b大,那么以这两个点为区间的b是最大值...

2021-07-24 19:17:50 239

原创 差分前缀和

前缀和差分有一列数字,多次询问一个区间的和做法其实很简单,预处理一个数组sum[i]=a[i]+a[i-1]+a[i-2]+…+a[1]所以想求一个区间只需要用b[r]-b[l]+1即可for(int i=1;i<=n;i++) { cin>>a[i]; sum[i]=a[i]+sum[i-1]; }二维前缀对于二维数组a(1,1)…a(n,m)考虑把他画到一个平面上,某一个位置的前缀和就是他左下方的所有数的和如果想求一个二维前缀的话,可以先求一个一维前缀和,再

2021-07-24 17:06:18 54

原创 日照题记2021

日照题记20212021.7.15~2021.7.22 我参加了第三次日照夏令营这次提前一天就去了日照,在海边住了一个晚上,那天还下着雨,顿时感觉很有诗情画意

2021-07-23 22:19:44 144 1

原创 1137 旅行计划

1137 旅行计划很明显的暗示,这一个拓扑排序,再加上一个动态规划,这和一开始入门的动态规划很相似,比较水,太水了,就是要进利用拓扑排序将图划分然后利用阶段i=j+1就可以求出来了,连递推的,没啥意义#include<iostream>#include<cstdio>#include<algorithm>#include<string>#include<queue>using namespace std;const int SIZE

2021-07-22 12:49:43 113

原创 0666 放苹果

0666 放苹果和汉诺塔很像,汉诺塔也算是递推里面的经典了写出状态后,一定要大胆假设设状态f[m][n]表示m个苹果放在n个盘子的方法分类讨论三种情况:1.只有一个苹果或者一个盘子或者没有盘子的情况,只有一种情况12.判断苹果的个数是否小于盘子个数如果少的话,那么就有n-m空的,所以m个苹果放m个盘子里面 apple(m,m)3.最起码每个盘子有一个,然后加上一个盘子为空的情况apple(m,n)= apple(m-n,n)+apple(m,n-1)#include<iostream&

2021-07-21 18:40:34 69

原创 裴蜀定理

裴蜀定理对于给定的正整数a,b,方程的ax+by=c有解的充要条件为c是gcd(a,b)的整数倍证明:gcd(a,b)=d,于是a=k1×d,b=k2×d,c=k3×d,其中k1 k2互质那么原等式等价于k1×d×x+k2×d×y=k3×d,也就是k1×x+k2×y=k3,其中k1 k2互质那么这个方程等价于线性方程,k1×x≡k3 mod k2由exgcd可以知道,这个方程一定有解,那么这个方程的一组解就是原方程的解给定序列a求序列b,使得a1×b1+a2×b2+…+an×bn最小没什么难度

2021-07-21 17:18:19 125

原创 1197 山区建小学

1197 山区建小学读题20分钟,想题10分钟,看代码20分钟,理解代码20分钟,写代码10分钟,调代码40分钟…(逃个人感觉是练的递推里面比较复杂的,应该是一道绿题吧,光递推式就很难找设状态a表示两地距离,c表示两地到学校最近距离,f表示从i个村庄建立j个学校的最短距离首先我们要根据两两之间的距离来构造各个点的距离然后通过中间点距离最短计算两个点到学习的最近距离和,也即是c数组然后就是求f数组,用一个n3循环枚举f数组,递推式f[i][j]=min(f[i][j],f[k][j-1]+c[k

2021-07-21 16:43:20 222

原创 1196 踩方块

踩方块这道题算是递推题里面简单的了很水,需要自己手推递推式,列出来多个结果然后找规律,找出来规律就很好的带出来了#include<iostream>#include<cstdio>using namespace std;int n;int main(){ cin>>n; int f[50]; f[1]=3,f[2]=7; for(int i=3;i<=n;i++) { f[i]=f[i-1]*2+f[i-2]; } cout<

2021-07-21 11:42:29 280

原创 1195 判断整除

1195 判断整除这一道题容易让人蒙,做了很长时间都不太理解也许就在一瞬间开窍设状态f[i][j]表示前i个数的和被k整除的余数是否为j也就是布尔数组方程为f[i][j] = f[i-1][(j-a[i]%k+k)%k] || f[i-1][(j+a[i]%k+k)%k]也就是对于两个数,需要判断**(a+b)%k或者(a-b)%k**的结果是否为j设(a+b)%k=j a%k+b%k=j a%k=j-b%k 然后为了防止负数j-b%k=j-b%k+k)%k这个方程是对于两个数来的,

2021-07-21 11:16:26 203

原创 1194 移动路线

1194 移动路线嗯…题很水,不过需要注意一些小细节,我在打循环的时候把j++打成了m++,所以就卡了很长时间然后其实这道题看第一眼就知道和过河卒很相似,递推式都是一样的,思路也完全一样,只不过不需要计算马的八步注意数组的从0从1开始,nm减一不减一,这个也很重要,所以通常情况从1开始,这也是一个卡的bug#include<iostream>#include<cstdio>using namespace std;int n,m;long long f[100][10

2021-07-21 09:23:32 3837

原创 1190上台阶

1190上台阶卡了6次…注意认真推导递推式f[i]=f[i-1]+f[i-2]+f[i-3]我还是用的平常的做法,三个循环,输入计算输出,然后开两个一位数组,但是可想而知,这种做法多一个循环多一个数组,在时间空间上面都不优秀,所以需要进行优化进行计算的递推数组f没办法优化,但是输入的n可以省去,同时也会省去一个循环,先计算,然后循环输入在线输出#include<iostream>#include<cstdio>using namespace std;int n;lo

2021-07-21 08:38:47 145

原创 1189 pell数列

1189 pell数列这道题和昨天做的差不多,不过就是递推式变了一下,注意递推还是不要用函数,用循环加数组类似于记忆化来实现,就说这些,个人感觉很水,10分钟就切了(逃#include<iostream>#include<cstdio>using namespace std;const int mod=32767;const int size=1000000;int n;int k[size],a[size];int main(){ cin>>n;

2021-07-21 08:04:07 159

原创 1188 斐波那契数列(2)

1188 斐波那契数列(2)首先说明一下几个很重要的地方就是一个裸裸的斐波那契,但是有很多个bug对于函数的递推和数组加循环的递推,首先都会想到函数递推,但还是这种做法会重复的验算很多次,做了很多没有用的运算,这是导致超时的原因,所以可以用循环求取每一个f数组,这样最后离线输出即可,不过就是空间换时间还有就是对于定义MOD SIZE这些常量的时候,需要注意,这些东西通常不能用来操作,或者说不能使用define来定义,被坑了,真的坑爆了…#include<cstdio>#include

2021-07-20 20:30:41 1078

原创 1313 位数问题

1313 位数问题真好,这道题用了我一个小时的时间把它切了这还是一个递推题,cfc同学告诉我这是一道数论题,所以他是一个傻子首先说一下,这道题的递推氏是真的很难推,首先设方程f[i][1]代表奇数个三的答案,f[i][0]代表偶数个三的答案其实这道题的和组合数学有点小小的联系,需要自己用手算,不然真的会蒙首先我们需要计算边界,也就是1的奇数偶数个方案f[1][0]=9,f[1][1]=1然后需要明白一个道理,前一位有奇数个3,那么这一位就不能取3前一位有偶数个3,那么这一位就得取3#incl

2021-07-20 18:39:36 249

原创 1312 昆虫问题

昆虫问题按着递推招进来的题…是一道练递推的经典题目原本以为用一个数组就可以解决,无非就是套用兔子生兔子的斐波那契公式,但是因为有 “ 两个月才能长成成虫的限制 ” 所以还需要一个辅助作用设两个数组,a和b,a表示成虫,b表示幼虫所以递推氏子就很好推了:b[i]=y*a[i-1] a[i]=a[i-1]+b[i-2],这个月的幼虫等于每月产卵乘以已过的天数,这个月的成虫等于上个月的成虫加上前两个月的幼虫(因为两个月成长)#include<iostream>#include<cs

2021-07-20 16:27:33 168

原创 学习计划

学习计划从今天而起,对自己的博客以及以后的学习进行一个规划标记标题的时候,需要使用而标题##,不管有多少的标题一篇文章可以设计多个知识点,同时收录多个专类啊啊啊啊啊啊然后对于乘,我们写作×,然后对于分数等,我会用分数线表示,因为我真的不会打分数线…学习的时候绝对不可以打游戏,不可以聊天,累的时候可以听听歌(nbok2021.9.212021.10.232022.4.62022.5.8向前冲!!!go,go,go...

2021-07-19 15:44:08 163 1

原创 逆元

约数GCD,英文缩写,意思是最大公约数LCM,英文缩写,意思是最小公倍数欧几里得定理告诉我们:gcd(a,b)=gcd(a-b,b)=gcd(b,a%b),证明略过时间复杂度为O(log n)LCM和GCD之间还有一个公式:LCM(a,b)×GCD(a,b)=a×b...

2021-07-19 15:32:10 398

原创 质数

数论质数质数,是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数判断一个数是不是质数,可以从2枚举到|sqrt(n)|试试是否可以被整除就好了模板1

2021-07-18 10:45:44 93

原创 2441 角色属性树

2441 角色属性树说一下,这道题是按着质数来的,但是似乎并没有用到质数,只是一个很简单的模拟(雾看第一眼,以为是线段树or树状数组看第二眼,以为是并查集看第三眼,以为是LCA(逃(逃(逃一共分为两种操作,一个是查询父亲,一个是修改节点修改节点没有什么技术含量,这里不再赘述但是查询父亲就是一个模拟了,题目说现在组员关心一个问题,希望知道离自己最近且有相同萌元素上司是谁那么也就是说,判断祖宗辈和自己是否有公共的质因数,本来想着拆分质因数,然后进行比较,实际上,是否有公共的质因数,也就是

2021-07-17 16:29:20 99

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除