知道要用dp,但就想试试不加记忆化的dfs,不过全WA了,求改一下。```c
#include<bits/stdc++.h>
using namespace std;
#define N 110
#define M 25
int n,m,k,candy[N][M],eaten[M],ans=N;
int good(int num){
for(int i=1;i<=k;i++)
if(!eaten[candy[num][i]])
return 1;
return 0;
}
void dfs(int num,int time,int sur){
if(!sur){
ans=min(ans,time);
return;
}
if(num>n) return;
if(good(num)){
int tmp=0,jici=0;
for(int i=1;i<=k;i++)
if(!eaten[candy[num][i]]){
tmp=tmp*10+candy[num][i],jici++;
eaten[candy[num][i]]=1;
}
dfs(num+1,time+1,sur-jici);
while(jici){
int t=tmp%10;
eaten[t]=0;
tmp/=10,jici--;
}
}
dfs(num+1,time,sur);
}
int main(){
cin>>n>>m>>k;
for(int i=1;i<=n;i++)
for(int j=1;j<=k;j++)
cin>>candy[i][j];
dfs(0,0,m);
cout<<ans;
return 0;
}