博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj Squares n个点,共能组成多少个正方形 二分 + 哈希
阅读量:6037 次
发布时间:2019-06-20

本文共 1920 字,大约阅读时间需要 6 分钟。

题目链接:

测试数据:

4

1 0
0 1
1 1
0 0
9
0 0
1 0
2 0
0 2
1 2
2 2
0 1
1 1
2 1
4
-2 5
3 7
0 0
5 2
0

有两种解法,第一种用二分查找,第二种用到hash存储:

解法一:

1 #include
2 #include
3 #include
4 #include
5 #include
6 using namespace std; 7 int T; 8 struct TT 9 {10 int x,y;11 }node[1010];12 bool cmp(TT a,TT b)13 {14 if(a.x
node[mid].y) L = mid +1;30 else R = mid-1;31 }32 else if(x>node[mid].x) L = mid+1;33 else R = mid-1;34 }35 return false;36 }37 int main()38 {39 int ans;40 int x1,y1,x2,y2,mx,my;41 while(scanf("%d",&T) && T)42 { ans = 0;43 for(int i =1;i<=T;i++)44 scanf("%d %d",&node[i].x,&node[i].y);45 sort(node+1,node+T+1,cmp);//乱了一下,开始从0,开始排序了46 for(int i = 1; i

 解法二:本来想着哈希简简单单就过了呢,咋说也比二分省时间吧,可是呢,整了两个小时才搞定,还发现了一个问题;有待于求证:结构体数组赋值时间小于数组赋值时间,

1 #include
2 #include
3 #include
4 #include
5 #include
6 using namespace std; 7 struct TT 8 { 9 int x,y,next;10 }node[1010],hash[1010];11 const int N = 1100;12 int vis[N][N];13 int T;14 const int MOD = 10007;15 int next[N],head[MOD],top = 1;16 void creath(int x,int y)17 {18 int key = abs(x)%MOD;19 hash[top].next = head[key];//这样写超时: next[top] = head[key];20 hash[top].x = x;21 hash[top].y = y;22 head[key] = top;23 top++;24 }25 bool cmp(TT a,TT b)26 {27 if(a.x
=0;i = hash[i].next)//换成 i = next[i] 超时35 {36 if(hash[i].x==x && hash[i].y == y)37 return true;38 }39 return false;40 }41 int main()42 {43 int ans;44 int x1,y1,x2,y2,mx,my;45 while(scanf("%d",&T) && T)46 { memset(head,-1,sizeof(head));47 ans = 0;48 for(int i =1;i<=T;i++)49 {50 scanf("%d %d",&node[i].x,&node[i].y);51 creath(node[i].x,node[i].y);52 }53 sort(node+1,node+1+T,cmp);54 for(int i = 1; i

 

转载于:https://www.cnblogs.com/lovychen/p/4402068.html

你可能感兴趣的文章
Google Chrome开发者工具
查看>>
第一阶段冲刺报告(一)
查看>>
使用crontab调度任务
查看>>
【转载】SQL经验小记
查看>>
zookeeper集群搭建 docker+zk集群搭建
查看>>
Vue2.5笔记:Vue的实例与生命周期
查看>>
论JVM爆炸的几种姿势及自救方法
查看>>
联合体、结构体简析
查看>>
使用throw让服务器端与客户端进行数据交互[Java]
查看>>
java反射与代理
查看>>
深度分析Java的ClassLoader机制(源码级别)
查看>>
微服务架构选Java还是选Go - 多用户负载测试
查看>>
我的友情链接
查看>>
Javascript中的异步如何实现回调
查看>>
halcon算子介绍
查看>>
挖掘你不知道的windowsxp中的带宽潜能
查看>>
Software Engineering 招聘要求
查看>>
【转载】InstallAnyWhere自动化制作安装包的知识
查看>>
69、iSCSI共享存储配置实战
查看>>
文本编程
查看>>