#include<stdlib.h> #include<stdio.h> int max=0x70000000; int n,k,a[100][100]; void dfs(int index,int lastSum,int *book){ if(index==n){ if(max>lastSum){ max=lastSum; } return ; } int sum=0; for(int i=0;i<k;i++){ if(book[i]==0){ int book[100]={0}; book[i]=1; sum=a[index][i]+lastSum; dfs(index+1,sum,book); } } } int main(){ scanf("%d %d",&n,&k); for(int i=0;i<n;i++){ for(int j=0;j<k;j++){ scanf("%d",&a[i][j]); } } int book[100]={0}; dfs(0,0,book); printf("%d\n",max); return 0; } dfs弄得,时间复杂度有点高。。
点赞 1

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务