Contest1349 - 【Homework】宁波赛前练习-D

xiaoxiao2025-10-18  11

http://magic.vicp.io/JudgeOnline/problem.php?cid=1349&pid=3

#include <bits/stdc++.h> using namespace std; char a[2600][20]; string s; set<string> t; int m,n; void dfs(int i,int dep) { if (dep>m) t.insert(s); else { if (s[dep-1]=='*') { s[dep-1]='0'; dfs(i,dep+1); s[dep-1]='1'; dfs(i,dep+1); s[dep-1]='*'; } else dfs(i,dep+1); } } int main() { scanf("%d%d",&m,&n);getchar(); for (int i=1;i<=n;i++) { for (int j=1;j<=m;j++) a[i][j]=getchar(); getchar(); } t.clear(); for (int i=1;i<=n;i++) { s=""; for (int j=1;j<=m;j++) s+=a[i][j]; dfs(i,1); } printf("%d\n",t.size()); return 0; }
转载请注明原文地址: https://www.6miu.com/read-5038136.html

最新回复(0)