思路:
当k为1时,如果n和m奇偶性不同,那么没有答案。
可以证明,在其他情况下有答案,且答案为2^(n-1)*(m-1),因为前n-1行和m-1列确定后,最后一列和最后一行可以确定,且确定的最后一格不矛盾。
可以采用在全为1的格子中把一些1换成-1的方法来证明以上两条结论。
代码:
#includeusing namespace std;#define ll long long#define pb push_back#define mp make_pair#define pii pair #define mem(a,b) memset(a,b,sizeof(a))const int MOD=1e9+7;ll qpow(ll n,ll k){ ll ans=1; while(k) { if(k&1)ans=(ans*n)%MOD; n=(n*n)%MOD; k>>=1; } return ans;}int main(){ ios::sync_with_stdio(false); cin.tie(0); ll m,n; int k; cin>>m>>n>>k; if(k==1) { cout<