CF572_Div2_F
题意
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的更多相关文章
随机推荐
- shopnc 二次开发问题(一)
1.关于shopnc商品详情页面多规格抢购,价格显示都是显示的抢购价格问题 路径: data/model/groupbuy.model.php 方法:getGroupbuyInfoByGoodsCom ...
- openLayers中WMTS结合GeoServer呈现瓦片地图
首先看openlayers官网中wmts模块,https://openlayers.org/en/latest/apidoc/module-ol_source_WMTS-WMTS.html,里面的参数 ...
- 使用ASP.NET Core 3.x 构建 RESTful API - 4.2 过滤和搜索
向Web API传递参数 数据可以通过多种方式来传给API. Binding Source Attributes 会告诉 Model 的绑定引擎从哪里找到绑定源. 共有以下六种 Binding Sou ...
- spring 与mybatis 整合
步骤: pom文件添加依赖 创建包结构 添加application.yml, 配置数据库信息 使用mybatis-gennerator 生成三个文件 实体类 接口类 xml 文件 错误信息 xml 绑 ...
- Mybatis入门程序编写
执行原理 入门程序编写 1.pom.xml 文件 <dependencies> <dependency> <groupId>mysql</groupId> ...
- 「洛谷P3469」[POI2008]BLO-Blockade 解题报告
P3469[POI2008]LO-Blockade 题意翻译 在Byteotia有n个城镇. 一些城镇之间由无向边连接. 在城镇外没有十字路口,尽管可能有桥,隧道或者高架公路(反正不考虑这些).每两个 ...
- Selenium python爬虫
Selenium + Python3 爬虫 准备工作 Chrome驱动下载地址(可正常访问并下载),根据自己chrome的版本下载 Chrome版本 下载地址 78 https://chromedri ...
- IOS系统唤醒微信内置地图
针对前一篇文章 唤醒微信内置地图 后来发现在IOS系统中运行 唤醒地图会无效的问题.因为在IOS上无法解析这俩个字符串的问题! 需要对经纬度 使用 “parseFloat()”进行转换 返回一个浮点数 ...
- 14.python案例:爬取电影天堂中所有电视剧信息
1.python案例:爬取电影天堂中所有电视剧信息 #!/usr/bin/env python3 # -*- coding: UTF-8 -*- '''======================== ...
- Redis系列(一):Redis简介及环境安装
提到Redis,大家肯定都听过,并且应该都在项目中或多或少的使用过,也许你觉得Redis用起来挺简单的呀,但如果有人问你下面的几个问题(比如同事或者面试官),你能回答的上来吗? 什么是Redis? R ...