快速测试程序求助!
  • 板块学术版
  • 楼主Enjoy2024
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/1/21 13:53
  • 上次更新2023/10/24 03:26:07
查看原帖
快速测试程序求助!
644285
Enjoy2024楼主2023/1/21 13:53
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 22;
int a[N];
int f[1 << N];
int getw(int x)
{
  int cnt = 0;
  while (x)
  {
    cnt++;
    x -= (x & -x);
  }
  return a[cnt];
}
signed main()
{
  //freopen("sample1.in", "r", stdin);
  //freopen("sample2.in", "r", stdin);
  //freopen("sample3.in", "r", stdin);
  int t_c;
  cin >> t_c;
  while (t_c--)
  {
    int n;
    cin >> n;
    for (int i = 1; i <= n; i ++)
      a[i - 1] = 0;
    for (int i = 1; i <= n; i++)
      for (int j = 0; j < n; j++)
      {
	int x;
	cin >> x;
	a[i - 1] |= (x << j);
      }
    for (int i = 0; i < (1 << n); i ++)
      f[i] = 0;
    f[0] = 1;
    for (int mask = 0; mask < (1 << n); mask++)
      for (int i = getw(mask) & ~mask; i; i -= i & -i)
	f[mask | (i & -i)] += f[mask];
    cout << f[(1 << n) - 1] << '\n';
  }
  return 0;
}


2023/1/21 13:53
加载中...