zoukankan      html  css  js  c++  java
  • hdu 5365 Run(BC 50 B题)(求四边形的个数)

    本来准备睡觉。结果还是忍不住想把它A了。由于已经看了题解了,

    题意:就是给你一些坐标。都是整数,求一些正多边形的数目,官方题讲解是地球人都知道整数坐标构不成正三角形。正五边形和正六边形的。。。

    然而我并不知道。。。以后才知道。

    所以呢这道题直接暴力就能够了,求正四边形的个数。这里推断是否是正四边形用的是四条边相等,并且两条对角线相等。并且边比对角线小,我也不知道是否这样一定是正四边形(。。

    。)(后来网上查了一下,这样是可行的。只是还得添加一个条件,就是长的一组边是短的的根号2倍,意思就是证明有直角存在)sh说的方法我认为也能够。就是对角线垂直相等。。。

    放代码:

    #include<iostream>
    #include<cstdio>
    #include<cstdlib>
    #include<cstring>
    #include<cmath>
    #include<vector>
    #include<set>
    #include<string>
    #include<algorithm>
    
    using namespace std;
    int solve(int a,int b,int c,int d)
    {
    	return (a-c)*(a-c)+(b-d)*(b-d);
    }
    int cmp(const void *a,const void *b)
    {
    	return *(int *)a - *(int *)b;
    }
    int main()
    {
    	int n,i,j,k,p;
    	int a[25],b[25],c[25];
    	while(cin >> n)
    	{
    		for(i=1; i<=n; i++)
    			cin >> a[i] >> b[i];
    		int ans = 0;
    		for(i=1; i<=n; i++)
    			for(j=i+1; j<=n; j++)
    				for(k=j+1; k<=n; k++)
    					for(p=k+1; p<=n; p++)
    					{
    						c[0] = solve(a[i],b[i],a[k],b[k]);
    						c[1] = solve(a[i],b[i],a[j],b[j]);
    						c[2] = solve(a[i],b[i],a[p],b[p]);
    						c[3] = solve(a[j],b[j],a[k],b[k]);
    						c[4] = solve(a[j],b[j],a[p],b[p]);
    						c[5] = solve(a[k],b[k],a[p],b[p]);
    						qsort(c,6,sizeof(c[0]),cmp);
    						if(c[0]==c[1]&&c[1]==c[2]&&c[2]==c[3]&&c[4]==c[5])
    							ans++;
    					}
    		cout << ans << endl;
    	} 
    	return 0;
    }
    


  • 相关阅读:
    java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Date
    权限控制-JS判断是否有权限进行操作跳转页面需要加target
    为你的网站装个“头像”
    本地存储由来的背景
    HTML5的新的结构元素介绍
    Canvas绘图API
    HTML5文件操作API
    认识HTML5
    基于scrapy爬虫的天气数据采集(python)
    Python strip()方法
  • 原文地址:https://www.cnblogs.com/yfceshi/p/6814624.html
Copyright © 2011-2022 走看看