随笔分类 -  洛谷

上一页 1 2 3 4 5 6 7 ··· 21 下一页
摘要:Jennie 搞出一个二维dp'还是比较显然的 #include<cstdio> #include<iostream> #include<cstring> #include<iomanip> #include<cmath> #include<algorithm> #define int long l 阅读全文
posted @ 2021-10-21 22:59 Simex 阅读(40) 评论(0) 推荐(0)
摘要:Jinnie 显然还是一个线性基的问题,那么很显然要用线性基 对于一堆石头$S_1,S_2,S_3 $,如果加入X会令异或值为0的话,那么显然我们可以拿出一块再把x放进去 这样只需要线性基检查能不能放,从大到小放就行。 这告知了我们求线性基可以考虑改变顺序 #include<bits/stdc++. 阅读全文
posted @ 2021-10-21 11:33 Simex 阅读(27) 评论(0) 推荐(0)
摘要:Jinnie 显然是一个线性基的问题,那么很显然要用线性基 想要知道所有的方案数,线性基的性质就是用其中的元素$xor$ 出来的元素保证互不相等 这样的话只要知道线性基内元素的数量就可以了 #include<bits/stdc++.h> #define int long long using nam 阅读全文
posted @ 2021-10-21 11:22 Simex 阅读(26) 评论(0) 推荐(0)
摘要:Lisa 删边似乎挨个删复杂度也不会高到离谱 毕竟也就是$O(2*n)$的事。,因为显然可以想到先删点权最大的点,然后拓扑排序缩点啥的来一波 但是也可以从边的考虑,每一条边只会被删一次,且应会是在删两边较大的那个点的点权的时候被删,这样从边的视角考虑就省事了。 #include<cstdio> #i 阅读全文
posted @ 2021-10-20 16:03 Simex 阅读(31) 评论(0) 推荐(0)
摘要:Lisa 如果真的要枚举,排序暴力硬做的话肯定会挂掉 那么就是要优化的,显然划分一个2c的序列,答案不回比划分两个c的更优 可以画个图证明一下 而划分成小于c的序列,就相当于划分成一堆1的序列 划分成c-2c的序列呢?显然是不如划分成c和另外一个,肯定不会更差 这样的话就检查划分成c和1就可以解决了 阅读全文
posted @ 2021-10-20 15:55 Simex 阅读(41) 评论(0) 推荐(0)
摘要:JIsoo 期望得分要dp,然后期望长度是有关系的 那就一块dp #include<cstdio> #include<iostream> #include<cstring> #include<iomanip> #include<cmath> #include<algorithm> using nam 阅读全文
posted @ 2021-10-19 16:01 Simex 阅读(36) 评论(0) 推荐(0)
摘要:JIsoo 就是一个背包 #include<cstdio> #include<iostream> #include<cstring> #include<iomanip> #include<cmath> #include<algorithm> using namespace std; #define 阅读全文
posted @ 2021-10-19 16:00 Simex 阅读(30) 评论(0) 推荐(0)
摘要:JIsoo 关键在于压缩长度 不会证明怎么办 感性理解开个大数$st10$ #include<cstdio> #include<iostream> #include<cstring> #include<iomanip> #include<cmath> #include<algorithm> usin 阅读全文
posted @ 2021-10-19 15:58 Simex 阅读(37) 评论(0) 推荐(0)
摘要:JIsoo 首先考虑floyd本质就是dp,然后扔进新的一维$f_{i,j,k}$,表示i和j之间经过k条边的最短路 枚举的时候是5个for?那也太疯狂了。 考虑一下如果i和j经过k能够作为当前边数的最短路的话,如果k和i,j距离不是1,那么在这一条路径上,一定可以用距离i为1的那个点来更新,这样的 阅读全文
posted @ 2021-10-19 14:27 Simex 阅读(41) 评论(0) 推荐(0)
摘要:Jisoo 找一个最长的周期 就是要找最短的border然后加上中间的部分 这样 $kmp$出动 然后发现可以 “记忆化”一波进行优化 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<alg 阅读全文
posted @ 2021-10-17 17:42 Simex 阅读(42) 评论(0) 推荐(0)
摘要:Jisoo 作为dp来说这个题没啥意思 但是从中我们可以学到数学证明对于dp的指导 例如,只要 \(a_j\) 和$a_i$ 都不等于 \(0\) 那么这个序列是对数增长 这样似乎暴力也不怎么暴力了 #include<iostream> #include<cstdio> #include<cstri 阅读全文
posted @ 2021-10-17 17:34 Simex 阅读(33) 评论(0) 推荐(0)
摘要:Lisa 尺取法搞一波 然后前缀和优化一波 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; int a[500005]; bo 阅读全文
posted @ 2021-10-17 11:49 Simex 阅读(41) 评论(0) 推荐(0)
摘要:Lisa 显然两个在一起的空格是没有意义的。 所以空格的相对的一定是字符 这样在匹配的时候考虑对于两个字符,加不加空格和加在哪里 因为连续的空格有额外贡献 所以要记录有没有和在哪里 #include<iostream> #include<cstdio> #include<cstring> #incl 阅读全文
posted @ 2021-10-16 17:28 Simex 阅读(42) 评论(0) 推荐(0)
摘要:Lisa 显然的dp,只需要再二分查找一下 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; int n; struct to{ 阅读全文
posted @ 2021-10-16 17:24 Simex 阅读(38) 评论(0) 推荐(0)
摘要:LIsa 就DP本身来说非常好想,但是怎样知道这个东西有没有在字典里出现过呢 hash似乎还是有点慢 这时候就应该用字典树了 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorith 阅读全文
posted @ 2021-10-14 21:49 Simex 阅读(19) 评论(0) 推荐(0)
摘要:Lisa 很水的kmp小题 思考一下就可以知道,肯定要跑kmp,但是当我们删掉一个串后剩下怎么办 答:从上一次的位置接着匹配 记录一下这个东西就行了 #include<iostream> #include<cstring> #include<iostream> using namespace std 阅读全文
posted @ 2021-10-13 17:56 Simex 阅读(38) 评论(0) 推荐(0)
摘要:LIsa 就是一个背包 #include<cstdio> #include<iostream> #include<cstring> #include<iomanip> #include<cmath> #include<algorithm> #define int long long using na 阅读全文
posted @ 2021-10-12 15:56 Simex 阅读(40) 评论(0) 推荐(0)
摘要:LIsa 只要理解kmp,就会知道应该找前缀和后缀了 把当前输入的串和已知的答案串拼起来,然后中间加上一个小小的不存在字符,跑kmp #include<cstdio> #include<iostream> #include<cstring> #include<iomanip> #include<cm 阅读全文
posted @ 2021-10-12 15:53 Simex 阅读(27) 评论(0) 推荐(0)
摘要:Jisoo 枚举一下next也没事 也可以运用结论 这个结论画个图证明就可以了 #include<cstdio> #include<iostream> #include<cstring> #include<iomanip> #include<cmath> #include<algorithm> us 阅读全文
posted @ 2021-10-12 13:58 Simex 阅读(39) 评论(0) 推荐(0)
摘要:Jisoo kmp中的next数组表示按照当前位置结尾的相同的最大真前缀和后前缀长度 那么如果这玩意真的存在,那么next[n] 一定不为零 然后枚举一下2-n-1,找找有没有相等的next就可以了 #include<cstdio> #include<iostream> #include<cstri 阅读全文
posted @ 2021-10-12 13:53 Simex 阅读(35) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 7 ··· 21 下一页