爆米花
2025-03-01 13:50:10
发布于:上海
#include<bits/stdc++.h>
using namespace std;
int n,m;
int nums[20][20],i[20],ans = 11;
void dfs(int x,int i[],int cnt)
{
if(x==n)
{
bool flag = true;
for(int j = 0;j<m;j++)
if(i[j]!=1)
flag = false;
if(flag==true)
ans = min(ans,cnt);
return;
}
int c[20];
for(int j = 0;j<m;j++)
c[j] = i[j];
for(int j = 0;j<m;j++)
{
if(nums[x][j]==1)
i[j] = 1;
}
dfs(x+1,i,cnt+1);
for(int j = 0;j<m;j++)
i[j] = c[j];
dfs(x+1,i,cnt);
}
int main()
{
cin>>n>>m;
for(int i = 0;i<n;i++){
for(int j = 0;j<m;j++){
char a;
cin>>a;
if(a=='o')
nums[i][j] = 1;
}
}
dfs(0,i,0);
cout<<ans;
}
这里空空如也
有帮助,赞一个