• Codeforces 1189F. Array Beauty

    传送门

    首先可以注意到序列里面元素的顺序对答案是没有影响的,所以二话不说先排序再看看怎么搞

    考虑枚举每种子序列可能产生的贡献并算一下产生这个贡献的子序列有多少

    考虑设 $F(x)$ 表示选择的元素差值至少为 $x$ 的长度为 $k$ 的子序列的方案数

    先不考虑复杂度,那么这个显然是可以 $dp$ 的,设 $f[i][j]$ 表示长度为 $i$ ,考虑了前 $j$ 个位置,第 $j$ 个位置强制选择时的子序列方案数

    那么有转移 $f[i][j]+=f[i-1][k]$ 其中 $k<j$ 并且 $a_j-a_k>=x$ (注意这时 $a$ 已经按从小到大排序了)

    注意到随着 $j$ 的增加,合法的 $k$ 一定是越来越大的并且是一段前缀区间,那么转移显然可以维护一个指针和一个前缀和加速到 $O(1)$

    现在单次 $dp$ 的复杂度就是优秀的 $nk$ 了,那么再考虑一下枚举 $x$ 的复杂度,很好,复杂度达到了优秀的 $max(a)nk$

    然后注意到一个看似微不足道的优化:枚举 $x$ 的时候如果 $x>max(a)/k+1$ ,那么一定不存在合法的长度为 $k$ 的序列了(显然吧)

    发现复杂度就变成了 $\frac {max(a)} {k+1}nk$ 即 $max(a)n$ ...

    然后就过了......

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    #include<cmath>
    using namespace std;
    typedef long long ll;
    inline int read()
    {
        int x=0,f=1; char ch=getchar();
        while(ch<0||ch>9) { if(ch==-) f=-1; ch=getchar(); }
        while(ch>=0&&ch<=9) { x=(x<<1)+(x<<3)+(ch^48); ch=getchar(); }
        return x*f;
    }
    const int N=1007,mo=998244353;
    inline int fk(int x) { return x>=mo ? x-mo : x; }
    int n,m,A[N];
    int f[N][N],ans;
    int main()
    {
        n=read(),m=read();
        for(int i=1;i<=n;i++) A[i]=read();
        sort(A+1,A+n+1); int mx=A[n];
        for(int I=1;I<=mx/(m-1);I++)
        {
            for(int i=1;i<=n;i++) f[1][i]=1;
            for(int i=2;i<=m;i++)
            {
                int sum=0,p=1;
                for(int j=1;j<=n;j++)
                {
                    while(A[p]+I<=A[j])
                        sum=fk(sum+f[i-1][p++]);
                    f[i][j]=sum;
                }
            }
            for(int i=1;i<=n;i++) ans=fk(ans+f[m][i]);
        }
        printf("%d\n",ans);
        return 0;
    }
    相关文章
    相关标签/搜索
    香港马会资枓大全2019天空彩彯天下彩天空彩票与你同行2019今晚开码结果开奖现场历史开奖资料记录在线查询 广河县| 宁河县| 五莲县| 凤山市| 新源县| 永吉县| 黄龙县| 鲁甸县| 故城县| 吉安市| 万宁市| 达日县| 西宁市| 麻江县| 德令哈市| 洛宁县| 涟水县| 博客| 泰来县| 吉林省| 宁南县| 平遥县| 大姚县| 阿瓦提县| 监利县| 和政县| 新田县| 龙州县| 余姚市| 东辽县| 志丹县| 四子王旗| 绿春县| 伊金霍洛旗| 扎赉特旗| 宣恩县| 嘉义市| 清苑县| 临清市| 尚志市| 郑州市| 招远市| 磐石市| 浏阳市| 府谷县| 鹤岗市| 宁海县| 济阳县| 德州市| 长泰县| 湘阴县| 湖口县| 辽中县| 沐川县| 贺州市| 孝昌县| 舒城县| 沐川县| 关岭| 柳江县| 理塘县| 夏河县| 伊川县| 张家界市| 孟津县| 利辛县| 卢龙县| 甘孜| 湟中县| 赣榆县| 邵阳市| 澎湖县| 郁南县| 永昌县| 南昌县| 广德县| 海宁市| 阿克苏市| 平度市| 沙河市| 绿春县| 朝阳市| 阳朔县| 平顺县| 永泰县| 金川县| 赣榆县| 乐清市| 眉山市| 阿合奇县| 阜宁县| 焦作市| 阿巴嘎旗| 林州市| 微博| 吴桥县| 韩城市| 贵港市| 漳平市| 冷水江市| 湖州市| 湘乡市| 夹江县| 汉中市| 鹤庆县| 娱乐| 闻喜县| 三穗县| 汉阴县| 沙坪坝区| 榆林市| 桦川县| 赤壁市| 营山县| 寿阳县| 山东省| 永嘉县| 万荣县| 昌江| 青海省| 理塘县| 射洪县| 枣庄市| 贵定县| 肃宁县| 剑河县| 贺兰县| 海宁市| 莒南县| 仙桃市| 上犹县| 长汀县| 福建省| 永修县| 太保市| 萨嘎县| 宜黄县| 淅川县| 阳城县| 望城县| 油尖旺区| 丰原市| 临沂市| 郧西县| 马尔康县| 鲁甸县| 西和县| 突泉县| 淮南市| 准格尔旗| 木里| 河源市| 台南市| 肇州县| 青州市| 当雄县| 陵川县| 铁岭市| 安义县| 定陶县| 中牟县| 永清县| 包头市| 安塞县| 丹凤县| 东明县| 普定县| 长兴县| 公安县| 古浪县| 棋牌| 靖安县| 黑龙江省| 林芝县| 青河县| 望谟县| 西林县| 鹤峰县| 新沂市| 彝良县| 寻乌县| 新源县| 徐汇区| 广南县| 托克托县| 江山市| 东明县| 新郑市| 蒙山县| 田阳县| 沐川县| 苍梧县| 翼城县| 西昌市| 彭山县| 平定县| 玉龙| 阳泉市| 安阳县| 秦安县| 温州市| 姜堰市| 桐柏县| 无棣县| 磐石市| 黑山县| 西藏| 葫芦岛市| 永善县| 荆州市| 永和县| 沂南县| 田林县| 台东市| 河间市| 宿迁市| 抚宁县| 杂多县| 简阳市| 石泉县| 雷山县| 金乡县| 墨玉县| 于都县| 区。| 邵阳县| 灌云县| 禄丰县| 迁西县| 贵溪市| 华池县| 晋城| 临武县| 民权县| 乌拉特前旗| 罗源县| 沛县| 陆河县| 天峻县| 漯河市| 江川县| 徐州市| 枣阳市| 万源市| 千阳县| 温宿县| 石河子市| 九龙城区| 宜阳县| 布尔津县| 通化县| 即墨市| 中西区| 衢州市| 綦江县| 邢台市| 文水县| 呼玛县| 宁德市| 依安县| 乌兰察布市| 保康县| 丽水市| 昌平区| 定日县| 扎赉特旗| 建平县| 漯河市| 沾益县| 西丰县| 天门市| 河北区| 体育| 蒲城县| 琼中| 浦北县| 陆丰市| 东港市| 朝阳区| 奇台县| 竹山县| 广州市| 曲周县| 醴陵市| 旅游| 邓州市| 英山县| 嘉峪关市| 屯昌县| 祥云县| 剑川县| 易门县| 达州市| 莲花县| 保德县| 同德县| 乐安县| 阿拉尔市| 佳木斯市| 林州市| 拉孜县| 鄂伦春自治旗| 利川市| 开平市| 凤山县| 吉安市| 牡丹江市| 西畴县| 遂川县| 静乐县| 措勤县| 康定县| 荆门市| 汾西县| 浙江省| 山东省| 西充县| 涪陵区| 阿勒泰市| 三原县| 灵丘县| 滦南县| 花莲县| 北宁市| 凤冈县| 临清市| 乌审旗| 芦山县| 昔阳县| 宜春市| 申扎县| 通州区| 涟水县| 万宁市| 岑溪市| 武隆县| 龙山县| 齐河县| 大石桥市| 麟游县| 讷河市| 葵青区| 乃东县| 辽源市| 巴里| 库车县| 襄樊市| 东城区| 额济纳旗| 泽州县| 达拉特旗| 荔波县| 萍乡市| 泰来县| 健康| 神农架林区| 仁化县| 上蔡县| 福清市| 天柱县| 开封市| 汶上县| 板桥市| 和田县| 报价| 巴东县| 宁南县| 泸定县| 海晏县| 资兴市| 邵武市| 中宁县| 灵宝市| 讷河市| 精河县| 库伦旗| 福建省| 郎溪县| 溆浦县| 新竹市| 灵台县| 佛坪县| 威海市| 寿光市| 忻城县| 大同县| 奇台县| 威海市| 临漳县| 华容县| 云林县| 延寿县| 梓潼县| 贵德县| 巴彦淖尔市| 修文县| 禄丰县| 和硕县| 横山县| 麟游县| 开平市| 启东市| 枣强县| 田东县| 诸城市| 甘德县| 兖州市| 夹江县| 班玛县| 双江| 拜城县| 江阴市| 濮阳市| 泰州市| 寿阳县| 吴堡县| 遂溪县| 罗山县| 泗阳县| 彩票| 新竹市| 彭州市| 青海省| 固阳县| 赣州市| 红安县| 辉县市| 绩溪县| 龙江县| 孟连| 建水县| 黄龙县| 台前县| 绥滨县| 大足县| 潮安县| 稷山县| 禹城市| 洱源县| 杭锦后旗| 石台县| 扶余县| 庆城县| 望谟县| 韶关市| 郯城县| 新昌县| 台南县| 永兴县| 陇西县| 沂源县| 甘德县| 徐水县| 平邑县| 德阳市| 静宁县| 临江市| 来凤县| 潍坊市| 靖江市| 报价| 泾阳县| 三亚市| 鲁山县| 大名县| 鱼台县| 香河县| 屯昌县| 图片| 灵武市| 宝应县| 平度市| 洱源县| 且末县| 商洛市| 揭西县| 来宾市| 溆浦县| 蛟河市| 河东区| 兴安县| 凌源市| 陇川县| 报价| 道真| 丹阳市| 洪江市| 汉中市| 台南县| 保亭| 潼南县| 遂溪县| 灵川县| 始兴县| 固始县| 无锡市| 吴忠市| 马鞍山市| 白沙| 河间市| 普定县| 吉林市| 恩平市| 迭部县| 庄河市| 北辰区| 荃湾区| 中西区| 门源| 项城市| 涞源县| 鄂伦春自治旗| 容城县| 九龙县| 讷河市| 秭归县| 桃园市| 利辛县| 绥德县| 阜新| 炉霍县| 留坝县| 青浦区| 原平市| 台东县| 堆龙德庆县| 东乌珠穆沁旗| 浮梁县| 衡阳县| 石家庄市| 双柏县| 乐安县| 浮山县| 韶关市| 宁陵县| 简阳市| 英超| 吐鲁番市| 龙海市| 涪陵区| 衡东县| 望城县| 屏山县| 射洪县| 凤城市| 昭平县| 乾安县| 册亨县| 崇明县| 博兴县| 蒲江县| 鄂温| 墨江| 顺平县| 耿马| 麦盖提县| 屯留县| 白沙| 称多县| 瓮安县| 上思县| 垣曲县| 梓潼县| 双城市| 工布江达县| 江油市| 手游| 新巴尔虎左旗| 淮滨县| 宁陕县| 黄大仙区| 山阴县| 浦东新区| 韶关市| 虞城县| 恩平市| 武鸣县| 临泉县| 河东区| 福贡县| 玉山县| 彭阳县| 阳西县| 静海县| 绥棱县| 兰溪市| 张家界市| 甘肃省| 来宾市| 湄潭县| 贞丰县| 镇平县| 永泰县| 徐州市| 中超| 和龙市| 凤冈县| 翼城县| 香格里拉县| 黄山市| 潍坊市| 响水县| 康平县| 上栗县| 安福县| 阿城市| 轮台县| 长武县| 营山县| 呼和浩特市| 元江| 泰州市| 清远市| 阿尔山市| 鹤山市| http://wap.jx1870footv.fun http://m.jx1870generalv.fun http://wap.hz0j1r8vo.fun http://wap.jx1870leaguev.fun http://m.jx1870gazev.fun http://www.jx1870failv.fun http://m.jx1870fuckv.fun http://www.hz0j3r2vo.fun http://www.jx1870instruzentv.fun http://wap.jx1870insertv.fun http://m.jx1870existv.fun http://www.jx1870landv.fun http://m.jx1870influencev.fun http://jx1870freev.fun http://jx1870jazzv.fun http://m.hz0j2r1vo.fun http://wap.jx1870financev.fun http://jx1870indicatev.fun