题目链接  8VC Venture Cup 2016 - Elimination Round

题意  把$n$个物品分成若干组,每个组的代价为组内价值的极差,求所有组的代价之和不超过$k$的方案数。

考虑DP,$f[i][j][k]$表示考虑到第$i$个物品的时候,还有$j$组尚未分配完毕,当前状态总代价为$k$的方案数。

先把$a[]$升序排序,那么极差就可以转化为后面的元素减前面的元素不停叠加的效果。

当考虑第$i$个物品的时候有$4$种转移方法:

当前物品新开一组并且继续等待分配;

当前物品新开一组,并且这个物品单独当做一种;

当前物品插入到之前的$j$组中的一组中去并让这个组继续等待分配,那么有$j$种插入的方案;

当前物品插入到之前的$j$组中的一组中去并作为这个组的最大值(停止分配),同样有$j$种插入的方案。

时间复杂度$O(n^{2}k)$

#include <bits/stdc++.h>

using namespace std;

#define rep(i, a, b)	for (int i(a); i <= (b); ++i)
#define dec(i, a, b) for (int i(a); i >= (b); --i)
#define MP make_pair
#define fi first
#define se second typedef long long LL; const int N = 202;
const int M = 1010;
const LL mod = 1e9 + 7; int n, m;
int a[N];
int x;
LL f[2][N][M];
LL ans; void up(LL &x, LL y){ x = x + y; x %= mod;} int main(){ scanf("%d%d", &n, &m);
rep(i, 1, n) scanf("%d", a + i); sort(a + 1, a + n + 1);
a[0] = a[1];
f[0][0][0] = 1; x = 1;
rep(i, 0, n - 1){
x ^= 1;
memset(f[x ^ 1], 0, sizeof f[x ^ 1]);
rep(j, 0, i){
rep(k, 0, m) if (f[x][j][k] && k + j * (a[i + 1] - a[i]) <= m){
int cnt = k + j * (a[i + 1] - a[i]);
up(f[x ^ 1][j + 1][cnt], f[x][j][k]);
up(f[x ^ 1][j][cnt], f[x][j][k]);
if (j){
up(f[x ^ 1][j][cnt], f[x][j][k] * j % mod);
up(f[x ^ 1][j - 1][cnt], f[x][j][k] * j % mod);
}
}
}
} ans = 0;
rep(i, 0, m) up(ans, f[x ^ 1][0][i]);
printf("%lld\n", ans);
return 0;
}

  

最新文章

  1. php使用CI发送qq和163邮件
  2. Thinkphp查询 1.查询方式 2.表达式查询 3.快捷查询 4.区间查询 5.组合查询 6.统计查询 7.动态查询 8.SQL 查询
  3. sys.argv
  4. hping原理、安装、使用详解介绍
  5. 转:SQL子句的执行顺序
  6. centos中的qt设计师所在的包
  7. Java1.8.0_05 环境配置
  8. mysqldump使用语法
  9. 关于ax+by=c的解x,y的min(|x|+|y|)值问题
  10. 遮罩层的实现(纯js兼容版)
  11. Eclipse中修改SVN用户名和密码方法[转]
  12. Eclipse快捷键 10个最有用的快捷键(转)
  13. Lucene自定义扩展QueryParser
  14. URAL 1297 Palindrome 后缀数组
  15. Tomcat 7最大并发连接数的正确修改方法(转)
  16. Centos7系统配置上的变化(一)
  17. Codekart 框架
  18. html标签大全(2)
  19. 【转载】使用sklearn优雅地进行数据挖掘
  20. laydate时间组件

热门文章

  1. wget下载https文件,服务器可以虚拟机中不行的问题
  2. 玩转Openstack之Nova中的协同并发(一)
  3. Python——数据类型之str
  4. CentOS7 编译安装nodejs,配置环境变量记录
  5. Oracle 监听/数据库 启动/关闭
  6. Java 以及JEE环境快速搭建
  7. .net的CLR
  8. asp.net 条码 一维条码 生成, 一共有32中格式类型
  9. BZOJ 3223 Tyvj 1729 文艺平衡树 | Splay 维护序列关系
  10. Apache2.4启动时报AH00526错误(Invalid command &#39;Order&#39;)