codeforces626F
CF626F Group Projects
输入输出样例
3 2
2 4 5
3
4 3
7 8 9 10
13
4 0
5 10 20 21
1 hint:n<=200,k<=1000 sol:
把a排序
注意到不和谐度一定是一个终点的值-起点的值,中间可能还有几个非终非起的点,随便放即可
dp[i,j,k]表示前i个数,还有j个起点未匹配,当前总贡献为k个方案数
转移就是枚举当前点做起点,中间点,终点
然后就会挂的很惨,有一种很坑的东西,就是一个点既是起点又是终点
/*
把a排序
注意到不和谐度一定是一个终点的值-起点的值,中间可能还有几个非终非起的点,随便放即可
dp[i,j,k]表示前i个数,还有j个起点未匹配,当前总贡献为k个方案数
转移就是枚举当前点做起点,中间点,终点
然后就会挂的很惨,有一种很坑的东西,就是一个点既是起点又是终点
*/
#include <bits/stdc++.h>
using namespace std;
typedef int ll;
inline ll read()
{
ll s=; bool f=; char ch=' ';
while(!isdigit(ch)) {f|=(ch=='-'); ch=getchar();}
while(isdigit(ch)) {s=(s<<)+(s<<)+(ch^); ch=getchar();}
return (f)?(-s):(s);
}
#define R(x) x=read()
inline void write(ll x)
{
if(x<) {putchar('-'); x=-x;}
if(x<) {putchar(x+''); return;}
write(x/); putchar((x%)+'');
}
#define W(x) write(x),putchar(' ')
#define Wl(x) write(x),putchar('\n')
const int Mod=,N=;
int n,m,a[N];
int dp[][N][];
inline void Ad(int &x,int y)
{
x+=y; x-=(x>=Mod)?Mod:;
}
int main()
{
freopen("codeforces626F_data.in","r",stdin);
int i,j,k,t;
R(n); R(m);
for(i=;i<=n;i++) R(a[i]);
sort(a+,a+n+);
dp[t=][][]=;
for(i=;i<=n;i++)
{
t^=;
for(j=;j<=min(i,n>>);j++)
{
int oo=a[i]-a[i-];
for(k=;k<=m;k++)
{
dp[t][j][k]=;
if(j&&k>=(j-)*oo) Ad(dp[t][j][k],dp[t^][j-][k-(j-)*oo]);
if(k>=j*oo) Ad(dp[t][j][k],1LL*dp[t^][j][k-j*oo]*j%Mod);
if(k>=(j+)*oo) Ad(dp[t][j][k],1LL*dp[t^][j+][k-(j+)*oo]*(j+)%Mod);
if(k>=j*oo) Ad(dp[t][j][k],dp[t^][j][k-j*oo]);
}
}
}
int ans=;
for(i=;i<=m;i++) Ad(ans,dp[t][][i]);
Wl(ans);
return ;
}
codeforces626F的更多相关文章
- [Codeforces626F] Group Projects (DP)
Group Projects Description There are n students in a class working on group projects. The students w ...
- DP的序--Codeforces626F. Group Projects
$n \leq 200$个数,$ \leq 500$,$K \leq 1000$代价内的数字分组有多少?一个分组的代价是分成的每个小组的总代价:一个小组的代价是极差. 问的极差那就从极入手嘛.一个小组 ...
随机推荐
- PAT-1107 Social Clusters (30 分) 并查集模板
1107 Social Clusters (30 分) When register on a social network, you are always asked to specify your ...
- IIS发布问题解决
一. HTTP Error 502.5 - ANCM Out-Of-Process Startup Failure ://安装AspNetCoreModule托管模块后执行1. net stop wa ...
- win10+pyspark+pycharm+anaconda单机环境搭建
一.工具准备 1. jdk1.8 2. scala 3. anaconda3 4. spark-2.3.1-bin-hadoop2.7 5. hadoop-2.8.3 6. winutils 7. p ...
- 编写Postgres扩展之二:类型和运算符
原文:http://big-elephants.com/2015-10/writing-postgres-extensions-part-ii/ 编译:Tacey Wong 在上一篇关于编写Postg ...
- 记https在Android浏览器无法访问
问题描述 M站静态资源单独配置的https域名,在Android原生浏览器里面打开之后提示证书不安全,在chrome.UC之类的浏览器之下,静态资源都能够正常访问 问题原因 CA证书链不完整 http ...
- 如何导出robotframework的工程
不知道是不是只有我一个小白,自己折腾了很久,也百度了很久,不知道怎么导出哇.现在来扫扫盲罗.我拿自己的项目举例:找到我的RF工程目录可以看到下面有3个项目,直接拷贝你想要的项目就ok啦,是不是so e ...
- js-Array数组
一.创建数组的两种方式 1.使用Array构造函数 var colors = new Array(); var colors = new Array(20); var colors = new Arr ...
- JS中浏览器的数据存储机制
一.JS中的三种数据存储方式 cookie.sessionStorage.localStorage 二.cookie 1.cookie的定义: cookie是存储在浏览器上的一小段数据,用来记录某些当 ...
- SMARTY的知识
smarty的原理: <?php class Smarty { $ldelimiter = "{";//左分隔符 $rdelimiter = "}";// ...
- Java 之 OutputStreamReader类
OutputStreamReader类 1.概述 转换流 java.io.OutputStreamReader ,是Writer的子类,是从字符流到字节流的桥梁. 它使用指定的字符集将字符编码为字节. ...