(四面体)CCPC网络赛 HDU5839 Special Tetrahedron

 1 CCPC网络赛 HDU5839 Special Tetrahedron
 2 题意:n个点,选四个出来组成四面体,要符合四面体至少四条边相等,若四条边相等则剩下两条边不相邻,求个数
 3 思路:枚举四面体上一条线,再找到该线两个端点相等的点,放在一个集合里面。
 4 要符合条件的话,则该集合里面找两个点,并且要判断一下。
 5 注意,普通四面体会被重复计算两次,正四面体会重复计算六次
 6 
 7 
 8 #include <bits/stdc++.h>
 9 using namespace std;
10 #define LL long long
11 const double inf = 123456789012345.0;
12 const LL MOD =100000000LL;
13 const int N =210;
14 #define clc(a,b) memset(a,b,sizeof(a))
15 const double eps = 1e-7;
16 void fre() {freopen("in.txt","r",stdin);}
17 void freout() {freopen("out.txt","w",stdout);}
18 inline int read() {int x=0,f=1;char ch=getchar();while(ch>'9'||ch<'0') {if(ch=='-') f=-1; ch=getchar();}while(ch>='0'&&ch<='9') {x=x*10+ch-'0';ch=getchar();}return x*f;}
19 
20 struct Point {
21     double x,y,z;
22     Point() {}
23     Point(LL _x,LL _y,LL _z):x(_x),y(_y),z(_z) {}
24     Point operator + (const Point &t) const {
25         return Point(x+t.x,y+t.y,z+t.z);
26     }
27     Point operator -(const Point &t) const {
28         return Point(x-t.x,y-t.y,z-t.z);
29     }
30     Point operator *(const Point &t) const {
31         return Point(y*t.z-z*t.y,z*t.x-x*t.z,x*t.y-y*t.x);
32     }
33     double operator ^(const Point &t) const {
34         return x*t.x+y*t.y+z*t.z;
35     }
36     double len2(){
37         return x*x+y*y+z*z;
38     }
39 } p[N];
40 
41 bool check(Point a,Point b,Point c,Point d) {
42     return (((a-b)*(a-c))^(a-d))==0.0;
43 }
44 
45 int l[210];
46 int main() {
47     int T;
48     scanf("%d",&T);
49     for(int cas=1; cas<=T; cas++) {
50         int n,cnt;
51         int ans=0,tem=0;
52         scanf("%d",&n);
53         for(int i=1; i<=n; i++) scanf("%lf%lf%lf",&p[i].x,&p[i].y,&p[i].z);
54         for(int i=1; i<n; i++) {
55             for(int j=i+1; j<=n; j++) {
56                 cnt=0;
57                 for(int k=1; k<=n; k++) {
58                     if(k==i||k==j) continue;
59                     Point p1,p2;
60                     p1=p[k]-p[i];
61                     p2=p[k]-p[j];
62                     if(p1.len2()==p2.len2()) {
63                         l[cnt++]=k;
64                     }
65                 }
66                 for(int k=0; k<cnt-1; k++) {
67                     for(int h=k+1; h<cnt; h++) {
68                         Point p1=p[l[h]]-p[i],p2=p[l[k]]-p[i];
69                         if(p1.len2()!=p2.len2()) continue;
70                         if(check(p[i],p[j],p[l[k]],p[l[h]])) continue;
71                         ans++;
72                         Point p3=p[l[k]]-p[l[h]];
73                         Point p4=p[i]-p[j];
74                         if(p1.len2()==p3.len2()&&p4.len2()==p3.len2())
75                             tem++;
76                     }
77                 }
78             }
79         }
80         ans/=2;
81         ans=ans-2*tem/6;
82         printf("Case #%d: ",cas);
83         printf("%d\n",ans);
84     }
85     return 0;
86 }

 

转载于:https://www.cnblogs.com/ITUPC/p/5772975.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/403287.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mac下使用sshpass实现ssh记住密码

From: http://tinyhema.iteye.com/blog/2093795 由于有一些场景不能使用ssh私钥来实现免登&#xff0c;因此需要想其它办法解决一下这个问题。 安装sshpass 试图使用homebrew安装 Shell代码 $ brew install sshpass Error: No available formula for sshpass We wont …

ESXI忘记密码怎么办?

忘记ESX root用户的密码怎么办? 以单用户模式进入COS&#xff0c;然后修改root密码&#xff0c;既可搞定。第1步&#xff1a;打开/重启ESX主机图1第2步&#xff1a;到GRUB菜单处 (图2) &#xff0c;用键盘上下键&#xff0c;将光标放在“VMware ESX 4.0”上&#xff0c;按“a”…

TCPDUMP/LIBPCAP 1-由零开始

简介 TCPDUMP是强大的网络包分析器&#xff0c;可以在线或离线抓包&#xff0c;设置过滤条件等操作。 LIBPCAP是十分简洁易用的C/C网络流量抓包库&#xff1b;实际上TCPDUMP就是基于LIBPCAP实现的一个应用程序。为什么要学会工具和库的使用 工欲善其事必先利其器&#xff0c…

JavaSE第九天20160815

抽象与接口 抽象:abstracta) 修饰类&#xff1a;抽象类&#xff0c;抽象类不能实例化(不能new)&#xff0c;只能使用抽象类的子类。抽象类也有构造方法(子类会在自己构造方法的第一行调用父类的构造方法)。 b) 修饰方法&#xff1a;抽象方法。抽象方法只有方法…

mac下nginx搭配php-fpm解析php文件

