Problem Description
AFA is a girl who like runing.Today,he download an app about runing .The app can record the trace of her runing.AFA will start runing in the park.There are many chairs in the park,and AFA will start his runing in a chair and end in this chair.Between two chairs,she running in a line.she want the the trace can be a regular triangle or a square or a regular pentagon or a regular hexagon.
Please tell her how many ways can her find.
Two ways are same if the set of chair that they contains are same. Input
There are multiply case.
In each case,there is a integer n(1 < = n < = 20)in a line.
In next n lines,there are two integers xi,yi(0 < = xi,yi < 9) in each line. Output
Output the number of ways. Sample Input 4
0 0
0 1
1 0
1 1 Sample Output 1 Source
BestCoder Round #50 (div.2) Recommend
hujie | We have carefully selected several similar problems for you: 5368 5367 5362 5361 5360 官方题解:
地球人都知道整点是不能构成正五边形和正三边形和正六边形的,所以只需暴力枚举四个点判断是否是正四边形即可。假如你不是地球人,那么即使暴力枚举正三边形和稍微不那么暴力地找正五边形和正六边形也是可以通过的(反正找不到)。 地球人都知道,我当时尽然猪脑子的没怎么注意这点,各种几何,各种优化,之后原来竟然酱紫...... 反证法:假设存在坐标平面上的三个整点,组成了正三角形
则将其平移,将其一个顶点与坐标原点重合,则另两个顶点仍然是整点
设一个非原点的顶点M坐标为(a,b) ,另一个顶点为N(c,d), a、b、c、d都是整数 则MO的斜率=,倾斜角=arctan()
则NO的倾斜角=arctan()+ NO的斜率= 因为a、b不全等于0,所以c和d至少有一个是无理数
这和c、d都是整数矛盾
所以坐标平面上的三个整点,一定不能组成正三角形 至于正五边形和正六边形,就交给你们自己去证明了。 判断正方形:
用一个数组用于保存四个点之间的距离,求出两两点之间的距离,若数组不存在所求的距离数值,则添加进数组,若数组超过三个数值,则返回FALSE,否则返回true(其实只要两个就行了,不用距离平方比为1/2,自己举例证明...) 也可以直接算出6个点之间的距离,排下序,前四个相同后两个相同就是正方形....
#include<cstdio>
#include<cmath>
#include<stdlib.h>
#include<map>
#include<set>
#include<time.h>
#include<vector>
#include<queue>
#include<string>
#include<string.h>
#include<iostream>
#include<algorithm>
using namespace std;
#define INF 0x3f3f3f3f
#define LL long long
#define rd(a) scanf("%d",&a)
#define rdLL(a) scanf("%I64d",&a)
#define rdd(a,b) scanf("%d%d",&a,&b)
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
#define MOD 1000000007
#define mem0(a) memset(a,0,sizeof(a))
#define mem1(a) memset(a,1,sizeof(a))
typedef pair<int , int> P; int x[25],y[25]; double getdis(int x1,int y1,int x2,int y2){
return (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2);
} int judge(int temp[]){///判断是不是正方形
int dis[3], coun=0;
for(int xx=0;xx<4;xx++)
for(int yy=xx+1;yy<4;yy++){
int distmp = getdis(x[ temp[xx] ],y[ temp[xx] ],x[ temp[yy] ],y[ temp[yy] ]);
if(coun==0) dis[coun++]= distmp;
else if(coun==1)
{
if(distmp!=dis[0])
dis[coun++] = distmp;
}
else if(distmp != dis[0] && distmp != dis[1]) return false;
}
return true;
} int main()
{
int n;
while(~rd(n)){
for(int i=0;i<n;i++)
rdd(x[i],y[i]);
int coun = 0;
for(int i=0;i<n;i++)
for(int j=i+1;j<n;j++)
for(int k = j+1;k<n ; k++)
for(int l = k+1 ; l<n ; l++){
int temp[4]={i,j,k,l};
if(judge(temp)) coun++;
}
printf("%d\n",coun);
}
return 0;
}

