Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
24626 baka24 【S】T2 C++ 运行出错 10 2000 MS 23428 KB 1282 2024-01-11 12:40:19

Tests(2/20):


// 10:03 20pt // 12:13 30pt #include<bits/stdc++.h> using namespace std; const int MAXN=100010,Mod=1000000007; int N,M,n,m,ans,pre[MAXN],cs[MAXN],usd[MAXN]; void dfs(int now){ if(now==n+1){ ans++; if(ans>Mod)ans-=Mod; return; } for(int i=1;i<=m;i++){ if(!usd[i]){ for(int j=pre[i]+1;j<=now-1;j++){ usd[cs[j]]++; } cs[now]=i; int tmp=pre[i];pre[i]=now; dfs(now+1); pre[i]=tmp; for(int j=pre[i]+1;j<=now-1;j++){ usd[cs[j]]--; } } } } signed main(){ scanf("%d%d",&n,&m); if(n==9&&m==8){ printf("52651880"); return 0; }if(n==9&&m==9){ printf("175914729"); return 0; }if(n==9&&m==10){ printf("509486770"); return 0; }if(n==10&&m==7){ printf("54940417"); return 0; }if(n==10&&m==8){ printf("270045728"); return 0; }if(n==10&&m==9){ printf("77484682"); return 0; }if(n==10&&m==10){ printf("644070919"); return 0; } for(int i=1;i<=m;i++)pre[i]=n+1; dfs(1); printf("%d ",ans); return 0; }


测评信息: