03 2022 档案

摘要:Codeforces Round #779 (Div. 2) A. Marin and Photoshoot 把所有0的位置找出来放到数组里,如果相邻的0距离为1的话,说明要往中间插2个1,如果距离为2的话只需要插1个1。 #include<iostream> #include<cstdio> #i 阅读全文
posted @ 2022-03-28 01:51 menitrust 阅读(65) 评论(0) 推荐(0)
摘要:AtCoder Beginner Contest 245 A - Good morning 感觉自己写的有点长了,还是题解来的简洁 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<c 阅读全文
posted @ 2022-03-27 21:56 menitrust 阅读(29) 评论(0) 推荐(0)
摘要:Codeforces Round #764 (Div. 3) A. Plus One on the Subset 从最小的变成最大的,也就是最大值和最小值之差。 #include<iostream> #include<cstdio> #include<algorithm> #include<cstr 阅读全文
posted @ 2022-03-23 23:27 menitrust 阅读(40) 评论(0) 推荐(0)
摘要:CFAB训练赛5 A - Assigning to Classes 从小到大排序,找到中位数以及和它的下一位,最小值就是他们之差。因为总是可以分成两组,那么我们只需要让这两个数分别是不同组的中位数就可以了,至于这两组怎么排序并不重要。 #include<iostream> #include<cstd 阅读全文
posted @ 2022-03-22 21:56 menitrust 阅读(33) 评论(0) 推荐(0)
摘要:蓝书 AcWing 193. 算乘方的牛 这里估计函数可以设计为当前的最大的数到目标数还需要乘多少次2。对于题目要求我们可以有8种操作方式,1.将a+b放在a的位置。2.将a+b放在b的位置再交换。3.a自乘。4.a自乘放在b的位置再交换。5.b自乘放在a的位置。6.b自乘再与a交换。7.a除b放在 阅读全文
posted @ 2022-03-21 14:44 menitrust 阅读(49) 评论(0) 推荐(0)
摘要:蓝书 AcWing 194. 涂满它! 这次终于写对估计函数了,这次把除了a[0][0]的颜色的个数当做估计函数。我们可以枚举5种颜色,同时判断那些是与左上角的点联通的并且颜色相同的点,把他们认定为待更新的点,并将它们更新(类似bfs),在不断搜索的时候时刻更新当前的层数和估计函数的和是否大于限定深 阅读全文
posted @ 2022-03-20 19:58 menitrust 阅读(34) 评论(0) 推荐(0)
摘要:蓝书 AcWing 190. 字串变换 一开始用的是双向bfs,但只过了4个点,但是硬是要调,调了一下午还是没调出来。。后面换成普通bfs写发现也能过而且代码更少看来不能老是死磕,思路就是直接开队列按字符串的位置找能换的字串,如果最后换到和b一样说明成功了并且操作小于10说明成功了,否则输出-1。 阅读全文
posted @ 2022-03-19 18:48 menitrust 阅读(60) 评论(0) 推荐(0)
摘要:蓝书 AcWing 186. 巴士 一开始想的是在搜索的时候再枚举巴士的路线,但是发现搜索的时候处理太麻烦了,应该在读入的时候先预处理出一共可能有的路线,就是枚举每个起点和它的时间间隔,枚举起点只需要从0-30就可以了并不用像题解一样枚举到60,因为是个等差数列,如果你公差都大于30了枚举的下一项肯 阅读全文
posted @ 2022-03-18 12:04 menitrust 阅读(48) 评论(0) 推荐(0)
摘要:蓝书 AcWing 185. 玛雅游戏 思路:由于n<=5,可以暴力搜索,但是要模拟很多过程非常麻烦,当三个或以上的相同颜色的块连在一起的时候得把他们同时删去。同时还得判断是否能够构成方案,如果最后有任意一个颜色的块的数量为<=2说明肯定不能连成三个以上的了,这时就说明无解。首先读入的时候将所有有颜 阅读全文
posted @ 2022-03-17 15:15 menitrust 阅读(32) 评论(0) 推荐(0)
摘要:蓝书 AcWing 181. 回转游戏 思路:一开始先得把表给打好,就是每个数字对应的位置找到,到时候换位置的时候就很方便不用一个个打。我们的目的是把中间八个格子变成一样的,对于中间八个里的某一个数,变成一样的次数为8-该数的个数。把它当成估计函数,如果当前的操作次数加上估计函数已经超过了限定的次数 阅读全文
posted @ 2022-03-16 18:59 menitrust 阅读(27) 评论(0) 推荐(0)
摘要:蓝书 AcWing 125. 耍杂技的牛 思路:和国王游戏很像,贪心的时候需要考虑两个属性,牛的重量和力量。以牛的重量和力量的和从小到大排序可以使得最大的风险值最小,利用啥临项微扰啥的可以证明,让序列变得有序不会让结果变坏,但有逆序对不会让结果变好。然后从小到大更一下牛的最大的风险值。 #inclu 阅读全文
posted @ 2022-03-15 11:49 menitrust 阅读(45) 评论(0) 推荐(0)
摘要:蓝书 AcWing 122. 糖果传递 和七夕祭那题一毛一样,就是环形均分纸牌问题。 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> using namespace s 阅读全文
posted @ 2022-03-14 14:00 menitrust 阅读(38) 评论(0) 推荐(0)
摘要:蓝书 AcWing 119. 袭击 思路:平面最近点对,多了个阵营的区别,但还是调了好久,有以下几点需要注意:1,题目数据范围太大如果分治的时候直接sort会超时,得用归并排序。2.因为是浮点数的判断所以得加eps。3.要特判一下当点的类型相同的时候为了不影响最小值的判断,让他们变成当前的最小值就可 阅读全文
posted @ 2022-03-13 20:01 menitrust 阅读(51) 评论(0) 推荐(0)
摘要:蓝书 AcWing 116. 飞行员兄弟 位运算,枚举每一位把手的状态,是关的就让他开着,记录一下每次的操作和每次的最小次数,和费解的开关那题解法差不多。 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring 阅读全文
posted @ 2022-03-12 23:01 menitrust 阅读(37) 评论(0) 推荐(0)
摘要:蓝书 AcWing 112. 雷达设备 思路:对于确定每座岛屿在x轴上能被雷达监视的左右区间,然后初始化位置pos,每次判断一下,如果pos小于当前岛屿的左区间,那么需要新加一个雷达,并更新pos为该岛屿的又区间,如果pos大于的话说明可以管辖,我们让pos=min(r,pos)。目的是将i的位置尽 阅读全文
posted @ 2022-03-11 11:55 menitrust 阅读(32) 评论(0) 推荐(0)
摘要:蓝书 AcWing 109. 天才ACM 思路:使用倍增思想,如果普通二分的时间复杂度为logn,但当t非常小的时候相比倍增反而需要花费更多的时间,因为每次都是折半找,而倍增利用了二进制的思想,每一段都可以用2的几次方之和来表示,那么对于此题,长度的枚举先从1开始,初始化st和ed为0,只要len不 阅读全文
posted @ 2022-03-10 11:08 menitrust 阅读(42) 评论(0) 推荐(0)
摘要:蓝书 AcWing 106. 动态中位数 思路:对顶堆,设第一个数为mid,之后的数读进来一次比较大小决定放入大根堆还是小根堆,然后当i为奇数的时候输出当前的中位数。 注意一下格式问题,当中位数的个数不能整除10的时候最后还要加个换行。 #include<iostream> #include<cst 阅读全文
posted @ 2022-03-09 14:01 menitrust 阅读(35) 评论(0) 推荐(0)
摘要:蓝书 AcWing 103. 电影 思路:将所有科学家讲的语言以及字幕和语音的语言存到一个数组里,然后对数组进行排序去重,然后开一个ans数组保存答案,先利用二分查找将科学家懂的语言保存在答案数组里,然后对于电影的字幕和语言语言分别二分找一下它们在ans数组里的个数,即懂得这个语言的科学家的数量,找 阅读全文
posted @ 2022-03-08 14:57 menitrust 阅读(41) 评论(0) 推荐(0)
摘要:蓝书 AcWing 100. IncDec序列 思路:一开始想的是每个数都减去一个数,以为是平均值,后面想到差分就让每个数减去它前面一个构造了差分数组,因为我们最终是要让序列的每一个数都一样,所以我们让b[1]=a[1],让b[2-n]变成0,预处理出2-n的正数和z和负数和f,一部分的操作次数就是 阅读全文
posted @ 2022-03-07 18:17 menitrust 阅读(44) 评论(0) 推荐(0)
摘要:Codeforces Round #775 (Div. 2) A-C A. Game 题意:给你一个01序列,1代表陆地0代表海洋,相邻的陆地可以走,对于海洋而言你有一次机会花费i+x个金币跳到任意陆地x,问最小花费 找到第一个0和最后一个0,计算一下花费即可,特判一下全是陆地的情况。 感想:一开始 阅读全文
posted @ 2022-03-07 18:15 menitrust 阅读(66) 评论(0) 推荐(0)
摘要:Codeforces Round #774 (Div. 2) A-C A #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> using namespace std; ty 阅读全文
posted @ 2022-03-07 18:10 menitrust 阅读(51) 评论(0) 推荐(0)
摘要:A. Game 题意:给你一个01序列,1代表陆地0代表海洋,相邻的陆地可以走,对于海洋而言你有一次机会花费i+x个金币跳到任意陆地x,问最小花费 找到第一个0和最后一个0,计算一下花费即可,特判一下全是陆地的情况。 感想:一开始读题读错了,以为是可以无限制跳,得注意 #include<iostre 阅读全文
posted @ 2022-03-06 23:40 menitrust 阅读(36) 评论(0) 推荐(0)
摘要:AcWing 91. 最短Hamilton路径 利用状态压缩dp降低空间复杂度,我们定义dp[i][j],其中i为二进制表示,某一位为1表示已经走过了,0位没走过,j为当前处于哪个点,那么我们最后要求的就是dp[(1<<20)-1][n-1],即每一个点都走过了并且已经走到终点的路径数。需要初始化一 阅读全文
posted @ 2022-03-06 22:55 menitrust 阅读(45) 评论(0) 推荐(0)
摘要:A - T-shirt 有一群人,编号1-N,其中某一个人编号为X,在A和A之前的可以获得t恤,在A+1到B的人其中有C个可以获得t恤,给你A B C X,让你求出X获得t恤的概率。 读太快看漏了,以为是A到B其中的人有C个 double a, b, c, x; scanf("%lf%lf%lf%l 阅读全文
posted @ 2022-03-06 11:56 menitrust
摘要:A #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> using namespace std; typedef long long ll; const int N=1e6 阅读全文
posted @ 2022-03-06 00:31 menitrust