zoukankan      html  css  js  c++  java
  • 51Nod-1625-夹克爷发红包(二进制枚举+贪心)

    正解是枚举n行的全部情况,然后针对每种情况对m列进行贪心,求最大值,最后取最大值里的最大值。

    #include<bits/stdc++.h>
    using namespace std;
    #define ll long long
    #define fuck(x) cout<<#x<<" "<<x<<endl;
    ll mp1[15][205],mp2[15][205];
    ll colu[205];
    vector<ll>v;
    bool cmp(const ll&a,const ll&b)
    {
        return a<b;
    }
    int main()
    {
        ll n,m,x,cnm,t,cnt=0;
        ll ans=-1,tmp;
        scanf("%lld %lld %lld %lld",&n,&m,&x,&cnm);
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++)
                scanf("%lld",&(mp1[i][j]));
        for(int k=0;k<(1<<n);k++)
        {
            cnt=tmp=0;
            for(int i=1;i<=n;i++)
            {
                if((k>>(i-1))&1)
                {
                    cnt++;
                    for(int j=1;j<=m;j++)
                        mp2[i][j]=x;
                }
                else
                    for(int j=1;j<=m;j++)
                        mp2[i][j]=mp1[i][j];
            }
            if(cnt>cnm)
                continue;
            t=cnm-cnt;
            v.clear();
            for(int j=1;j<=m;j++)
            {
                for(int i=1;i<=n;i++)
                {
                    if(i==1)
                        colu[j]=mp2[i][j];
                    else
                        colu[j]+=mp2[i][j];
                }
                v.push_back(colu[j]);
            }
            sort(v.begin(),v.end(),cmp);
            for(int i=0;i<v.size();i++)
            {
                if(v[i]<n*x&&t>=1)
                {
                    tmp+=n*x;
                    t--;
                }
                else
                    tmp+=v[i];
            }
            ans=max(ans,tmp);
        }
        printf("%lld
    ",ans);
        return 0;
    }
    
  • 相关阅读:
    关键字--static
    java注解
    服务器、应用服务器、web服务器、容器
    进程和线程
    Tomcat7目录结构详解(非常详细)
    HTML小练习
    HTML学习笔记
    javaoo总结二
    javaoo总结一
    python核心-类-1
  • 原文地址:https://www.cnblogs.com/eason9906/p/11754852.html
Copyright © 2011-2022 走看看