• 汕头市队赛 SRM 07 C 整洁的麻将桌


    C 整洁的麻将桌 SRM 07

    背景&&描述

        天才麻将少女KPM立志要在日麻界闯出一番名堂。
        KPM上周双打了n场麻将,但她这次没控分,而且因为是全民参与的麻将大赛,所以她的名次范围是1..10^9。
        因为找膜法使的事被妹子打断了三条腿后,KPM这次要用自己的真实本领让名次严格递增。
        幸好她从前把出题人的头像卖给了炮姐,现在KPM可以入侵比赛系统,修改自己的排名。
        KPM毕竟是新手,每次操作只能使自己某场比赛的排名增加或者减少1。
        她急着去见妹子,你需要帮她算出最少需要多少次操作。
        因为妹子不打麻将,所以哪怕把名次改得<1或者>10^9都是没关系的。

    输入格式

    第一行一个整数n。

    第二行n个整数,表示n场的排名。

    输出格式

    一个整数,表示最小操作数。

    样例输入

    5
    
    233 2333 2332 2333 2333

    样例输出

    3

    数据范围与约定

    • 对于100%的数据:1leq n leq 3000

    这道题据说是套路题 将每个点减去他的位置 然后问题就转换成了求一个不下降序列
    然而我连不下降序列都不会 还得去学 唉 惨啊 蒟蒻就是蒟蒻

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<cmath>
    #define LL long long
    using namespace std;
    const int M=1e5+7;
    int read(){
        int ans=0,f=1,c=getchar();
        while(c<'0'||c>'9'){if(c=='-') f=-1; c=getchar();}
        while(c>='0'&&c<='9'){ans=ans*10+(c-'0'); c=getchar();}
        return ans*f;
    }
    int n,w[M],v[M],ans[M];
    int main()
    {
        n=read();
        for(int i=1;i<=n;i++) w[i]=read()-i,v[i]=w[i];
        sort(v+1,v+1+n);
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++){
                ans[j]+=abs(w[i]-v[j]);
                if(j>1) ans[j]=min(ans[j],ans[j-1]);
            }
        printf("%d
    ",ans[n]);
        return 0;
    }
    View Code
  • 相关阅读:
    SWT 重启案例分析(二)
    SWT 重启案例分析(一)
    手机重启问题 Log 抓取方法
    手机重启问题快速分析定位指南
    SWT 手机重启问题分析指南
    属性动画 使用详解
    补间动画 使用详解
    帧动画 使用详解
    Android动画 使用详解
    Linux grep 命令大全
  • 原文地址:https://www.cnblogs.com/lyzuikeai/p/7207620.html
Copyright © 2020-2023  润新知