[蓝桥杯2017初赛]纸牌三角形
题目描述
A,2,3,4,5,6,7,8,9 共9张纸牌排成一个正三角形(A按1计算)。要求每个边的和相等。
下图就是一种排法这样的排法可能会有很多。
如果考虑旋转、镜像后相同的算同一种,一共有多少种不同的排法呢?
下图就是一种排法这样的排法可能会有很多。
如果考虑旋转、镜像后相同的算同一种,一共有多少种不同的排法呢?
输出
输出一个整数表示答案
答案:144
注意可以镜像和翻转
#include<iostream> #include<string> #include<algorithm> #include<math.h> #include<string.h> #include<map> #include<stack> #include<queue> #define ll long long using namespace std; int vis[10]; map<ll,int>mp; int main() { int a[9]={1,2,3,4,5,6,7,8,9}; int cnt=0; do { int x1=a[0]+a[1]+a[2]+a[3]; int x2=a[3]+a[4]+a[5]+a[6]; int x3=a[6]+a[7]+a[8]+a[0]; if(x1==x2&&x2==x3) cnt++; }while(next_permutation(a,a+9)); cout<<cnt/3/2<<endl;//翻转除以3,镜像除以2 return 0; }
等风起的那一天,我已准备好一切