From: http://ju.outofmemory.cn/entry/74778 1. 为单个项目添加nginx的php-fpm配置. 在server中添加php-fpm的配置. server{listen 80;server_name demo.local;index index.html index.htm index.php;root /path/to;location ~ \.php$ {fastcgi_pass 127.0.0.1:9000;fastc…

TCPDUMP/LIBPCAP 2-搭建环境

1. 实验平台   Linux 发行版本众多&#xff0c;考虑到大部分开发者的习惯&#xff0c;因此决定采用桌面版系统&#xff0c;具体为 CentOS-6.5-x86_64。系统内核版本为&#xff1a;2.6.32。尽管内核版本较低&#xff0c;但考虑到兼容性和稳定性&#xff0c;选择了此版本系统作…

使用jquery的blockui插件显示弹出层

使用jquery的blockui插件显示弹出层 Posted on 2011-04-14 16:34 孤独者 阅读(9975) 评论(0) 编辑 收藏 在做网站的开发过程中&#xff0c;可能需要使用弹出层&#xff0c;使用jquery的blockui插件可以很轻松的实现这个效果。blockui可以在你发送ajax请求的时候&#xff0c;显…

JS页面跳转大全

所谓的js页面跳转就是利用javesrcipt对打开的页面ULR进行跳转&#xff0c;如我们打开的是A页面&#xff0c;通过javsrcipt脚本就会跳转到B页面。目前很多垃圾站经常用js跳转将正常页面跳转到广告页面&#xff0c;当然也有一些网站为了追求吸引人的视觉效果&#xff0c;把一些栏…

CentOS SSH公钥登录问题

From: http://segmentfault.com/q/1010000000445726 内网&#xff0c;想做ssh root公钥登录&#xff0c;配置好之后还是提示输入密码&#xff0c;现象&#xff1a; 在服务器端使用其他端口开放sshd&#xff1a; $/usr/sbin/sshd -p 1234此时客户端可以无密码登录&#xff0c;但…

TCPDUMP/LIBPCAP 3-PCAP's MAN手册(1)

概要 #include <pcap/pcap.h> 说明 PCAP提供为抓包系统提供高级接口。网络上的所有数据包&#xff0c;即使是发往其他主机的数据包&#xff0c;都可以通过这种机制访问。它还支持将捕获的数据包保存到“savefile”&#xff0c;和从“savefile”中读取数据包。 打开捕…

提升用户体验,你不得不知道的事儿——三种提醒框的微技巧

大家都知道无论是android开发还是其他的开发&#xff0c;用户的体验都是很重要的事儿&#xff0c;下面就android开发中的三种提醒方式&#xff0c;Toast,SnackBar,Dialog做一些细节上的处理&#xff0c;或许能让你的产品更有用户亲和力。 1&#xff09;Toast Toast是一个轻量级…

分享:wkhtmltoimage开源工具的基本应用

wkhtmltoimage开源工具的基本应用 http://my.oschina.net/lidonghao/blog/90083

SVN:冲突解决 合并别人的修改

在项目中&#xff0c;基本不可避免多个人同时参与一个项目&#xff0c;因此就可能会出现多个人同时修改一个文件的情况&#xff0c;就不可避免的会出现冲突。svn已经很聪明了&#xff0c;如果你和别人对于同一个文件的修改之间不存在重叠&#xff08;比如你在文件最开始增加了一…

Error: Could not find or load main class

在 java 编程中如果遇到此错误&#xff0c;那么检查下 classpath。 必须确保把 .class 文件的路径添加到 classpath 中&#xff0c; 如果是在当前路径&#xff0c;那么就添加字符 . 到 classpath 中。注意不同系统环境下使用的路径分隔符是不同的&#xff0c;在 windows 下是分…

极客导航

评&#xff1a;集合产品技术与方案集合的方案 http://www.gogeeks.cn/job/2/Java%E5%B7%A5%E7%A8%8B%E5%B8%88转载于:https://www.cnblogs.com/jhj117/p/5779226.html

freemarker 分页逻辑

<#-- 分页组件需要传入的参数 pageUrl ,用来生成的html地址&#xff0c;在pageUrl中必须有{page}在生成html地址的时候会自动把页码给赋值上去。页码起始值为1pageNum 最大显示页 默认9beforPage 前显示页 默认3afterPage 后显示页 默认3countPage 总页数 必须传入curren…

linux上SVN解决冲突的办法

From: http://blog.csdn.net/bravezhe/article/details/7396151 工程师A修改了a.txt的第一行&#xff0c;提交了。 工程师B也修改了a.txt的第一行&#xff0c;然后执行svn up&#xff0c;这时SVN提示了&#xff1a;&#xff08;以下&#xff0c;你开始扮演工程师B的角色了&…

循环队列及C语言实现三

在之前的博客中给出了设计循环队列的思路以及源码&#xff0c;这些可都是经过我长期大数据测试的验证哦。当然&#xff0c;现在的很多开源项目和一些封装好的类或接口也都有类似的队列实现方法&#xff0c;之所以我还在使用自己写的这一套方法&#xff0c;主要是因为灵活性较大…

【转】提高PHP性能的53个技巧

PHP技巧汇总:提高PHP性能的53个技巧用单引号代替双引号来包含字符串&#xff0c;这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量&#xff0c;单引号则不会&#xff0c;注意&#xff1a;只有echo能这么做&#xff0c;它是一种可以把多个字符串当作参数的函数译注&a…

el-table列宽设置百分比无效;el-table使用min-width设置百分比;el-table百分比设置无效;

废话不多说&#xff0c;直接给每个el-table-column&#xff0c;设置 width"auto" min-width"25%"即可。 总的百分比还是要等于100%哈。 点赞收藏吧 感谢 代码可以直接复制使用&#xff1a; <template><div style"width:1300px;">&…