大佬们可以帮我看一下c题吗?
#include <iostream> #include <vector> using namespace std; long long cab(int a, int b){ long long ans = 1; for(int i = 0; i < b; i++){ ans *= a-i; ans /= i+1; } return ans; } int main(){ int N, a, b; cin >> N >> a >> b; N = (N-1)*N/2; int mod = 1e9+7; long long total = (cab(N, a) * cab(N, b)) % mod; if(a + b <= N){ long long wu = (cab(N, a) * cab(N-a, b)) % mod; total = (total-wu+mod) % mod; } cout <<total; return 0; }思路就是先找一共有多少种情况,然后减去一条公共边都没有的,就是至少有一条公共边的数量。但是这样答案不对,大佬们可以帮我看一下吗,是思路问题还是代码问题?