【NOIP2017提高A组集训10.30】Group
来源:互联网 发布:mysql分类查询 编辑:程序博客网 时间:2024/05/22 17:02
Description:
1<=n<=200,1<=k<=1000
题解:
首先肯定得排个序,再考虑如何dp。
一个组的贡献可以是最大值减最小值,也可以是相邻的两个数的差的和。
这样就可以dp了,对于一个组,如果它没有结尾,那么每往后移以下,贡献就会增加。
可以设
对于新来的一个数,有4种情况:
1.新开一组但不做结尾。
2.新开一组且做结尾。
3.接到已有的一组后但是不做结尾。
4.接到已有的一组后并做结尾。
根据这4种情况可得方程。
Code:
#include<cstdio>#include<algorithm>#include<cstring>#define ll long long#define fo(i, x, y) for(int i = x; i <= y; i ++)using namespace std;const int mo = 1e9 + 7;const int N = 201, M = 1001;int n, k, o, a[N], f[2][N][M];int main() { freopen("group.in", "r", stdin); freopen("group.out", "w", stdout); scanf("%d %d", &n, &k); fo(i, 1, n) scanf("%d", &a[i]); sort(a + 1, a + n + 1); f[o][1][0] = f[o][0][0] = 1; fo(i, 2, n) { o = !o; memset(f[o], 0, sizeof f[o]); fo(j, 0, i - 1) { fo(p, 0, k) { int v = p + j * (a[i] - a[i - 1]); if(v > k) break; f[o][j + 1][v] += f[!o][j][p]; f[o][j + 1][v] %= mo; f[o][j][v] += f[!o][j][p]; f[o][j][v] %= mo; if(j) f[o][j][v] += (ll)f[!o][j][p] * j % mo, f[o][j][v] %= mo; if(j) f[o][j - 1][v] += (ll)f[!o][j][p] * j % mo, f[o][j - 1][v] %= mo; } } } int ans = 0; fo(p, 0, k) ans = (ans + f[o][0][p]) % mo; printf("%d", ans);}
阅读全文
1 0
- 【NOIP2017提高A组集训10.30】Group
- JZOJ5436. 【NOIP2017提高A组集训10.30】Group DP
- jzoj5436 【NOIP2017提高A组集训10.30】Group
- [JZOJ5436]【NOIP2017提高A组集训10.30】Group
- JZOJ 5436. 【NOIP2017提高A组集训10.30】Group
- 【JZOJ 5436】【NOIP2017提高A组集训10.30】Group
- JZOJ 5436. 【NOIP2017提高A组集训10.30】Group
- 【NOIP2017提高A组集训10.30】总结
- 【JZOJ5434】【NOIP2017提高A组集训10.30】Matrix
- JZOJ5434. 【NOIP2017提高A组集训10.30】Matrix
- JZOJ 5435. 【NOIP2017提高A组集训10.30】Graph
- JZOJ 5434. 【NOIP2017提高A组集训10.30】Matrix
- 【JZOJ 5434】【NOIP2017提高A组集训10.30】Matrix
- 【JZOJ 5435】【NOIP2017提高A组集训10.30】Graph
- JZOJ 5434. 【NOIP2017提高A组集训10.30】Matrix
- 【NOIP2017提高A组集训10.21】Dark
- 【NOIP2017提高A组集训10.21】Fantasy
- 【NOIP2017提高A组集训10.21】 总结
- 从Maya中导出COLLADA文件(转)
- mac os下svn无法cleanup的解决办法
- Java基础01
- 如何使用UE_LOG(转)
- Python添加库模块(转)
- 【NOIP2017提高A组集训10.30】Group
- 人工智能的福音-Erlang语言
- python使用有道翻译api请求
- C/C++宏定义的可变参数详细解析(转)
- GO语言环境
- 关于UE4 C++项目编译rapidxml库并运行时报错问题
- web和app测试的区别
- Unreal engine 4引擎游戏运行逻辑学习
- opencv在Xcode中的配置方式