hdu 5365 Run 枚举
来源:互联网 发布:无线信号探测软件 编辑:程序博客网 时间:2024/04/30 15:01
Run
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 839 Accepted Submission(s): 361
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.
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.
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
40 00 11 01 1
Sample Output
1
Source
BestCoder Round #50 (div.2)
只有四边形的才是答案。枚举四个点。有6条边,4边相等,剩下两条边也相等,且长度是sqrt(2)*短边即可
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<vector>#include<cstdio>using namespace std;struct Point{ int x,y; Point(int _x=0,int _y=0):x(_x),y(_y){}};Point operator - (Point a,Point b){ return Point(a.x-b.x,a.y-b.y);}int len(Point a){ return a.x*a.x+a.y*a.y;}Point p[21];vector<Point> po;int ans;int n;vector<int> e;void dfs(int q,int num){ if(num == 4){ e.clear(); for(int i = 0;i < 4; i++){ for(int j = i+1;j < 4;j ++){ e.push_back(len(po[i]-po[j])); } } sort(e.begin(),e.end()); if(e[0] == e[1] && e[1] == e[2] && e[2] == e[3] && e[4] == 2*e[1] && e[5] == 2*e[1]) ans += 1; return ; } for(int i = q;i < n; i++){ po.push_back(p[i]); dfs(i+1,num+1); po.pop_back(); }}int main(){ while(scanf("%d",&n)!=EOF){ for(int i = 0;i < n; i++) scanf("%d%d",&p[i].x,&p[i].y); ans = 0; dfs(0,0); int res = 0; printf("%d\n",ans); } return 0;}
0 0
- hdu 5365 Run 枚举
- HDU 5365 Run 计算几何 枚举 组合
- HDU 5365 Run (简单分析+暴力枚举)
- hdu 5365 Run
- HDU 5365 Run
- HDU 5365-Run(几何)
- HDU 5365 Run(暴力)
- HDU-5365-Run
- hdu 5365 Run(几何)
- HDU 5365 Run [Ad Hoc]
- hdu 5365 /BC 50B Run
- hdu 5365 Run 几何 判定四边形
- HDU 5365 Run (判断正四边形)
- HDU 5365 Run(大水题)
- HDU 5365 Run (判断正方形个数)
- hdu 5365 Run(判断正方形个数)
- HDU 5365 Run (思维计算几何)
- HDU Function Run Fun
- 5分钟精通12C inmemory插件
- oracle函数学习(sign和trunc)
- 使用Material Design Tint和视图详解
- 分享一套比较好看的OA后台设计模板图片
- hdu5353 Average
- hdu 5365 Run 枚举
- (4.1.1.2)菜单创建函数:onPrepareOptionsMenu 和onCreateOptionsMenu 的区别
- A1044 Shopping in Mars (25)
- Oracle CASE WHEN 用法介绍
- Word Break
- 学习设计模式——单例模式
- dfs去重(剪枝)
- Codeforces Round #284 (Div. 1) C. Array and Operations(网络流‘最大流)
- 大讲台谈hive(后篇二)