随笔分类 - CF\AT dp
摘要:原题链接 题意:每次加一个数,要求最小 $\sum max_ - min_, 题解:本来以为就是纯贪心,然后发现竟然是区间dp,就是先排完序,然后就加入然后取 \(min\)。 代码: #include <iostream> #include <bits/stdc++.h> using namesp
阅读全文
摘要:原题链接 题意:给出一棵树,边权全为 \(1\),要求出所有的距离为 \(k\) 的点对。 题解:暴力树上 \(dp\) 真的没想到,\(dp_{i,j}\) 代表的是距离 \(i\) 点的距离为 \(k\) 的点对数量。 代码: #include <iostream> #include <bits
阅读全文
摘要:原题链接 题意:给出一个序列长度为 \(n \leqslant 1e6\),$a_i \leqslant 1e9$然后要求取某些数字,其和为 \(m \leqslant 3000\) 的倍数,是否可以。 题解:先把所有数都作为 \(a_i = a_i \mod m\) 存起来。然后可知,如果数量大于
阅读全文
摘要:原题链接 题意:一棵树,有高度,在一维平面上,可以向左向右砍到,不允许重叠,然后求最大砍倒树的数量。 题解:从左往右的话,就现往左倒,如果不可以往左倒,就往右倒。 代码: #include <bits/stdc++.h> using namespace std; typedef long long
阅读全文
摘要:原题链接 题意:给一个数字,要求构造一个数字,只通过删除某些位的数,得到的是能整除 \(8\) 的数字。 题解: 代码: #include <bits/stdc++.h> using namespace std; typedef long long LL; const int N = 2e5 + 1
阅读全文
摘要:原题链接 题意:有 \(k\) 叉树,边权是从 \(1\) 到 \(k\),要求边权和为 \(n\),至少有一条边的边权大于 \(d\) 的路径总数量。 题解:因为边权连续,所以 \(f_i = \sum_{j = n-k}^{j < i} f_j\) 就是所有情况的路径数量,然后还有就是,\(g_
阅读全文