本文共 1087 字,大约阅读时间需要 3 分钟。
找立体四边形,至少4边相等;如果4边相等,不相等的两边必须相对。
比赛中一直没想通怎么统计正四面体,看题结,竟然是暴力。。。想想就能出数据hack了,不过,谁让数据水呢。。。
#include #include #include #include #include #include #include #include #include #include #include using namespace std;int cas=1;struct Point3{ int x,y,z;}a[210];int onepanel(Point3 a1,Point3 a2,Point3 a3,Point3 a4){ int A = ((a2.y-a1.y)*(a3.z-a1.z)-(a2.z-a1.z)*(a3.y-a1.y)); int B = ((a2.z-a1.z)*(a3.x-a1.x)-(a2.x-a1.x)*(a3.z-a1.z)); int C = ((a2.x-a1.x)*(a3.y-a1.y)-(a2.y-a1.y)*(a3.x-a1.x)); int D = -(A * a1.x + B * a1.y + C * a1.z); int ret = A*a4.x+B*a4.y+a4.z*C+D; if (ret==0) return 1; else return 0;}int dis(Point3 a,Point3 b){ return (a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)+(a.z-b.z)*(a.z-b.z);}map mp;map ::iterator it;int main(){ int T; scanf ("%d",&T); while (T--) { int n; scanf ("%d",&n); for (int i=0;i second>=2) { ans+=(it->second)*(it->second-1)/2; } } } } printf ("%d\n",ans); ans/=2; int ccc=0; for (int i=0;i
转载于:https://www.cnblogs.com/nj-czy/p/5839792.html