随笔分类 - OI
摘要:埃氏筛: 筛选 \(1...n\) 中所有的质数 考虑一个质数 \(x\) ,它的\(2x,3x,4x...n/x*x\)都是合数,打上标记即可 \(O(NloglogN)\) for(int i=2;i<=n;i++){ if(vis[i]) continue; p[++cnt]=i; for(i
阅读全文
摘要:算法简介 用于解决三维数点问题: 给定形如你个 \((x,y,z)\) 的三维坐标,然后让你求有多少个点三个维度的坐标都小于这个点 做法:用分治思想将其转化为二维数点 二位数点:先用排序解决掉第一维,再用树状数组维护第二维小于它的点数 分治思想:我们把一个区间划分为两半,我们只统计左半部分修改对右半
阅读全文
摘要:矩阵计算 矩阵加减法 要求两个矩阵的行和列相等,两个矩阵对应的位置相加减即可 矩阵乘法 一个数 \(k\) 乘矩阵 \(A\),把 \(k\) 乘以矩阵的各个元素,记为 \(kA\) 两个矩阵 \(A\) 与 \(B\) 相乘,要求 \(A\) 的列数等于 \(B\) 的行数, \(A\) 尺寸为
阅读全文
摘要:算法理解 即在字典树上跑kmp T1: 根据这个结论我自己手搓了一个AC自动机上去,喜提TLE 我是如何操作的呢? 我当时的想法是这样的:我们把字典树从根到该节点形成的链看成是一个模式串与文本串进行匹配,然后就用一个dfs来传递j就可以解决了 然后我打开书一看到这幅图,立马就不淡定了 我dfs可能n
阅读全文
摘要:CF1328A 简单题,我们用 \(b-a%b\) 的余数即可,注意特判 \(a%b==0\) 即可 CF1328B 细节蛮多的,我们可以发现最终个数可以写成 \(1+2+3+\dots +(p-1)+p+g\) 最后 \(n-p\) 就是第一个b的位置, \(n-g\) 就是第二个b的位置,可以推
阅读全文
摘要:CF评分2693,豆瓣拒绝评分,这套题啥实力就不用说了 CF1375A 被爆切了(悲,md想了20分钟没有想出来,然后就看了一眼题解,wc这不直接一正一负就解决了吗。。。 脑子不转了 CF1375B 切了,首先有一组必然合法的解,就是把所有数都变为大于0的数,这样必然是最大的解,若 \(a[i]\)
阅读全文
摘要:T1: 倍增求一下lca,然后树上前缀和,或直接倍增求也行 T2: 可以发现货车运输的路径最多在图上的最大生成森林上跑 所以先跑一遍最大生成树,将各个树与虚点0连一条边权为-1的边,然后跑一遍lca求一下树上最小边即可 树上差分: T3: 首先题目让我们将一条边的边权赋值为0,然后使得最长路径最短
阅读全文
摘要:CF1678A 小清新签到题,有0其余全与0合并,有相等的数先变为0再与0合并,没有相等的数先花1的代价合并为相等的数 CF1678B 因为最后对于一个合法的串,要求连续段长度为偶数,所以,我们只关心一个偶数位二元组 \((1,2),(3,4) \dots\) 两个对应的数是否相等 若不相等,我们只
阅读全文
摘要:CF1023A 一眼秒之题 因为整个s串至多有1个*号,所以可以把s串分为两个部分分别与t串的前后进行匹配,看看前后能不能适配即可 注意特判没有*的情况 CF1023B 一眼秒之题+1 简单的,就是一个数k拆成两个数之和,这两个数的值域为(1,n),分讨k为奇偶,然后简单转化即可 CF1023C 小
阅读全文
摘要:CF1656A 推导一下要满足任意 \(a_k\),\(a_i>=a_k, a_k>=a_j\) 所以只需要找到最大值最小值即可 CF1656B 有一个显然的结论,但显然我没有发现 (┬┬﹏┬┬) 考虑我们删去一个数并不会影响其余数的差值,所以我们只要找到一组 \(a_i+k=a_j\) 就可以判断
阅读全文
摘要:写在前面 本菜鸡线段树学了好多遍 但是每次写还是得很长时间 有时有一个细节还要琢磨半天 所以为了今后避免以上事情发生 本菜鸡决定将这么长时间以来对线段树的认识汇总 好日后清算 ps:写道一半又卡住了,感谢nyn大佬指点迷津 ps\(^2\):正好做到ybt线段树这一章,就扒出我原来的题解继续写吧 模
阅读全文
摘要:CF1974A 简单计数题 点击查看代码 #include<bits/stdc++.h> #define int long long using namespace std; int t; signed main(){ scanf("%lld",&t); while(t--){ int x,y,an
阅读全文
摘要:CF1945A 贪心简单题 先把b自己内部组合,再考虑与c组合 CF1945B 简单题数学题 因为在0m的时间内一定能覆盖所有的情况,所以对0m的时间内最多烟花数进行小学2年纪计算即可 CF1945C 简单题 枚举每一个断点,记录答案即可 CF1945D 挺好玩的一道贪心题。 转化一下式子,我们发现
阅读全文
摘要:CF1234A 简单题,求一下平均数,因为他好像不能有小数,所以向上取整即可 CF1234B 这道题还分B1,B2,我一下直接全过了 维护一个长度为k的队列,直接照着它模拟 然后用map(因为有负数)来判断这个数是否在队列中即可 CF1234C 你会发现每种水管因为可以旋转,所以只分两种情况,1,2
阅读全文
摘要:算法理解 RMQ问题就是对与区间最值查询一类问题的总称 对于RMQ问题的求解主要有以下两种方式: 线段树,建树O(n),查询O(logn),支持在线修改 ST表,预处理O(logn),查询O(1),不支持在线修改 这个单元主要讲解的是ST表 倍增思想 考虑一个数必然能被拆分成二进制,所以我们先预处理
阅读全文
摘要:CF1909A 一眼秒之题,我们发现就是四个方向选三个方向,若是存在一个点它的方向恰好在(0,0)点的另外一个方向,则一定不成立 枚举4个方向,发现有点在这个方向,显然选除这个点之外的三个方向的方案就不可行 点击查看代码 #include<bits/stdc++.h> using namespace
阅读全文

浙公网安备 33010602011771号