您的位置:首页 > Web前端 > AngularJS

ACM UVa算法题209 Triangular Vertices的解法

2007-12-17 10:17 507 查看
有一段时间没有做ACM算法题目了,今天正好有空便随便挑了209题来做做:ACM UVa算法题#209题

这道题有几个要点:

1. 给定坐标系

坐标系很容易定,我采用的是第一个点为(0, 0)点,X方向差别为2个单位,Y方向差别为1个单位,点之间的距离,也就是LEN为1个单位,这样便于计算。注意我用的不是实际长度,而是抽象的单位,这个单位在不同方向上面意义不一样,否则很容易通过三角形相关公理推出这样的三角形不存在,我们关心的只是这样的一个对应关系。这里的人为设定确实有些Confusing,我之前也是按照一般的三角形的长度,如3,4,5来定义,但是后来发现这样做做的乘除法太多,过于浪费CPU Cycle,如果按照我这样的设定,大部分情况只用到加减法,另外一种情况只需用到移位操作即可。

参看下图:

//
// ACM UVa Problem #209
// http://acm.uva.es/p/v2/209.html //
// Author: ATField
// Email: atfield_zhang@hotmail.com
//

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX 65535

struct point

point point::s_all_points[MAX];

bool check_triangle(int *n)

bool init_adj(int *n, int num, int adj[6][6])

int find_same_len_loop(int adj[6][6], int num)

bool check_parallelogram(int *n)

bool check_hexagon(int *n)

int main(int argc, char *argv[])

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1595174
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: