本文主要是介绍nyoj-491--幸运三角形--简单深搜枚举(TLE),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=491
悲剧啊,TEL了
#include<stdio.h>
#include<string.h>
int n,cnt,vis[30],dp[22][22];
int a,b;
bool fun()
{for(int i=0;i<n;i++){for(int j=0;j<n-i-1;j++){if(dp[i][j]==dp[i][j+1]){dp[i+1][j]=1;b++;}else{dp[i+1][j]=0;a++;}}}if(a==b) return true;else return false;
}void dfs(int cur)
{a=0,b=0;if(cur>=n){for(int i=0;i<n;i++){dp[0][i]=vis[i];if(dp[0][i]==0) a++;else b++;}if(fun()) cnt++;return;}vis[cur]=0;dfs(cur+1);vis[cur]=1;dfs(cur+1);
}int main()
{while(~scanf("%d",&n)){cnt=0;dfs(0);printf("%d\n",cnt);}
}
不过把他们打表就ok了
#include<stdio.h>
int n,a[20]={0,0,0,4,6,0,0,12,40,0,0,171,410,0,0,1896,5160,0,0,32757};
int main()
{while(~scanf("%d",&n)){printf("%d\n",a[n]);}
}
这篇关于nyoj-491--幸运三角形--简单深搜枚举(TLE)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!