1 条题解

  • 0
    @ 2026-10-25 15:08:46

    思路

    不规则棋盘按行选或不选,列互斥与放满k子的计数。

    参考程序(C++11)

    #include <bits/stdc++.h>
    using namespace std;
    int n,k;string a[8];bool col[8];long long dfs(int r,int placed){if(placed==k)return 1;if(r==n||placed+n-r<k)return 0;long long ans=dfs(r+1,placed);for(int j=0;j<n;j++)if(a[r][j]=='#'&&!col[j]){col[j]=1;ans+=dfs(r+1,placed+1);col[j]=0;}return ans;}int main(){while(cin>>n>>k&&n!=-1){for(int i=0;i<n;i++)cin>>a[i];memset(col,0,sizeof(col));cout<<dfs(0,0)<<'\n';}}
    
    • 1

    信息

    ID
    1117
    时间
    1000ms
    内存
    64MiB
    难度
    普及−
    标签
    递交数
    1
    已通过
    1
    上传者