08 2019 档案
摘要:最短路 Floyd多源最短路 基本用法 for(int i=1;i<=p;i++) for(int j=1;j<=p;j++) dis[i][j]=INF; for(int k=1;k<=p;k++) for(int i=1;i<=p;i++) for(int j=1;j<=p;j++) dis[i
阅读全文
摘要:题意: 给定一块n m的矩形区域,在区域内有若干点,每个顶点发出一条射线,有上下左右四个方向,问矩形被分成了几个区域? 思路: 稍加观察和枚举可以发现,区域数量=射线交点数+1(可以用欧拉定理验证,但是我不会),问题就转变为统计射线交点数量 可以将四个方向的射线分开,用左右的射线去查询与多少个上下的
阅读全文
摘要:原题:https://ac.nowcoder.com/acm/contest/889/H 题意: 给你一些竹子,q个询问,问你从第l到第r个竹子,如果你要用y次砍完它,并且每次砍下来的长度是相同的,问你第x次砍在哪。 思路: 先求前缀和,(l,r)区间要砍y刀,每刀总长度step=(sum[r] s
阅读全文
摘要:主席树 可持续化线段树:在普通线段树的基础上,能询问/修改每个历史版本的线段树的信息(每次询问与修改都会产生一个新的版本)。 即每次更新都会产生一个新的树,由于是单点更新,因此只会有一条链发生改变,每次只要新加一条链即可,当然链上的节点一个儿子是旧的节点,一个儿子是新的节点。为了能够访问不同版本的线
阅读全文
摘要:树状数组 模板 例题 HH的项链 大小为N( include include include using namespace std; const int maxn=1e6+5; struct Q{ int l,r,id; }q[maxn]; bool cmp(Q a,Q b){ return a.
阅读全文
摘要:原题:https://ac.nowcoder.com/acm/contest/889/J 题意: 二维平面上有n个矩形,每个矩形左下角是(i−1,Li)(i−1,Li), 右上角是(i,Ri)(i,Ri),矩形一开始全是黑色,平面不被矩形覆盖的地方是白色,你要把某些黑色区域涂白(一个矩形可以内部颜色
阅读全文
摘要:原题:https://ac.nowcoder.com/acm/contest/889/D 题意: 给定大小为n( include include using namespace std; typedef long long ll; const ll maxn=1e6+5; struct node{
阅读全文
摘要:原题:https://ac.nowcoder.com/acm/contest/889/E 思路: 做并查集,维护每个集合大小,初始化操作前的总方案数,每次合并两个集合时减少的数量=合并的两个集合大小相乘, 再乘以从其他集合中选出2个不在一个集合内的方案数。 从其他集合中选出2个不在一个集合内的方案数
阅读全文
摘要:莫队算法 普通莫队(二维) 莫队算法要求询问能离线处理,并且对于两个相邻询问能够快速转移(通常是O(1)、O(log n)) 基础时间复杂度:L移动:\(O(m*block)\),R移动:\(O(n^2/block)\) ,$block=n/sqrt(m)$时整体复杂度最小,为$O(n*sqrt(m
阅读全文
摘要:原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=6534 题意: 给你一个数组,对于第i个数来说,如果存在一个位置j,使得j i并且a[j] k include include using namespace std; const int maxn=27
阅读全文
摘要:原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=6655 简单博弈问题,A,B手里各有n,m张牌,牌有颜色,两人轮流出牌(A先出),一个人只能打出对放未打出过的颜色的牌(可以打出自己打出过的颜色的牌),当一方不能再打出牌时,对方获胜。 博弈策略:优先选择
阅读全文
摘要:模板 next数组 //下标从0开始 int Next[maxn];//Next[i]是p[0~i-1]的前缀等于后缀的最大长度(下标+1) void next_pre(int m){ int i,j; j=Next[0]=-1;//检测到j 1时就停止迭代 i=0; while(i<m){ whi
阅读全文
摘要:最小生成树 Prim 本质是维护一个集合,选择一个点作为初始点A先加入集合,遍历未加入集合的点,将它们到A的距离设为到集合的最短距离,选则其中的最小值,将该点再加入集合。每次有新的点加入集合后,都用该点更新其余未加入集合的点到集合的距离。(与dijkstra不同的是,prim每次选择到集合最近的点,
阅读全文
摘要:时间常数优化方法 1.long long改成int,在读入和初始化时速度会变快(有的时候影响不小,在不确定是否会超时的情况下不能盲目用long long) 2.寻址优化,减少数组的访问,多次访问相同数组元素时可以用引用来替代,尽量用临时变量减少数组访问次数。例子:传统递归版线段树用数组存储点的lef
阅读全文
摘要:牛客第一场 (通过)Integration (https://ac.nowcoder.com/acm/contest/881/B) (未补)Euclidean Distance (https://ac.nowcoder.com/acm/contest/881/C) (未补)Parity of Tup
阅读全文

浙公网安备 33010602011771号