JZOJ 5436. 【NOIP2017提高A组集训10.30】Group
2017-10-30 21:44
369 查看
Description
Input
Output
Sample Input
10 11328 3 39 90 46 14 55 35 48 47
Sample Output
62453Data Constraint
Solution
时间复杂度 O(N2∗k) 。
Code
#include<cstdio> #include<cstring> #include<algorithm> #define add(a,b) a=(a+b)%mo using namespace std; const int N=201,mo=1e9+7; int a ; long long ans; long long f[2] [N*5]; inline int read() { int X=0,w=1; char ch=0; while(ch<'0' || ch>'9') {if(ch=='-') w=-1;ch=getchar();} while(ch>='0' && ch<='9') X=(X<<3)+(X<<1)+ch-'0',ch=getchar(); return X*w; } int main() { int n=read(),m=read(),p=0; for(int i=1;i<=n;i++) a[i]=read(); sort(a+1,a+1+n); for(int i=f[0][0][0]=1;i<=n;i++) { memset(f[p^=1],0,sizeof(f[p])); for(int j=0;j<=i;j++) for(int k=0,v;k<=m;k++) if(f[p^1][j][k]) { if((v=(a[i]-a[i-1])*j+k)>m) break; add(f[p][j+1][v],f[p^1][j][k]); add(f[p][j][v],f[p^1][j][k]); if(j) { add(f[p][j][v],f[p^1][j][k]*j%mo); add(f[p][j-1][v],f[p^1][j][k]*j%mo); } } } for(int k=0;k<=m;k++) add(ans,f[p][0][k]); printf("%lld",ans); return 0; }
相关文章推荐
- jzoj5436 【NOIP2017提高A组集训10.30】Group
- JZOJ 5436. 【NOIP2017提高A组集训10.30】Group
- [JZOJ5436]【NOIP2017提高A组集训10.30】Group
- 【JZOJ 5436】【NOIP2017提高A组集训10.30】Group
- JZOJ5436. 【NOIP2017提高A组集训10.30】Group DP
- JZOJ 5434. 【NOIP2017提高A组集训10.30】Matrix
- 【JZOJ 5435】【NOIP2017提高A组集训10.30】Graph
- 【JZOJ5434】【NOIP2017提高A组集训10.30】Matrix
- JZOJ5434. 【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
- [JZOJ5410]【NOIP2017提高A组集训10.22】小型耀斑 (口胡)
- JZOJ 5408 【NOIP2017提高A组集训10.21】Dark
- JZOJ 5409 【NOIP2017提高A组集训10.21】Fantasy
- JZOJ5419. 【NOIP2017提高A组集训10.24】线段树
- JZOJ 5417. 【NOIP2017提高A组集训10.24】方阵
- 【JZOJ5413】【NOIP2017提高A组集训10.22】清兰
- [置顶] 【JZOJ5433】【NOIP2017提高A组集训10.28】图
- JZOJ5428. 【NOIP2017提高A组集训10.27】查询