
#include <stdio.h> #include <algorithm> #include <iostream> #include <map> #include <stdlib.h> #include <cmath> #include <memory.h> using namespace std; int ans=0,temp=0; int vis[12]; int dir[4]= {-4,4,-1,1}; int countt=0; void dfs(int n) { countt++; vis[n]=0; //cout<<"n:"<<n<<endl; if(n-4>=0&&vis[n-4]) dfs(n-4); if(n+4<12&&vis[n+4]) dfs(n+4); if(n-1>=0&&n!=4&&n!=8&&vis[n-1]) dfs(n-1); if(n+1<12&&n!=3&&n!=7&&vis[n+1]) dfs(n+1); } int main() { memset(vis,0,sizeof(vis)); for(int a=0; a<12; a++) { for(int b=a+1; b<12; b++) { for(int c=b+1; c<12; c++) { for(int d=c+1; d<12; d++) { for(int e=d+1; e<12; e++) { vis[a]=1; vis[b]=1; vis[c]=1; vis[d]=1; vis[e]=1; countt=0; dfs(e); if(countt==5) { //cout<<a<<" "<<b<<" "<<c<<" "<<d<<" "<<e<<endl; ans++; } vis[e]=0; } vis[d]=0; } vis[c]=0; } vis[b]=0; } vis[a]=0; } cout<<ans<<endl; return 0; }
因为是填空题 就用了暴力枚举5个格子然后dfs判断这5个格子是否联通