随笔分类 - cf
摘要:Jennie 搞出一个二维dp'还是比较显然的 #include<cstdio> #include<iostream> #include<cstring> #include<iomanip> #include<cmath> #include<algorithm> #define int long l
阅读全文
摘要:Lisa 删边似乎挨个删复杂度也不会高到离谱 毕竟也就是$O(2*n)$的事。,因为显然可以想到先删点权最大的点,然后拓扑排序缩点啥的来一波 但是也可以从边的考虑,每一条边只会被删一次,且应会是在删两边较大的那个点的点权的时候被删,这样从边的视角考虑就省事了。 #include<cstdio> #i
阅读全文
摘要:Lisa 如果真的要枚举,排序暴力硬做的话肯定会挂掉 那么就是要优化的,显然划分一个2c的序列,答案不回比划分两个c的更优 可以画个图证明一下 而划分成小于c的序列,就相当于划分成一堆1的序列 划分成c-2c的序列呢?显然是不如划分成c和另外一个,肯定不会更差 这样的话就检查划分成c和1就可以解决了
阅读全文
摘要:JIsoo 就是一个背包 #include<cstdio> #include<iostream> #include<cstring> #include<iomanip> #include<cmath> #include<algorithm> using namespace std; #define
阅读全文
摘要:Jisoo 作为dp来说这个题没啥意思 但是从中我们可以学到数学证明对于dp的指导 例如,只要 \(a_j\) 和$a_i$ 都不等于 \(0\) 那么这个序列是对数增长 这样似乎暴力也不怎么暴力了 #include<iostream> #include<cstdio> #include<cstri
阅读全文
摘要:Lisa 尺取法搞一波 然后前缀和优化一波 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; int a[500005]; bo
阅读全文
摘要:Lisa 显然的dp,只需要再二分查找一下 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; int n; struct to{
阅读全文
摘要:LIsa 只要理解kmp,就会知道应该找前缀和后缀了 把当前输入的串和已知的答案串拼起来,然后中间加上一个小小的不存在字符,跑kmp #include<cstdio> #include<iostream> #include<cstring> #include<iomanip> #include<cm
阅读全文
摘要:Jisoo kmp中的next数组表示按照当前位置结尾的相同的最大真前缀和后前缀长度 那么如果这玩意真的存在,那么next[n] 一定不为零 然后枚举一下2-n-1,找找有没有相等的next就可以了 #include<cstdio> #include<iostream> #include<cstri
阅读全文
摘要:Jisoo 不显然的树上dp 定义$f_{i,j}$为第i位和为子树所选奇数个/偶数个点的方案数 然后显然会发现奇数加奇数等于偶数等规律 然后就可以转移了 #include<cstdio> #include<iostream> #include<cstring> #include<iomanip>
阅读全文
摘要:Jinnie 处理出所有可能的品,然后尺取法找所有的正好n个的地方,取答案 正确性?假如正确答案不是n个连在一起,那么中间无论多了谁,一定会不止多一个 并且一定会存在一种n个在一起的更优解 #include<iostream> #include<cstdio> #include<vector> #i
阅读全文
摘要:Jennie 这也就是个裸的一批的换根dp #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<queue> #include<stack> #include<map> #define
阅读全文
摘要:Lisa 先想一个朴素的 dp $f_{i,j}$表示前 \(i\) 个把 \(i\) 放在子序列 \(j\) 位的方案数,显然我们的 \(j\) 不是 $a_i$的因数的时候 会直接从上一位继承下来 是不是有 背包那味了 对于每一个 \(a_i\) 我们分解质因子再转移 #include<iost
阅读全文
摘要:jennie 求形如abababababa的子序列数量? \(f_i=\sum_{j=1}^{i-1}f_j\quad a_i=b且 a_j=a\) \(f_i=\sum_{j=1}^{i-1}f_j+1\quad a_i=a且 a_j=b\) 顺便可以发现,以b结尾不能作为答案 所以说可以优化成没
阅读全文
摘要:Jennie 根据异或的性质,,如果A到B的路径和A到C的路径的异或和都是零 那么B到C的也都是零 所以说嘛,我们只要考虑从一个叶子节点外走就可以了 如果这一个叶子节点到其他叶子节点的路径都是偶数,,那么全设为1就是一种很好的方案 如果有奇数的路径,那么再搞出两个数,比如说2和3,就能构造出来了 那
阅读全文
摘要:Lisa 这一道题绝对恶意评分了 0-9,那么不如全求一遍 对于每一个数字的话,显然先改差为 1 的,然后2 并且把大数改小是优先的 而且把大数该小从前往后,小数改大从后往前 这样我们先记录一下每个数字有多少个 就好办了 #include<iostream> #include<cstdio> #in
阅读全文
摘要:Rose 很有趣的题目一道 显然的贪心就是按照时间顺序做,先最耗时短的,零点前的都零点交,零点后的都做完就交 正确性怎样保证呢 我们按照这个耗时进行排名后,假如交换两个任务的话 如果这两个任务都再零点前,没有影响, 如果后一个任务跨零点了,那么交换以后,后面的任务的罚时不会变,但前面的任务有可能也要
阅读全文
摘要:Lisa 这是个什么玩意 先打个表 然后发现a的取值似乎非常有规律 a的一些段落是连续的,然后这些连续的a对于每一块 a,b,c的值是从$2^{2n-2}-2^{2n}-1$ 且对于b,如果我们把b在同一块里的值分成四部分的话,会发现首项大小是固定的,这四块的大小关系是固定的,这四块的取值范围是固定
阅读全文
摘要:Jisoo 首先可以意识到,对于这个数组,他的异或和一定不会超过数值和 所以说 \(u>v\) 直接挂了 然后意识到,区间和的奇偶性和异或和是一样的,(看第一位),这样$u!=v$也不行 剩下的呢,可以直接构造 \(u,\frac{v-u}{2},\frac{v-u}{2}\)(已经保证了分子为偶数
阅读全文
摘要:Lisa 显然对于每一个时刻,可以调到的温度是一个区间 那么这样来做的话,我们只需要算出这个区间,然后去$∪$就可以了 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #define int long
阅读全文

浙公网安备 33010602011771号