【题目】C. Points on Plane

【题意】给定坐标系中n个点的坐标(范围[0,10^6]),求一种 [ 连边形成链后总长度<=2.5*10^9 ] 的方案。n<=10^6。

【算法】思维题(分块思想)

【题解】将这个10^6*10^6的矩阵划分为1000个10^3*10^6的矩阵,第奇数个矩阵内部按y升序连边,第偶数个矩阵内部按y降序连边,两个矩阵之间就直接连边。

1.到达每个点横坐标要移动10^3,总距离10^9。

2.每个矩阵内部纵坐标要移动10^6,总距离10^9。

3.矩阵之间的连边,每次最长2*10^3,总距离2*10^6。

所以总距离为2*10^9+2*10^6,满足要求。

排序的实现和分块类似,复杂度O(n log n)。

#include<cstdio>
#include<cctype>
#include<algorithm>
using namespace std;
int read(){char c;int s=0,t=1;while(!isdigit(c=getchar()))if(c=='-')t=-1;do{s=s*10+c-'0';}while(isdigit(c=getchar()));return s*t;
}
const int maxn=1000010;
struct cyc{int x,y,id;}a[maxn];
int n;
bool cmp(cyc a,cyc b){return a.x<b.x||(a.x==b.x&&a.y<b.y);}
int main(){n=read();for(int i=1;i<=n;i++){a[i].x=read()/1000;a[i].y=read();if(a[i].x%2)a[i].y=-a[i].y;a[i].id=i;}sort(a+1,a+n+1,cmp);for(int i=1;i<=n;i++)printf("%d ",a[i].id);return 0;
}

View Code

转载于:https://www.cnblogs.com/onioncyc/p/8032541.html

【CodeForces】576 C. Points on Plane相关推荐

  1. 【Codeforces】Round #488 (Div. 2) 总结

    [Codeforces]Round #488 (Div. 2) 总结 比较僵硬的一场,还是手速不够,但是作为正式成为竞赛生的第一场比赛还是比较圆满的,起码没有FST,A掉ABCD,总排82,怒涨rat ...

  2. 【Codeforces】925A Stairs and Elevators【贪心】

    [Codeforces]925A Stairs and Elevators [题目大意] 在一个n*m的矩阵里,有clcl个楼梯和cece个电梯,电梯和楼梯可以到任意一层,给出clcl个楼梯的位置和c ...

  3. 【CodeForces】[546A]Soldier and Bananas

    直接运算 并没有什么弯 注意int就足以储存数据 不需要借钱时(n>res) 输出 0 #include<stdio.h> int main() {int k,n,w;while(s ...

  4. 【CodeForces】445B A Lot of Games 字典树博弈

    传送门:[CodeForces]445B  A Lot of Games 题目大意:两人一起构造一个串,每人每次向串的末尾放一个字母,必须保证放了这个字母后能够成所给的N个串的前缀,如果某个人不能放时 ...

  5. 【Codeforces】1080C Masha and two friends (棋盘染色)

    http://codeforces.com/problemset/problem/1080/C 给定一个棋盘,(1,1)的位置是白色,观察可以知道,如果横纵坐标之和是偶数,那么是白色,奇数的话就是黑色 ...

  6. 【codeforces】【比赛题解】#940 CF Round #466 (Div. 2)

    人生的大起大落莫过如此,下一场我一定要回紫. [A]Points on the line 题意: 一个直线上有\(n\)个点,要求去掉最少的点,使得最远两点距离不超过\(d\). 题解: 暴力两重fo ...

  7. 【Codeforces】【161Div2】

    [题目来源]http://www.codeforces.com/contest/263 [A. Beautiful Matrix] [解析]模拟即可.按照题目的意思,找到1所在的位置(x, y),然后 ...

  8. 【CodeForces】961 F. k-substrings 字符串哈希+二分

    [题目]F. k-substrings [题意]给定长度为n的串S,对于S的每个k-子串$s_ks_{k+1}...s_{n-k+1},k\in[1,\left \lceil \frac{n}{2} ...

  9. 【CodeForces】960 F. Pathwalks 主席树+动态规划

    [题目]F. Pathwalks [题意]给定n个点m条边的有向图,可能不连通有重边有自环.每条边有编号 i 和边权 wi ,求最长的路径(可以经过重复节点)满足编号和边权都严格递增.n,m,wi&l ...

最新文章

  1. C#:消息队列应用程序
  2. (转)AS3中的stage,this,root的区别
  3. 电脑中毒的表现有哪些?电脑中毒了怎么办?
  4. 【RabbitMQ】8、RabbitMQ之mandatory和immediate
  5. java自动化测试_Java自动化测试(一)
  6. c语言学生管理系统用户登录,c语言学生管理系统之用户登陆
  7. linux音频声卡 pulseaudio服务
  8. 分享typecho博客的Next主题包
  9. Nuxt.js mini聊天室开发 (mini-chatroom)
  10. Java观察者模式例子
  11. win10教育版加域提示错误
  12. 开源CRM系统国内有哪些品牌做的好?
  13. RuntimeWarning: overflow encountered in exp
  14. html文件上传协议,模拟HTML表单上传文件(RFC 1867)
  15. 【正点原子MP157连载】第四十三章 外置RTC芯片PCF8563实验-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7
  16. android 谷歌地图围栏,如何在谷歌地图与c做地理围栏#
  17. easyExcel导出某列是固定下拉选框的excel模板
  18. 创龙科技Zynq-7010/20工业开发板(双核ARM Cortex-A9+A7)-性能及参数资料
  19. [深入浅出C语言]理解取整、取余和取模
  20. 【异常记录】C# 连接数据库错误异常解决 err:40

热门文章

  1. CTF web题总结--绕过正则表达式
  2. eve模拟器_EVE-NG,不仅仅是一款网络模拟软件,更是虚拟仿真环境
  3. vue怎么引入外网json文件
  4. 无root权限新建git仓库进行多人协同工作
  5. IBM 340 亿美元收购 RedHat(红帽)
  6. 源码阅读之Java栈的实现
  7. vue2.0无限滚动加载数据插件
  8. 【游记】NOIP 2017
  9. socks5协议RFC文档
  10. 搬家到新地址:http://kittsoft.xp3.biz/,欢迎访问!