UVA - 270 Lining Up 数据优化
来源:互联网 发布:淘宝网排行榜从哪里进 编辑:程序博客网 时间:2024/05/15 21:28
题目大意:给出一系列的点,同在一条直线上的点最多有几个
解题思路:优化数据,不然会TLE,将那些遍历过的,同在一条直线上的点标记下,以免下一次遍历的时候重复有
#include<cstdio>#include<cstring>using namespace std;struct node{int x;int y;};node n[1000];int s[1000];int N;int g[1000][1000];int main(){int test;char str[1000];scanf("%d\n", &test);while(test--) {int count = 0;while(gets(str) && str[0]) {sscanf(str,"%d%d",&n[count].x, &n[count].y);count++;}int max = -1;memset(g,1,sizeof(g));if(count == 2) {printf("2\n");}else {for(int i = 0; i < count ; i++) for(int j = i + 1; j < count ; j++) {if(g[i][j]) {int cnt = 0;for(int k = 0; k < count; k++) if((n[i].x -n[k].x)*(n[i].y-n[j].y) == (n[i].x-n[j].x) * (n[i].y - n[k].y))s[cnt++] = k;if(cnt > max)max = cnt;for(int l = 0; l < cnt; l++)for(int m = l + 1; m < cnt; m++)g[s[l]][s[m]] = g[s[m]][s[l]] = 0;}}printf("%d\n",max);}if(test)printf("\n");}return 0;}
还有另一种算法,这是借鉴别人的,将每个点当成原点,然后以这一点为起点,按斜率从小到大排序,一个个去求斜率相同的点,然后再以下一个点为起点去算
0 0
- UVA - 270 Lining Up 数据优化
- UVa 270 - Lining Up
- UVa 270 - Lining Up
- uva 270 - Lining Up
- UVa 270 - Lining Up
- UVa 270 - Lining Up
- UVA 270 - Lining Up
- UVA 270 Lining Up
- uva 270 Lining Up
- uva 270 Lining Up
- Lining up(uva 270)
- UVa 270 - Lining Up
- uva 270 - Lining Up
- uva 270 Lining Up
- UVA 270 - Lining Up
- UVA - 270 Lining Up
- Lining Up - UVa 270
- uva 270 Lining Up
- HDOJ 题目1518 Square(dfs)
- git使用
- PAT1038. Recover the Smallest Number (30)
- My Threat Intelligence and Threat Assessment Research Papers Publish
- poj2082 Terrible Sets 单调栈
- UVA - 270 Lining Up 数据优化
- Nordic iBeacon设备在ios8上无法正常工作的问题
- MYSQL的一知半解
- 【Java】解决Acces restriction: The type X is not accessible due to restriction on required library 的解决方法
- Codeforces 480D Parcels(dp)
- 2014上海全国邀请赛1010(hdu 5099)
- 【索引】Codeforces Round #274
- Visual Assist X 破解版使用步骤
- 终端中的乐趣:6个有趣的Linux命令行工具