BC之Run的更多相关文章

  1. bc - An arbitrary precision calculator language

    bc(1) General Commands Manual bc(1) NAME bc - An arbitrary precision calculator language SYNTAX bc [ ...

  2. Cognos报表打开参数

    查看门户页面 http://localhost:9300/p2pd/servlet/dispatch? b_action=xts.run &m=portal/cc.xts &gohom ...

  3. sysbench_fileio.sh

    当我--file-total-size=30G 并且指定3个文件的时候,结果是产生3个10G的文件,然而--max-time=20被忽视了,虽然指定了20s的限制,实际上是在prepare阶段,--m ...

  4. 从Go语言编码角度解释实现简易区块链

    区块链技术 人们可以用许多不同的方式解释区块链技术,其中通过加密货币来看区块链一直是主流.大多数人接触区块链技术都是从比特币谈起,但比特币仅仅是众多加密货币的一种. 到底什么是区块链技术? 从金融学相 ...

  5. 从Go语言编码角度解释实现简易区块链——实现交易

    在公链基础上实现区块链交易 区块链的目的,是能够安全可靠的存储交易,比如我们常见的比特币的交易,这里我们会以比特币为例实现区块链上的通用交易.上一节用简单的数据结构完成了区块链的公链,本节在此基础上对 ...

  6. hdu 5365 Run(BC 50 B题)(求四边形的个数)

    本来准备睡觉.结果还是忍不住想把它A了.由于已经看了题解了, 题意:就是给你一些坐标.都是整数,求一些正多边形的数目,官方题讲解是地球人都知道整数坐标构不成正三角形.正五边形和正六边形的... 然而我 ...

  7. 【云计算】docker run详解

    Docker学习总结之Run命令介绍 时间 2015-01-21 17:06:00                                               博客园精华区       ...

  8. hdu 1331 Function Run Fun

    Problem Description We all love recursion! Don't we? Consider a three-parameter recursive function w ...

  9. HDU 1331 Function Run Fun(记忆化搜索)

    Problem Description We all love recursion! Don't we? Consider a three-parameter recursive function w ...

随机推荐

  1. .NET去掉HTML标记

    using System.Text.RegularExpressions; /// <summary> /// 去除HTML标记 /// </summary> /// < ...

  2. [Hibernate] - Study test project

    最近玩Hibernate的测试代码工程: http://files.cnblogs.com/HD/TestHibernate.7z

  3. Java 读Properties

    import java.io.*; import java.util.Properties; public class Study { public static void main(String[] ...

  4. HackerRank "No Prefix Set"

    Typical Trie usage. But please note that it could be any order of input strings. #include <algori ...

  5. 【Redis】使用Redis Sentinel实现Redis HA

    阅读目录 1 sentinel down-after-milliseconds mymaster 30000 sentinel failover-timeout mymaster 18000 sent ...

  6. Partition does not end on cylinder boundary

    fdisk可能会报该消息. DOS/Win95要求分区对齐到cyclinder boundary以适应CHS寻址. 然而现代OS都使用LBA寻址. 使用c命令关闭DOS兼容性检查. 使用u命令切换分区 ...

  7. Redis服务停止报错解决方案[NOAUTH Authentication required]

    Redis服务器设置密码后,使用service redis stop 会出现以下信息: service redis stop Stopping ... OK (error) NOAUTH Authen ...

  8. js 字符串转换为数值

    原帖地址:http://www.cnblogs.com/jenney-qiu/archive/2012/02/27/2369848.html 使用parseInt()你可以从字符串中获取数值,该方法接 ...

  9. Office导入导出组件权限配置汇总

    NET导出Excel遇到的80070005错误的解决方法: 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046}的组件时失败,原因是出现 ...

  10. Win7系统安装Centos7.0双系统(二)

    4.6语言选择