思路:DFS+回溯
[cpp]
#include<stdio.h>
#include<string.h>
#define INF 1《30
int a[25],cnt[25];
int ans,temp,len;
bool myok()
{
int i;
for(i=0;i<len;i++)
if(a[i]) return false;
return true;
}
void dfs(int idx)
{
int i;
if(myok())//判断是否还有反面的纸牌,若有则继续翻牌,无则计数
{
temp=0;
for(i=0;i<len;i++)
if(cnt[i]==1) temp++;
if(temp<ans)
ans=temp;
return;
}