题意

http://codeforces.com/contest/1189/problem/F


思考

由于是子序列,答案只跟选法有关,与顺序无关,先排序。

直接计算答案比较困难。联想到期望的无穷级数计算公式,设gi表示beauty值大于等于i的总方案数,则答案=sigma(g1~max{a})。

对于给定的gi,这是容易得到答案的。使用前缀和优化能在O(nk)的时间中得到一个值。

再发现当gi较大时,没有任何合法的方案。因为k*(n-1)会大于最大的值,取g到max{a}/(k-1)即可获得所有非0答案。

总复杂度O(max{a}*n)。


代码

 #pragma GCC optimize 2
#include<bits/stdc++.h>
#define mod 998244353
using namespace std;
typedef long long int ll;
const int maxn=1E3+;
int n,k,a[maxn],maxx,where[maxn];
ll f[maxn][maxn],sum[maxn][maxn];
ll get(int x)
{
for(int i=;i<=k;++i)
for(int j=;j<=n;++j)
f[i][j]=;
for(int i=;i<=n;++i)
{
where[i]=where[i-];
while(a[i]-a[where[i]+]>=x)
++where[i];
}
f[][]=;
for(int i=;i<k;++i)
{
sum[i][]=f[i][];
for(int j=;j<=n;++j)
sum[i][j]=(sum[i][j-]+f[i][j])%mod;
for(int j=;j<=n;++j)
f[i+][j]=sum[i][where[j]];
}
ll sum=;
for(int i=;i<=n;++i)
sum=(sum+f[k][i])%mod;
return sum;
}
int main()
{
ios::sync_with_stdio(false);
cin>>n>>k;
for(int i=;i<=n;++i)
{
cin>>a[i];
maxx=max(maxx,a[i]);
}
sort(a+,a+n+);
ll ans=;
for(int i=;i<=/(k-)+;++i)
ans=(ans+get(i))%mod;
cout<<ans<<endl;
return ;
}

CF572_Div2_F的更多相关文章

随机推荐

  1. LeetCode20_Valid Parentheses有效的括号(栈相关问题)

    题目: 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合.左括号必须以正确的顺序闭合.注意空字符串可 ...

  2. Struts2和Spring集成

    Spring是一个流行的Web框架,它提供易于集成与很多常见的网络任务.所以,问题是,为什么我们需要Spring,当我们有Struts2?Spring是超过一个MVC框架 - 它提供了许多其它好用的东 ...

  3. 【网摘】一个用shell写的俄罗斯方块

    一位大神的shell,值得学习:https://blog.csdn.net/zhenliang8/article/details/85316926 详见下: #!/bin/bash APP_NAME= ...

  4. Visio模具与模版

    yy 这些形状就是模具 点击更多形状 然后新建模具 也可以打开已有的模具 模具名字右边有星号 代表模具未保存 鼠标右键单击可以选择保存 选择属性可以进行设置(信息之类的)也可以进行关闭 模具文件三种打 ...

  5. TestStand 基本设置

    1. 过程模型设置 菜单->Configure->Station Options->Model TestStand 默认提供了三种过程模型 Sequential.Batch.Para ...

  6. Jmeter官方插件安装

    在正常使用的过程中,当jmeter功能满足不了使用场景时,可以通过安装官方的插件去实现. Jmeter插件管理官网地址: https://jmeter-plugins.org/install/Inst ...

  7. js/jq判断鼠标滚轮方向

    js判断鼠标滚轮方向: var scrollFunc = function (e) { e = e || window.event; if (e.wheelDelta) { //判断浏览器IE,谷歌滑 ...

  8. appium+ios+macaca自动化测试环境部署

    环境准备(供参考) mac v10.14.4 xcode v10.2 python v3.6 确保上述环境已满足,即可开始搭建appium+ios测试环境 1 jdk安装 下载mac版本的jdk并安装 ...

  9. BeetleX之XRPC使用详解

    XRPC是基于BeetleX扩展一个远程接口调用组件,它提供基于接口的方式来实现远程服务调用,在应用上非常简便.组件提供.NETCore2.1和.NETStandard2.0的client版本,因此即 ...

  10. $loj$10222 佳佳的$Fibonacci$ 矩阵快速幂

    正解:矩阵快速幂 解题报告: 我永远喜欢loj! 一看到这个就应该能想到矩阵快速幂? 然后就考虑转移式,发现好像直接想不好想,,,主要的问题在于这个*$i$,就很不好搞$QAQ$ 其实不难想到,$\s ...