湖南国庆模拟赛day1 分组
题目大意:
给你一个n个数的数列s,要对这些数进行分组,当有任意两个数在一种方案在一起而在另一种方案中不在一起算是两种不同的方案,一个组的“不和谐程度”为组内数的极差,如果只有一个人的话,此组的不和谐程度为0,求有多少种分组方式,使所有组的不和谐程度不超过k?
数据范围
1<=n<=200,0<=k<=1000,1<=si<=500
样例
input1
4 5
1 3 5 7
output1
9
input2
5 6
1 4 5 8 9
output2
20
/*
排序,设状态为i,j,k,分别表示前i个数还有j组未充满,不和谐程度为k的方案数,分四种情况讨论:这个数自成一组、这个数为最小值开一个2个数以上的组,把这个数填到别的组中去,把这个数作为最大值填到别的组中去,如果单纯计算k,那么复杂度o(n^2*sumk),显然超时,可以用差分的办法去处理这个极差,这样复杂度o(n^2*k)
*/
#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const int mod = ;
const int maxn = ,maxm = ;
ll n,m,s[maxn],f[][maxn][maxm],cur;
int read(){
char ch=getchar();
int x=,f=;
while(!(ch>=''&&ch<='')){if(ch=='-')f=-;ch=getchar();};
while(ch>=''&&ch<=''){x=x*+(ch-'');ch=getchar();};
return x*f;
}
int main(){
n = read();
m = read();
for(int i = ;i <= n;i++)s[i] = read();
sort(s+,s++n);
f[][][] = f[][][] = ;
ll tv = ,tk = ;
for(int i = ;i <= n;i++){
for(int j = ;j <= n;j++){
for(int k = ;k <= m;k++){
tv = f[cur][j][k];
f[cur][j][k] = ;
if(!tv) continue;
tk = (s[i]-s[i-])*j + k;
if(tk > m) continue;
f[cur^][j][tk] = (f[cur^][j][tk] + tv) % mod;
f[cur^][j+][tk] = (f[cur^][j+][tk] + tv) % mod;
if(j) f[cur^][j-][tk] = (f[cur^][j-][tk] + (tv * j) % mod) % mod;
f[cur^][j][tk] = (f[cur^][j][tk] + (tv * j) % mod) % mod;
}
}
cur ^= ;
}
ll ans = ;
for(int i = ;i <= m;i++) ans = (ans + f[cur][][i]) % mod;
cout<<ans;
return ;
}
湖南国庆模拟赛day1 分组的更多相关文章
- 队爷的讲学计划 CH Round #59 - OrzCC杯NOIP模拟赛day1
题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的讲学计划 题解:刚开始理解题意理解了好半天,然后发 ...
- 队爷的Au Plan CH Round #59 - OrzCC杯NOIP模拟赛day1
题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的Au%20Plan 题解:看了题之后觉得肯定是DP ...
- 队爷的新书 CH Round #59 - OrzCC杯NOIP模拟赛day1
题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的新书 题解:看到这题就想到了 poetize 的封 ...
- CH Round #48 - Streaming #3 (NOIP模拟赛Day1)
A.数三角形 题目:http://www.contesthunter.org/contest/CH%20Round%20%2348%20-%20Streaming%20%233%20(NOIP模拟赛D ...
- CH Round #54 - Streaming #5 (NOIP模拟赛Day1)
A.珠 题目:http://ch.ezoj.tk/contest/CH%20Round%20%2354%20-%20Streaming%20%235%20(NOIP模拟赛Day1)/珠 题解:sb题, ...
- 10.17(山东多校联合模拟赛 day1)
山东多校联合模拟赛 day1 题不难 rect [问题描述] 给出圆周上的 N 个点, 请你计算出以这些点中的任意四个为四个角,能构成多少个矩形. 点的坐标是这样描述的, 给定一个数组 v[1..N] ...
- NOI模拟赛 Day1
[考完试不想说话系列] 他们都会做呢QAQ 我毛线也不会呢QAQ 悲伤ING 考试问题: 1.感觉不是很清醒,有点困╯﹏╰ 2.为啥总不按照计划来!!! 3.脑洞在哪里 4.把模拟赛当作真正的比赛,紧 ...
- PKUSC 模拟赛 day1 下午总结
下午到了机房之后又困又饿,还要被强行摁着看英文题,简直差评 第一题是NOIP模拟赛的原题,随便模拟就好啦 本人模拟功力太渣不小心打错了个变量,居然调了40多分钟QAQ #include<cstd ...
- HGOI2010816 (NOIP 提高组模拟赛 day1)
Day1 210pts(含T1莫名的-10pts和T3莫名的-30pts) 100+70+40=210 rank 29 这道题第一眼看是字符串匹配问题什么KMP啊,又想KMP不会做啊,那就RK Has ...
随机推荐
- VMP虚拟机加壳的原理学习
好久没有到博客写文章了,9月份开学有点忙,参加了一个上海的一个CHINA SIG信息比赛,前几天又无锡南京来回跑了几趟,签了阿里巴巴的安全工程师,准备11月以后过去实习,这之前就好好待在学校学习了. ...
- Scala可变长度参数
可变长度参数 Scala 允许你指明函数的最后一个参数可以是重复的.这可以允许客户向函数传入可变长度参数列表.想要标注一个重复参数,在参数的类型之后放一个星号.例如: scala> def ec ...
- 【Beta】第二次任务发布
后端 了解社区新建文章.添加评论(回复)的机制.整理成API文档,包括如何请求新建文章.新建评论(回复).如何获取文章内容和评论内容. 验收条件:文档PM要能看懂. 前端 微调数据输入部分的布局和操作 ...
- 日期String相互转换
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Date endate = sdf.parse(endDate) ...
- Tmux
常用按键 这里需要说明一点的是,tmux的任何指令,都包含一个前缀,也就是说,你按了前缀(一组按键,默认是Ctrl+b)以后,系统才知道你接下来的指令是发送给tmux的. C-b ? 显示快捷键帮助 ...
- js实现观察者模式
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- squid代理服务器配置详解
root@proxy squid]# cat squid.conf## Recommended minimum configuration:#visible_hostname www.jd.com # ...
- Linux常用服务部署与优化之Samba篇
关于Samba的简介概述在此略过,开始搭建Samba服务. 1.安装Samba yum install -y samba samba-client 2.编辑Samba配置文件 首先共享一个目录,任何人 ...
- Nvidia Nsight + .NET
https://devtalk.nvidia.com/default/topic/804306/nsight-4-5-can-t-debug-net-applications/ http://comm ...
- Echarts 页面多图自适应的解决办法 (转)
项目中用到了echarts的多图表的 问题,如果设置了 window.onresize = option.chart.resize() 只能控制 某个图表的 自适应,如果要是页面上的图表都要自适应. ...