
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
初始设f[0]=1f[0]=1f[0]=1,对于每个a[i]a[i]a[i],有如下转移式f[j]=f[j−a[i]]f[j]=f[j-a[i]]f[j]=f[j−a[i]]这样我们就得出了一个O(NK)O(NK)O(NK)的DP如果转换为数学形式,令f(i,j)表示只拿前j个物品时的函数值,那么就有f(i,j)=∑i=0⌊iaj⌋f(i−aj,j−1)f(i,j)=\sum_{i=0}^{\lf
我们要求的结果其实就是下图中所有竖线的总长度然后我们知道这是一个反比例函数,其对称轴是y = x所以我们可以考虑只计算一半"面积"的方案。所以我们可以将下图计算结果*2然后再减去下图的计算结果,n个n长度就是n×n然后再减去下图的计算结果,\sqrt{n} 个\sqrt{n} 长度就是\sqrt{n}\times \sqrt{n}然后再减去下图的计算结果,n个n长度就是n×n#includ
构造矩阵:一开始随便写了一个矩阵发现为满足,每行每列的异或和为0又因为是4的倍数然后每个数加上16去构造剩下得部分#include <iostream>#include <cstdio>#include <stack>#include <vector>#include <map>#include <cstring...
A. Dreamoon and Ranking Collection题意:题意不太好理解。简单来讲就是,给出一组数,能从1最多数到几,不够的用数来填,最多填x次。思路:代码很简单…先出现过的地方肯定不要花费了,就是补下没出现过的地方就好了…然后判断下最后能连到哪个数就是答案#include <iostream>#include <cstdio>#include &...







