1 条题解

  • 2
    @ 2023-8-14 19:06:07

    黎耗,窝较兰研

    啊这题我不会啊!!!


    #include <iostream>
    #include <cstring>
    using namespace std;
    char mp[10][10];
    int n,k,sum,ans,vis[101];
    void dfs(int a)
    {
       if(sum == k)
       {
          ans ++;
          return;
       }
       if(a > n) return;
       for(int i = 1;i <= n;i ++)
       {
          if(mp[a][i] == '#' && vis[i] == 0)
          {
             sum ++;
             vis[i] = 1;
             dfs(a + 1);
             vis[i] = 0;
             sum --;
          }
       }
       dfs(a + 1);
    }
    //你猜是什么个思路
    int main()
    {
       ios::sync_with_stdio(0);
       cin.tie(0),cout.tie(0);
       //无法编译
       while (cin >> n >> k)
       {
          if (n == -1 && k == -1) break;
          ans = 0,sum = 0;
          memset(mp,0,sizeof(mp));//清空mp数组
          for(int i = 1;i <= n;i ++)
          {
             for(int j = 1;j <= n;j ++)
             {
                cin >> mp[i][j];
             }
          }
          dfs(0);
          cout << ans << "\n";
       }
    }
    

    信息

    ID
    217
    时间
    1000ms
    内存
    256MiB
    难度
    9
    标签
    递交数
    11
    已通过
    5
    上传者