随笔分类 -  Luogu

摘要:没什么特殊的,与以前的相比会条理一些吧。 1 #include<bits/stdc++.h> 2 #define rep(i,a,n) for(register int i = a;i <= n;++i) 3 #define per(i,n,a) for(register int i = n;i < 阅读全文
posted @ 2020-11-05 21:36 _suta 阅读(142) 评论(1) 推荐(0)
摘要:数据合并的LCA,写的时间不算太长,查错查了好久,出现的问题有: 1.jph与jpg手误打错 2.双向边只加了一遍 代码: 1 #include<cstdio> 2 #include<cstring> 3 #include<cstdlib> 4 #include<algorithm> 5 #incl 阅读全文
posted @ 2020-10-14 00:02 _suta 阅读(115) 评论(0) 推荐(0)
摘要:今天的洛谷日报,seems good,果断收藏qwq 阅读全文
posted @ 2020-10-04 23:40 _suta 阅读(98) 评论(0) 推荐(0)
摘要:如题 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<queue> 5 #define rep(i,a,n) for(register int i = a;i <= n;++i) 6 using names 阅读全文
posted @ 2019-11-07 22:43 _suta 阅读(215) 评论(0) 推荐(0)
摘要:诡异而冗长的名字下一般没什么难题 坐标的本质是与原点的相对位置关系,所以改变全部坐标只要改变坐标系就好了。 阅读全文
posted @ 2019-11-02 17:55 _suta 阅读(161) 评论(0) 推荐(0)
摘要:可能这是一类题目吧,这道题比较典型,可以当作模板。 1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 5 const int Maxn = 30030; 6 7 int fa[Maxn],d[Maxn],size[Max 阅读全文
posted @ 2019-10-16 22:47 _suta 阅读(199) 评论(0) 推荐(0)
摘要:分别预处理每行每列前缀合,然后枚举两顶点坐标即可。读取线段上值时要注意去重! 1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 5 const int Maxn = 110; 6 int xs[Maxn][Maxn],y 阅读全文
posted @ 2019-10-15 11:06 _suta 阅读(173) 评论(0) 推荐(0)
摘要:这道题被我秒了是我太强了还是这道题太水了 苹果在树枝上,然后用子树更新节点的f数组即可。 code 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<vector> 5 using namespace std 阅读全文
posted @ 2019-10-14 23:06 _suta 阅读(150) 评论(0) 推荐(0)
摘要:题目背景 东方CannonBall(译名东方大炮弹)是近期发布的第一款获得ZUN授权的商业东方二次创作手机游戏,游戏关卡中玩家在类似大富翁的棋盘上与CPU或是玩家进行对战。 东方CannonBall(译名东方大炮弹)是近期发布的第一款获得ZUN授权的商业东方二次创作手机游戏,游戏关卡中玩家在类似大富 阅读全文
posted @ 2019-10-13 14:41 _suta 阅读(192) 评论(0) 推荐(0)
摘要:模板,注意有个地方打错好多次了: for(int j = 0;j < scc[i].size();j++)——是j++不是i++!!! 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<vector> 5 u 阅读全文
posted @ 2019-10-12 22:36 _suta 阅读(115) 评论(0) 推荐(0)
摘要:第一遍不太熟,第二遍飞快地打出来了 算是tarjan模板了吧,几天了也总算是有一点对tarjan求法过程的理解了。 if(!dfn[u])tarjan(u),low[x] = min(low[x],low[u]);//如果没有访问过u,则tarjan一下,如果u走出去搞到的low更小则用这个更新x的 阅读全文
posted @ 2019-10-10 23:45 _suta 阅读(187) 评论(1) 推荐(0)
摘要:如题,非常巧妙的一道图论*倍增,n <= 50 所以可以用高复杂度的Floyd搞。 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 5 using namespace std; 6 7 int ans = (1<<31)-1 阅读全文
posted @ 2019-10-10 23:18 _suta 阅读(95) 评论(0) 推荐(0)
摘要:如题 1 #include<iostream> 2 #include<algorithm> 3 #include<cstring> 4 #include<queue> 5 #include<vector> 6 #include<cstdio> 7 using namespace std; 8 9 c 阅读全文
posted @ 2019-10-10 20:22 _suta 阅读(87) 评论(0) 推荐(0)
摘要:lca的倍增策略不仅可以维护最近公共祖先,还可以维护其他具有区间可维护性的信息,例如本题中维护的最小限重。 本题调了好久,最后发现原因是数组用混了。以后一定要记准各个数组含义,千万不要混啊。。。 1 #include<iostream> 2 #include<cstdio> 3 #include<c 阅读全文
posted @ 2019-10-07 22:40 _suta 阅读(109) 评论(0) 推荐(0)
摘要:f[root][能覆盖向上几层-2] = 需要消防站数 转移过程很巧妙,38行这一句加上以后:10-〉100 for(int i = 3;i >= 0;i--)f[s][i] = min(f[s][i],f[s][i+1]); 作用:维护最优性。(i guess) 1 #include<iostre 阅读全文
posted @ 2019-10-07 10:14 _suta 阅读(121) 评论(0) 推荐(0)
摘要:并查集模板题。对于敌对关系有两种解决方案, 一是另开一个数组存敌人,这个数组无需预处理但是处理关系时需要特判,小心与0的合并; 还有一种巧妙的办法是把fa[]数组开两倍空间,fa[i]的敌人设为fa[i+n],需要预处理然而处理关系时直接合并就行了。 code: 阅读全文
posted @ 2019-10-05 14:32 _suta 阅读(102) 评论(0) 推荐(0)
摘要:扫描线板子题。注意两倍数组(不太清楚原理) 一位大佬的博客:https://blog.csdn.net/qq_38786088/article/details/78633478,讲的太好了。 阅读全文
posted @ 2019-10-04 20:02 _suta 阅读(194) 评论(0) 推荐(0)
摘要:数据好强啊,但是感觉我第二次写的应该是哪里出了问题? 27分代码(wa了好多点但是没有t): ac代码: 阅读全文
posted @ 2019-09-23 00:15 _suta 阅读(120) 评论(0) 推荐(0)
摘要:我代码能力可能有一定的了,要不然不能一遍写出来吧。。 要注意无解的处理! 阅读全文
posted @ 2019-09-22 23:06 _suta 阅读(220) 评论(0) 推荐(0)
摘要:原来其他hash与字符串hash不一样啊。。。 数组根本不用开那么大,够用就行了啊。。 实践是检验真理的唯一标准。。。 Luogu P4305不重复数字(板子) 阅读全文
posted @ 2019-09-18 23:39 _suta 阅读(180) 评论(0) 推荐(0)