• 牛客多校第六场


    D 题意感觉说的不是很清楚,一开始题意弄错了,以为是最优的方案,结果是对于每个盒子这个"so clever"的人的做法是优先选择尽可能大的物品装完一个盒子,我就不知道这个人哪里聪明了。。

    思路:赛后知道题意后,5分钟写完,瞎暴力就一发过了,我自己都有点出乎意料真水了。

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=1e3+10;
    int v[maxn];
    int vis[maxn];
    int temp[maxn];
    int n,m;
    int cmp(int a,int b)
    {
        return a>b;
    }
    int check(int x)
    {
        memset(vis,0,sizeof(vis));
        for(int i=1; i<=n; i++)
            temp[i]=v[i];
        sort(temp+1,temp+1+n,cmp);
        if(temp[1]>x)
            return 0;
        int cnt=0;
        for(int i=1; i<=n; i++)
        {
            if(vis[i]==0)
            {
                int cha=x-temp[i];
                cnt++;
                vis[i]=1;
                for(int j=i+1; j<=n; j++)
                {
                    if(temp[j]<=cha&&vis[j]==0)
                    {
                        cha-=temp[j];
                        vis[j]=1;
                    }
                }
            }
        }
        if(cnt<=m) return 1;
        else return 0;
    }
    int main()
    {
    
        int t;
        scanf("%d",&t);
        for(int it=1; it<=t; it++)
        {
            scanf("%d%d",&n,&m);
            int sum=0;
            for(int i=1; i<=n; i++)
            {
                scanf("%d",&v[i]);
                sum+=v[i];
            }
            int l=sum/m;
            for(int i=l;; i++)
            {
                if(check(i))
                {
                    printf("Case #%d: %d
    ",it,i);
                    break;
                }
            }
        }
    
    }
    View Code

    J 这个题也水的一比,我队友还说用DP,可是思考一下明显不需要嘛,不过一开始一个变量赋值出错,还有下标没有从0开始忽略了等级为0的情况,疯狂罚时,有点不爽。

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=1e3+10;
    #define ll long long
    ll sum[maxn][maxn];
    ll per[maxn][maxn];
    int val[maxn][maxn];
    ll d[maxn];
    int pos[maxn][maxn];
    int main()
    {
        int t;
        scanf("%d",&t);
        for(int it=1; it<=t; it++)
        {
            int n,m;
            scanf("%d%d",&n,&m);
            for(int i=1; i<=n; i++)
                for(int j=1; j<=m; j++)
                {
                    int t;
                    scanf("%d",&t);
                    val[i][j]=t;
                }
            for(int i=1; i<=m; i++)
            {
                scanf("%lld",&d[i]);
                d[i]+=d[i-1];
            }
            for(int j=1; j<=m; j++)
                for(int i=1; i<=n; i++)
                {
                    per[i][j]=per[i][j-1]+val[i][j];
                }
            for(int i=1; i<=n; i++)
            {
                ll minn=per[i][m];
                int p=m;
                for(int j=m; j>=0; j--)
                {
                    if(minn>=per[i][j])
                    {
                        minn=per[i][j];
                        p=j;
                    }
                    sum[i][j]=minn;
                    pos[i][j]=p;
                }
            }
    //      for(int i=1;i<=n;i++)
    //      {
    //          for(int j=1;j<=m;j++)
    //              printf("%d ",sum[i][j]);
    //          printf("
    ");
    //      }
            ll ans=0;
            for(int j=0; j<=m; j++)
            {
                ll s=0;
                int pmin=0x3f3f3f3f;
                for(int i=1; i<=n; i++)
                {
                    s+=sum[i][j];
                    pmin=min(pmin,pos[i][j]);
                }
    //          printf("%d %d??
    ",pmin,s);
                if(pmin!=j)
                {
                    ll t=1e18;
                    for(int i=1; i<=n; i++)
                        t=min(t,-sum[i][j]+per[i][j]);
                    s+=t;
                }
    //          printf("%d %d")
                s=d[j]-s;
    //          printf("%d %d
    ",j,s);
                ans=max(ans,s);
            }
            printf("Case #%d: %lld
    ",it,ans);
        }
    }
    View Code
  • 相关阅读:
    文件数据分析制作过程【1】
    VBA学习(4)
    QTP9.2 .net与java插件破解
    GPRS开发系列文章之实战篇
    time_t到.NET的转换
    RAS函数
    GPRS开发系列文章之入门篇
    [转]惹恼程序员的十件事
    好玩和可爱的网站
    GPRS开发系列文章之进阶篇
  • 原文地址:https://www.cnblogs.com/dongdong25800/p/11295795.html
Copyright © 2020-2023  润新知