Chri_K

P1091,P1017
//01背包
#include <cstdio>
#include <algorithm>
using namespace std;
int v,n,tj[30],dp[21000],maxn;
int main()
{
scanf("%d%d",&v,&n);
for (int i = 1;i <= n;i++)
scanf("%d",&tj[i]);
for (int i = 1;i <= n;i++)
{
for (int j = v;j >= 0;j--)
{
if (j - tj[i] >= 0) dp[j] = max(dp[j],dp[j - tj[i]] + tj[i]);
}
}
for (int i = 0;i <= v;i++)
maxn = max(maxn,dp[i]);
printf("%d\n",v - maxn);
return 0;
}
 
 
 
// #include<iostream>
// #include<algorithm>
// using namespace std;
// int main()
// {
//     int n,m;
//     cin>>n>>m;
//     int rest=m;
//     int apple[2000],tao[2000];
//     tao[0]={0};
//     for(int i=1;i<=n;i++)
//     {
//         cin>>apple[i];
//     }
//     for(int i=1;i<=m;i++)
//     {
//         cin>>tao[i];
//     }
//     sort(tao,tao+m+1);//取到加一
// //     for(int i=0;i<=m;i++)
// //     {
// //         cout<<tao[i]<<" "<<endl;
// //     }
// //     return 0;
// // }
// //
//     for(int i=1;i<=n;i++)
//     {
//         for(int j=1;j<=m;j++)
//         {
//             if(apple[i]<=tao[j]&&tao[j-1]!=0&&rest>0)
//             {
//                 rest--;//cout<<rest<<endl;
//                 tao[j-1]={0};
//             }
//         }
//     }
//     cout<<rest<<endl;
//     return 0;
// }

#include <cstdio>
#include <cmath>
#include <algorithm>
#include <cstring>
using namespace std;
int n,m,gd[3000],tt[3000],tot;
int main()
{
scanf("%d%d",&n,&m);
for (int i = 1;i <= n;i++)
scanf("%d",&gd[i]);
for (int i = 1;i <= m;i++)
scanf("%d",&tt[i]);
for (int i = 1;i <= n;i++)
{
int maxn = 0,mwz = 0;
for (int j = 1;j <= m;j++)
{
if (tt[j] > maxn && tt[j] < gd[i])
{
maxn = tt[j];
mwz = j;
}
}
if (mwz) tot++;
tt[mwz] = 99999999;
}
printf("%d\n",m - tot);
return 0;
}
 
 

posted on 2020-09-09 17:51  Chri_K  阅读(143)  评论(0编辑  收藏  举报