div4
文章平均质量分 68
梦念小袁
Hut_acmer
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Codeforces Round 937 (Div. 4)
首先我们来看看无解的情况可以发现只有2的度数会给后面带来需要接的点,带来入度,所以最后就是a+1的入度 a+1==c才是有解可以发现如果我们要树的高度低那就是按照满二叉树的方式构造即可,所以我们直接按照先构造2的方式即可,接着处理1的数,1的数量,最后处理没有入度的点。我们可以发现我们要求的是这个数得要用0101构成的穿的乘积构成,所以我们可以看直接用约数的乘法同时要求这个数是01这样的数即可,注意从大到小的枚举同二进制数取数一样因为有些01数可以由小的01数同其他数的乘积构成。直接按照题意模拟即可。原创 2024-03-29 21:31:55 · 823 阅读 · 0 评论 -
Codeforces Round 928 (Div. 4)
依照题目意思我们进行对20模拟,同时思考可以知道一开始我们删除了所有的奇数,奇数*奇数=奇数,那么接下来只有偶数的删除才会有用同时如果不是2的幂次的话其他偶数都是可以由奇数*偶数得到的也就是前面的偶数就已经判断过了,所以,只有2的幂次才有删除作用,接着对于2的幂次我们看有多少在其中。判断由1组合成的图形是正方形还是三角形,对于这两个图案我们发现正方形是有规律的可以考虑找到图中1的最远的四个角,如果是正方形的话里面就是都是满的也就是满足四个最大方位形成正方形的面积反之为三角形。原创 2024-02-22 21:13:21 · 661 阅读 · 0 评论 -
Codeforces Round 918 (Div. 4)
判断中间某一段是否具有特性可以直接从前后来找特性注意完整的从前面和从后面。注意到是明显的二维偏序问题所以我们直接使用树状数组+离散化即可。明显的分层图直接跑一遍dijkstra即可。平方数直接用sqrt检查即可。直接暴力找缺少的是谁即可。直接简单检查一下即可。依照题意直接模拟即可。原创 2024-01-29 23:53:15 · 520 阅读 · 0 评论 -
Codeforces Round 898 (Div. 4)
注意观察特性,我们发现每一次消耗的都是A的数量,A的数量是不可以再增加的如果说是ABB,或者BBA可以直接消到底如果两边都是A同时中间没有BB那么必然有一段A被丢弃,一段A同一个B结合。先通过递归找到第一个如环的点再通过环上的点去跑原来的路径来找到所有点到这个点的最短距离。这种判断是否能变成目标串的我们都是通过一定手段然后看最后是否是直接变成目标串即可。任意一个数加一等于加上剩下数乘积的两倍所以最小的加1是最优的。明显的是二分如果结果很大记得需要使用LL,以及中间退出。明显的双指针求区间最长一段的性质。原创 2024-01-29 23:49:48 · 564 阅读 · 0 评论 -
Codeforces Round 886 (Div. 4)
可以通过顺序遍历直接找到最小值或者是直接按照某个要求排序。2.或者直接使用dfs去找是否有不满足的即可。1.注意带权并查集的原理和思维即可。原创 2024-01-29 23:43:55 · 513 阅读 · 0 评论 -
Codeforces Round 871
dp的状态转移如果是方案数很少的我们就可以用状态机模型然后这个数选择或者是不选择带来的收益即可。接着就是在加入点的时候就进行判断已经进入了避免多次进入无用点超时。注意bfs的时候第一个加入的点要st[x][y]=true;叠罗汉从上到小一定具有性质注意发现和尝试类似前缀和。分类讨论注意情况的数量,是否考虑清楚了。简单进制变化注意次数bfs注意处理重复。注意题目的特征描述,找到和发现性质即可。需不需要数组,直接快速判断。原创 2024-01-29 23:39:25 · 953 阅读 · 0 评论 -
Codeforces Round 859
我们直接模拟弹弹的这个过程接着我们发现题目提示我们nm的数据范围我们最多弹nm所有点都有了依照鸽巢原理一定会重复所以这个时候推出即可。后面的数一定是由前面的数构成的如果说你这个数比前面的总和还要大是肯定不可能的前面的数可以构造出后面的所有的数所以进行前缀和维护即可。简单交互题一般都是二分我们这里使用前缀和维护然后二分查询是不是满足然后改变中间mid即可。直接第一个变成0或者1都行后面一定会对应变化如果是出现相等就不行。简单区间查询直接使用前缀和进行维护即可。先偶数再奇数即可所有只需要看总和。原创 2024-01-29 23:32:48 · 455 阅读 · 0 评论 -
Codeforces Round 849 (Div. 4)
我们考虑这样一个问题也就是如果上一个点走完了我去完0或者是n+1都是可以的取决于谁带来的贡献小,于是有这样一个贪心,每一个点一定是从左边或者右边来的,接着第一个点一定是从左边来的所有我们枚举第一个点的位置减去他的共享接着来算选了多少个点,如果重复算了这个点的话我们就重新计算他带来的贡献即可。我们发现这种操作次数不是很多的同时是维护区间性质的,维护区间的变化同时又要查询我们可以考虑使用树状数组。我们可以发现如果后面的没了也就是前面的有了我们可以直接从前面来变化记录后面的。变化同时就可以记录前面的变化。原创 2024-01-29 23:28:13 · 475 阅读 · 0 评论 -
Codeforces Round 835 (Div. 4)
依照题目意思我们发现是具有二分性质的,如果我当前天数可以那少一点也肯定可以注意特盘掉不可以的就是即使k=0全部用最大的依旧不可以,接着就是一个二分了,我们注意两个情况。注意理清题目意思我们只能跳一回那么也就是说我只要从我这个位置出发之后看能到达的所有位置有多少可能,然后直接跳到某一个位置朝着b走就可以了,为了实现这个过程我们可以。如果k<n那么我们就只会用前k个然后来判断多的和n的关系考虑这种多次循环我们需要使用前缀和是来快速维护求和。对于最厉害的除了他之外就是次厉害的而其他的都是最厉害的。原创 2024-01-29 23:23:31 · 537 阅读 · 0 评论 -
Codeforces Round 827 (Div. 4)
我们发现最多logn次选择后面的就可以随便选择了 所以直接排序之后把最大的数放在前面然后每次来选择最优。我们可以考虑这样一个问题对于或或者与 | & 我们更加需要使用拆位因为他们不具有区间的属性前缀的属性。我们是否能抵达就取决于我们的一步是不是比到这个点中出现的所有的长度有关系,所以我们可以。注意行只能是R,竖只能是B,所以判断有没有一行全是R即可。<=1000,所以我们考虑对它处理,可以直接做一个。注意我们要的是让a<b那么只有b有其他的就直接放最。的数值是很小的,n是2e5的,原创 2024-01-29 23:18:51 · 429 阅读 · 0 评论 -
Codeforces Round 817 (Div. 4)
关于位运算的不过就是拆位,但是我们要注意^是具有前缀和性质的我们可以做这样一个操作,对于实在构造不出来的题目是想一下有没有什么万金油的写法比如这道题我们看到要求数不能太大如果我们利用异或的性质相等就是异或为0的话就十分巧妙。我们可以先把每一个L形的bfs出来,然后我们直接对他进行检查是不是L的,然后直接通过暴力的方式去看是不是任意的两个有相邻的。需要的就是做一个二维前缀和接着o1的查询在给定的盒子里面的数量。对于每个位置我们的改变他带来的收益是多少也就是对贡献的增加值。只要一个位置只有一个R就是不合理的。原创 2024-01-29 23:12:45 · 421 阅读 · 0 评论 -
Codeforces Round 806 (Div. 4)
题目意思:n个箱子里面的钱是ai一把钥匙是k元我没可以直接暴力开那么从这个位置到后后面的所有箱子的钱都将会除以2。加黑色不考虑任何东西我们可以直接二维dp但是明显要优化,我们可以发现这个除以2的性质最多除以32个就都是0了所以。我没明显发现具有前面的直接延续到后面的继承性我没只需要对前面的判断是否是满足接着就直接前缀和维护一遍就好了。我们最多用32把坏钥匙所以状态就变少了常常需要思考除法乘法的性质最少是2的时候32和64都是敏感数字。题目:求 ai< i < aj < j 的对数。直接map存起来即可。原创 2024-01-29 23:05:57 · 474 阅读 · 0 评论 -
Codeforces Round 799 (Div. 4)
简单的八皇后行列的性质,也就是副对角线的是行列之和相等,主对角线是差值相等需要加上n防止越界,接着谁所在的行列之和最大谁就是king。我们发现变化的其实之后后面一个数多乘以2了后面也是一样的就判断 是否满足即可如果不满足重新开始,双指针算法。简单模拟即可,我们发现这一类题目都是数据范围很小 我们可以先装为总的分钟再来变化即可用mp记录是否出现过。简单性质使用 要删除的最少也就是留下的最多我们可以考虑使用双指针,如果后面多了一定要删去前面的。把重复的数删除然后判断是不是删的偶数个不是就再减去一个即可。原创 2024-01-29 22:56:38 · 677 阅读 · 0 评论 -
Codeforces Round 790 (Div. 4)
首先我们肯定是把满足要求的数放到处理数组里面接着我们要求区间是连续的所以进行排序判断是否是连续的然后双指针来移动判断即可。题目意思:给定一个序列,你要求出一个最大的区间[l,r]满足里面的数的在序列当中出现的次数大于等于m要区间的长度最大。我们明显的可以发现直接使用递归的处理然后把子问题的结果给父节点即可我们可以把白色看成1黑色-1来处理。题目意思给定你n个长度一样的串,你每次可以把一个串的位置直接变为相邻的字母花费1注意z不能变为a。我们可以发现其实交点的数量就是逆序对的数量可以简单思考一下即可。原创 2024-01-11 20:24:09 · 496 阅读 · 0 评论 -
Codeforces Round 784 (Div. 4)
本场小结:1.对于一些奇怪的题目我们一定要去找存在哪些性质,构造题目和模拟题目同样也是发现性质之后尝试使用暴力枚举2.双指针的时候注意取结果的位置有时候用while比for更好3.对于位运算符的出现我们一定要考虑是否具有拆位的性质,区间的也要考虑是否可以使用RMQ的性质。原创 2024-01-11 20:16:37 · 944 阅读 · 0 评论 -
Codeforces Round 640 (Div. 4)
左右开始吃糖注意就是用类似于双指针就好解决了我们考试控制左右的指针来移动,不过要注意审题,比较的是上一次吃的数量,那么就需要左右开始一次枚举就好了,注意中间是否会结束。最后结果就是x*n+y了但是并不全是这个因为这个可能刚好是n的倍数比如 2 4 q求出来的是 8 所有还需要减去一个多计算的。2.我们注意我们要全部分成偶数或者奇数也就是我们可以转化一下全部变成(k-1) 个1 或者。那么每一次出现一个对应的倍数不能整除的数出现的次数就是(n-1)次。第一题就是要我们被把一个数分开为最少的简单10的倍数。原创 2023-07-20 15:17:08 · 156 阅读 · 0 评论
分享