Codeforces 626F Group Projects (DP)
2024-09-19 03:54:07
题目链接 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;
}
最新文章
- php使用CI发送qq和163邮件
- Thinkphp查询 1.查询方式 2.表达式查询 3.快捷查询 4.区间查询 5.组合查询 6.统计查询 7.动态查询 8.SQL 查询
- sys.argv
- hping原理、安装、使用详解介绍
- 转:SQL子句的执行顺序
- centos中的qt设计师所在的包
- Java1.8.0_05 环境配置
- mysqldump使用语法
- 关于ax+by=c的解x,y的min(|x|+|y|)值问题
- 遮罩层的实现(纯js兼容版)
- Eclipse中修改SVN用户名和密码方法[转]
- Eclipse快捷键 10个最有用的快捷键(转)
- Lucene自定义扩展QueryParser
- URAL 1297 Palindrome 后缀数组
- Tomcat 7最大并发连接数的正确修改方法(转)
- Centos7系统配置上的变化(一)
- Codekart 框架
- html标签大全(2)
- 【转载】使用sklearn优雅地进行数据挖掘
- laydate时间组件
热门文章
- wget下载https文件,服务器可以虚拟机中不行的问题
- 玩转Openstack之Nova中的协同并发(一)
- Python——数据类型之str
- CentOS7 编译安装nodejs,配置环境变量记录
- Oracle 监听/数据库 启动/关闭
- Java 以及JEE环境快速搭建
- .net的CLR
- asp.net 条码 一维条码 生成, 一共有32中格式类型
- BZOJ 3223 Tyvj 1729 文艺平衡树 | Splay 维护序列关系
- Apache2.4启动时报AH00526错误(Invalid command &#39;Order&#39;)