码迷,mamicode.com
首页 > 其他好文 > 详细

Codeforces Round #319 (Div. 2) E - Points on Plane

时间:2017-12-15 20:54:02      阅读:51      评论:0      收藏:0      [点我收藏+]

标签:printf   ddc   space   思路   bfd   bsp   ace   nts   span   

题目大意:在一个平面里有n个点,点坐标的值在1-1e6之间,让你给出一个遍历所有点的顺序,要求每个点走一次,且

曼哈顿距离之和小于25*1e8。

 

思路:想了一会就有了思路,我们可以把1e6的x,y坐标都分成2000份,每份500,然后这样整个平面就被分成

了2000*2000个区域,然后按区域输出点就行了。

 

技术分享图片
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int n;
 4 vector<int> ans[2005][2005];
 5 int main()
 6 {
 7     scanf("%d",&n);
 8     for(int i=1;i<=n;i++)
 9     {
10         int x,y; scanf("%d%d",&x,&y);
11         ans[x/500][y/500].push_back(i);
12     }
13     bool flag=false;
14     for(int i=0;i<=2004;i++)
15     {
16         if(!flag)
17         {
18             for(int j=0;j<=2004;j++)
19             {
20                 for(int k:ans[i][j]) printf("%d ",k);
21             }
22         }
23         else
24         {
25             for(int j=2004;j>=0;j--)
26             {
27                 for(int k:ans[i][j]) printf("%d ",k);
28             }
29         }
30         flag=!flag;
31     }
32     return 0;
33 }
View Code

 

Codeforces Round #319 (Div. 2) E - Points on Plane

标签:printf   ddc   space   思路   bfd   bsp   ace   nts   span   

原文地址:http://www.cnblogs.com/CJLHY/p/8044671.html

(0)
(0)
   
举报
评论 一句话评论(0
0条  
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!