Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
32236 hi_hi 【S】T3 C++ 运行出错 0 2000 MS 23776 KB 1216 2024-09-08 12:41:18

Tests(0/20):


#include<bits/stdc++.h> using namespace std; long long T,n,m,a[1000005],p[1000005],vis[1000005],ans; long long mp[100][100],t[100]; long long flag; void check(long long x,long long y){ if(t[x]==1)return; if(x==y){ flag=1; return; } for(int i=1;i<=n;i++){ if(t[i]==0 && mp[x][i]==1 && x!=i){ check(i,y); } } } void sol(){ for(int i=0;i<50;i++)t[i]=0; for(int i=0;i<n;i++){ t[p[i]]=1; for(int j=1;j<=n;j++){ for(int z=j+1;z<=n;z++){ if(t[j]==1 || t[z]==1)continue; flag=0; check(j,z); if(flag)ans++; } } } } void dfs(long long deep){ if(deep==n){ sol(); return; } for(int i=1;i<=n;i++){ if(vis[i]==0){ vis[i]=1; p[deep+1]=i; dfs(deep+1); vis[i]=0; } } } int main(){ //freopen("blossom.in","r",stdin); //freopen("blossom.out","w",stdout); scanf("%lld",&T); while(T--){ scanf("%lld%lld",&n,&m); for(int i=1;i<=m;i++){ scanf("%lld",&a[i]); } memset(mp,0,sizeof(0)); for(int i=1;i<n;i++){ mp[i][i+1]=1; } for(int i=1;i<=m;i++){ for(int j=i+1;j<=m;j++){ mp[a[i]][a[j]]=1; } } ans=0; dfs(0); printf("%lld\n",ans); } return 0; } //15


测评信息: