上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 28 下一页
摘要: Jisoo tarjan求割边 对于一条$(u,v)$,如果他是割边,那么v子树中一定有一个点s$low_s>dfn_u$ 然后改造一下搜索函数 #include<iostream> #include<cstdio> #include<algorithm> #include<stack> using 阅读全文
posted @ 2021-07-27 23:36 Simex 阅读(34) 评论(0) 推荐(0) 编辑
摘要: Jisoo 如果这玩意成不了二分图,肯定有环,而且还是肯定有一个三元环 如果一个点到两个点的距离$>k$那么这两个点之间的距离一定大于k 那么我们只要确定存不存在这样的三元组就可以了 怎么确定呢 画图可得,如果有三元环,那么这个三元环一定会存在一种包括两端点的情况 然后就显然我们要找直径,检查每一个 阅读全文
posted @ 2021-07-27 23:33 Simex 阅读(51) 评论(0) 推荐(0) 编辑
摘要: Jennie 每个单词只有两个字符,那么就在这两个字符之间连一条边。 最后n+1个字符,显然是所有单词只出现了一遍 这样我们的目标就是找一条欧拉路径就可以了 #include<iostream> #include<cstdio> #include<algorithm> using namespace 阅读全文
posted @ 2021-07-27 23:10 Simex 阅读(29) 评论(0) 推荐(0) 编辑
摘要: Rose $O(\sqrt n)$也是可以接受的对吧 化简式子得$gcd(\frac,\frac)=1$和$gcd(\frac,\frac)=1$ 然后枚举$b_1$的因子就可以了 #include<iostream> #include<cstdio> #include<cstring> #incl 阅读全文
posted @ 2021-07-27 13:49 Simex 阅读(29) 评论(0) 推荐(0) 编辑
摘要: Lisa 这个$n!$不如先简简单单看成n,然后可知,$x>n$且$y>n$不如令$x=n+a,y=n+b$代入原式子,可知 \(a*b=n^2\) 那么a,b就是它的一对因子了 #include<iostream> #include<cstdio> #include<algorithm> #inc 阅读全文
posted @ 2021-07-27 13:38 Simex 阅读(52) 评论(0) 推荐(0) 编辑
摘要: Lisa 显然状态压缩 然后,对于一个点集S,我们很容易求出这个点集可以形成的任意图$F_S$ 这个很容易预处理出来 然后呢,对于这个直接求联通的方案书并不容易,但是,可以用总方案减去不连通的方案数。 不连通的方案视为两个点集,一个点集随便,另一个点集必须联通。 所以在预处理完了以后,我们首先要做的 阅读全文
posted @ 2021-07-26 21:12 Simex 阅读(26) 评论(0) 推荐(0) 编辑
摘要: jennie 树上dp求直径的模板 #include<iostream> #include<cstdio> #include<cstring> #include<vector> using namespace std; int n; vector<int> v[100001]; int x,y; i 阅读全文
posted @ 2021-07-25 20:41 Simex 阅读(28) 评论(0) 推荐(0) 编辑
摘要: P1908 逆序对 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 树状数组可以干这个事情 树桩数组维护一个下标啦 然后离散化一下,sort,unique,二分确定每一个数在新序列的下标 也就是第i个数大小的排名。 然后算一下有多少个数,拍在他前面且大小排名在它之前。 #inclu 阅读全文
posted @ 2021-07-25 16:16 Simex 阅读(49) 评论(0) 推荐(0) 编辑
摘要: blackpink yyds 这道题目还是很有意思的,叫什么最短路径生成树。 显然的一个做法就是用类似于prim的方法,维护一个已经和1联通的集合以及所有点到1的最短路 然后按照距离dis的距离进行枚举,每次从集合里找到可以在加进去之后令新点补全。 然后这个过程可以懒得维护,直接检查每一个点和他周围 阅读全文
posted @ 2021-07-25 16:09 Simex 阅读(68) 评论(0) 推荐(0) 编辑
摘要: Archie 树链刨分之后很显然就成了一条一条的链 那么用线段树维护一下就行了 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int n,m,r,pp; s 阅读全文
posted @ 2021-07-21 20:32 Simex 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 数据范围小地可怜 那就模拟退火 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; int ans[50]; int son[50 阅读全文
posted @ 2021-07-21 15:37 Simex 阅读(17) 评论(0) 推荐(0) 编辑
摘要: Archie 练习一下树刨 只要记录一下到链顶的距离以及到父亲的距离就行了 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int n,m; struct e 阅读全文
posted @ 2021-07-20 19:40 Simex 阅读(45) 评论(0) 推荐(0) 编辑
摘要: Archie 本文为倍增做法 后缀数组题 后缀数组是啥,把所有的后缀排个序就是后缀数组了 显然的暴力做法就是全部sort一遍 这不白瞎 我们利用倍增的思想,显然可以把一个字符串分成两半进行比较就可以了 引用一下wiki的图片。 这里有两个数组 $SA_i$表示第i小的后缀的编号 而$RK_i$表示第 阅读全文
posted @ 2021-07-20 17:53 Simex 阅读(99) 评论(0) 推荐(0) 编辑
摘要: Archie 这只是一道橙题,为什么我要写呢,。 因为这个题可以用基数排序做 以下做法为基数排序+计数排序 计数排序 和桶排有所相似 首先,统计每个值的出现次数 然后呢,在值域范围内统计次数的前缀和 然后从后往前扫并统计 for(int i=m;i>=1;--i){ b[tot[3][a[i]%10 阅读全文
posted @ 2021-07-20 17:11 Simex 阅读(123) 评论(0) 推荐(0) 编辑
摘要: Archie 当年咋就不加ull呢 很简单,按照二进制位拆就行了 /* �Һܱ�Ǹ */ #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<map> #include<stack> # 阅读全文
posted @ 2021-07-20 08:35 Simex 阅读(56) 评论(0) 推荐(0) 编辑
摘要: Archie 线段树精简版 没有lazy,没有pushdown #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #define int long long using namespace std; c 阅读全文
posted @ 2021-07-19 20:57 Simex 阅读(59) 评论(0) 推荐(0) 编辑
摘要: Archie 这是个什么东西呢 一看数据范围,肯定$o(n)$,带个$log$都不太肯能,再一看体面,y似乎没大有用 移项,发现$x+y=2z$这是啥意思呢,就是说,x+y需要是偶数,x,y奇偶性相同,颜色相同,那么我们何不把这些东西扔到一块去 然后,每与每一对数推式子,发现对于有k个数的堆,他的贡 阅读全文
posted @ 2021-07-19 20:28 Simex 阅读(112) 评论(0) 推荐(0) 编辑
摘要: splay splay与他的解析 二叉搜索树 我们搞一棵树,保证左子树所有点的权值比父亲小,右子树所有点权值比父亲大 显然这个玩意可以快速查询一个数存不存在,排名啦啥的 插入的时候直接顺序造节点,删除的时候,断开重连是件很愚蠢的事情 应该把删除节点和他右子树最左边那个或者左子树最右边那个交换,销毁它 阅读全文
posted @ 2021-07-19 16:02 Simex 阅读(57) 评论(0) 推荐(0) 编辑
摘要: Archie 怎样用模拟退火搞序列 随机交换就可以了 dp检查 #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> #include<cstring> using namespace std; int n,m 阅读全文
posted @ 2021-07-19 09:07 Simex 阅读(31) 评论(0) 推荐(0) 编辑
摘要: Archie 这叫啥啊,区间异或+区间求和 我用动态开点写的 #include<iostream> #include<cstdio> #include<algorithm> #define ll long long using namespace std; int n,m; int x,y,z; i 阅读全文
posted @ 2021-07-18 16:31 Simex 阅读(34) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 28 下一页