rt,是不是有哪个地方有个字母敲错了之类的
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=301;
int t,n,m,cnt,p,a[N],b[N],c[N],f[N][N],bzh[N],dp[N][N];
signed main(){
cin>>t;
while(t--){
memset(c,0,sizeof c);
memset(bzh,0,sizeof bzh);
memset(dp,0,sizeof dp);
cin>>n>>m>>p;
for(int i=1;i<=m;i++) cin>>a[i]>>b[i];
for(int i=1;i<=m;i++) c[b[i]]++;
for(int i=n;i>=1;i--) bzh[i]=bzh[i+1]+c[i];
for(int i=1;i<=n;i++){
if(bzh[i]>n-i+1){
cout<<"NO"<<endl;
goto T4;
}
}
cnt=n-m;
for(int i=0;i<=n;i++){
f[i][0]=1;
for(int j=1;j<=n;j++){
f[i][j]=(f[i-1][j-1]+f[i-1][j])%p;
}
}
dp[n+1][0]=1;
for(int i=n;i>=1;i--){
for(int j=bzh[i];j<=n-i+1;j++){
for(int k=c[i];k<=j-bzh[i+1];k++){
dp[i][j]=(dp[i][j]+dp[i+1][j-k]*f[cnt-j+k+bzh[i+1]][k-c[i]])%p;
}
}
}
cout<<"YES"<<" "<<dp[1][n]<<endl;
T4:;
}
}