智力大冲浪(贪心)

#include<iostream>
#include<algorithm>
using namespace std;
struct node
{
    int tl;
    int km;
}a[510];
bool cmp(node x,node y)
{
    return x.km>y.km;
}
int temp[510];
int main()
{
    int m,n;
    cin>>m>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i].tl;
    }
    for(int i=1;i<=n;i++)
    {
        cin>>a[i].km;
    }
    sort(a+1,a+n+1,cmp);
    int flag=0;
    int ans=0;
    for(int i=1;i<=n;i++)
    {
        flag=1;
        for(int j=a[i].tl;j>=1;j--)
        {
            if(temp[j]==0)
            {
                flag=0;
                temp[j]=1;
                break;
            }
        }
        if(flag==1)
        {
            ans+=a[i].km;
        }
    }
    cout<<m-ans;
    return 0;
}

 

上一篇:模板 KM算法


下一篇:训练指南 UVA - 11383(KM算法的应用 lx+ly >=w(x,y))