Homework Introduction
#include <bits/stdc++.h>
using namespace std;
int n,m;
int w[405],t[405];
int f[2000005];
int W[2000005],T[2000005];
int main()
{
cin>>m>>n;
for(int i=1;i<=n;i++){
cin>>t[i]>>w[i];
}
int N = (1<<n)-1;
for(int i=0;i<=N;i++){
for(int j=1;j<=n;j++){
if((i & (1<<(j-1)))==0)continue;
W[i] += w[j];
T[i] = max(T[i],t[j]);
}
}
memset(f,0x3f,sizeof(f));
f[0] = 0;
for(int i=0;i<=N;i++){
for(int j=i;;j=(i&(j-1))){
// cout<<j<<endl;
if(W[i^j]<=m){
f[i] = min(f[i],f[j]+T[i^j]);
}
if(j==0)break;
}
}
cout<<f[N]<<endl;
return 0;
}
Problem
Please claim the assignment to see the problems.
- Status
- Live...
- Problem
- 11
- Open Since
- 2025-10-23 0:00
- Deadline
- 2025-12-31 23:59
- Extension
- 24 hour(s)