这题很简单..
就是切分连通块.把a看成一个联通块,把b看成一个连通块.题目就是要你切k-2刀分成k块.然后由连通块的定义可知肯定是对半分,然后代码就是这样--(把ans放到外面调bug,服了

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod=1e9+7;
ll qp(ll a,ll b, ll p){ll ans = 1;while(b){if(b&1){ans = (ans*a)%p;--b;}a = (a*a)%p;b >>= 1;}return ans%p;}
ll Inv(ll x)          { return qp(x,mod-2,mod);}
ll C(ll n,ll m){if (m>n) return 0;ll ans = 1;for (int i = 1; i <= m; ++i) ans=ans*Inv(i)%mod*(n-i+1)%mod;return ans%mod;}
int main()
{
    int n,m,k;//n个a m个b 组成k_size
    ll ans=0;
    cin>>n>>m>>k;
    if(k>n+m||k==1) cout<<0<<endl;
    else
    {
        k-=2;
        ans=(ans+C(n-1,k/2)*C(m-1,k-k/2))%mod;
        ans=(ans+C(n-1,k-k/2)*C(m-1,k/2))%mod;
        cout<<ans<<endl;
    }
    return 0;
}