咕了好几篇后...
我终于开始重新写了
T1:
不会,没思路,暴搜还可能会(一开始我以为暴搜时间复杂度为$\Theta (mn ^ k)$)
于是码出了暴搜...
跑一遍$(4,4,5)$,然后...跑不出来!!!
输出了一下方案数,发现有问题
然后发现是$\Theta (k ^ {mn})$
于是我疯了,开始打表不要脸
$(4,4,5)$跑了1h没跑出来,放弃...然而没有这个点
考场代码:
#include<iostream>
#include<cstdio>
#define int long long
using namespace std;
const int mod=1e9+7;
int a[6][6];
int n,m,k;
int ans[30];
void work()
{
int nans=0;
for(register int q=1;q<=n;qT1:>++)
for(register int w=1;w<=m;w++)
{
int bo=1;
for(register int e=1;e<=n;e++)
if(e!=q&&a[e][w]>=a[q][w])
{
bo=0;
break;
}
if(bo)
{
for(int e=1;e<=m;e++)
if(e!=w&&a[q][e]>=a[q][w])
{
bo=0;
break;
}
}
nans+=bo;
}
++ans[nans];
ans[nans]%=mod;
}
int cnt;
void dfs(int x,int y)
{
if(x==n&&y==m+1)
{
++cnt;
//cout<<cnt<<endl;
/*for(int q=1;q<=n;q++)
{
for(int w=1;w<=m;w++)
cout<<a[q][w]<<" ";
cout<<endl;
}
cout<<endl;*/
work();
return;
}
int res=y+1,tmp=x;
if(res