摘要:
题目大意:给定一个 N 个点,M 条边的无向图,现在要选出图中的一个顶点集合,使得集合种的顶点不直接相邻,且这张图的所有边都被该顶点集合覆盖,求该顶点集合大小的最小值,若不能完成覆盖,则输出 impossible。 题解:由于要求集合中顶点不能相邻,且每条边都要被覆盖,则对于任意一条边来说,连接该边 阅读全文
摘要:
题目大意:后序遍历 题解:建立二叉树的码风不知道怎么突然跟线段树一样了...当然,这道题不建树也是可以的。 代码如下 cpp include using namespace std; const int maxn=1100; int n,len,sum[maxn];// cnt of 0 char 阅读全文
摘要:
题目大意:给定一个 N 个点,M 条边的有向图,求每个点能够到达的节点的最大编号是多少。 题解:因为题中所给图不一定是一个 DAG,因此无法进行按照拓扑序来动态规划,需要另辟蹊径。由于求的是每个节点能够到达的最大编号,因此可以考虑反向建图,并依次从大到小枚举节点编号,将该节点能够到达的节点修改为当前 阅读全文
摘要:
题目大意:给定 N 种不同种类的硬币,每种硬币的重量范围在一个可变区间内,但是价值恒定,求给定一个重量 W,求有多少种面值不同的组合方式。 题解:如果硬币的重量恒定,那么就是一道裸的完全背包问题。因此, 可以先将给定的硬币拆分成多个重量不同的硬币。 总的来说,这道题所求的是目标状态有多少种可能的解, 阅读全文
摘要:
题目大意:给定一个长度为 N 的序列,求这个序列中等差数列的个数。 题解:根据题意应该是一道序列计数 dp。设 $dp[i][j]$ 表示以第 i 项结尾,公差为 j 的等差数列的个数,则状态转移方程为 $dp[i][d]=\sum\limits_{j=1}^{i 1} dp[j][d]$。由于一个 阅读全文
摘要:
题目大意:列出从一个给定上界的双平方数集合中选出若干个数,组成长度为 N 的等差数列的首项和公差。 题解:首先,因为是在双平方数集合上的等差数列,而且根据题目范围可知,上界不超过 2e5,可以先打表,将符合条件的双平方数存入一个数组,并排序离散化。 在等差数列中,只要数列中的前两项确定,整个数列就会 阅读全文