题目链接:http://codeforces.com/contest/894/problem/B
你问我为什么B都不会,那我也是很绝望的,如果k=-1,n和m奇偶性不同,你会发现,如果满足每行都为-1,和满足每行都等于-1,整个矩阵的乘积是不同的,k=-1奇偶性不同是不存在解的,然后发现,一个(n-1)*(m-1)的矩阵可以任意填,然后通过那一行加一列选择1或者-1可以满足所有条件,然后分析一波发现,一行一列相交的元素只有那一种情况下会出现矛盾,所以,答案就是2^((n-1)*(m-1)),好难啊。。。
代码:
def qpow(a,b,mod):
ret=1
while(b!=0):
if (b&1)==1:
ret*=a
ret%=mod
a*=a
a%=mod
b/=2
return ret
n,m,k=map(int,raw_input().split())
if k==-1 and n%2!=m%2:
print 0
exit(0)
print qpow(2,(n-1)*(m-1),1000000007)