博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 1328
阅读量:5014 次
发布时间:2019-06-12

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

 

题目大意:求在x轴上放一些半径为d的圆,问至少多少个能将n个点覆盖,多组询问。

解:原来想着:线段树+heap,可是看着这一个个0ms,不敢切,以后有时间切切看虐自己。正解是先把可行圆心区间求出来,然后求最多的不互斥区间(因为区间相斥的话,说明有共点,于是不用分配多一个雷达了),证明是首先如果当前l>rrr,inc(s), 若有l<rrr and r<rrr则新预设雷达于r,rrr:=r;

好像有种隐约敢,说不出来,好难受,还是以后想透彻了再补

本题的trick点也很多,例如,d<0, y<0,注意y=0竟然是合法的!!wa了两次,囧

View Code
1 //RadarInstallation 2 const 3         maxn=1111; 4         inf='1.txt'; 5         def=1e-10; 6 type 7         data=record 8           l, r: double; 9         end;10 var11         line: array[0..maxn]of data;12         test, n, d, ans: longint;13 procedure qsort(b, e: longint);14 var15         i, j: longint;16         x: double;17         k: data;18 begin19   i := b; j := e; x := line[(i+j)>>1].l;20   repeat21     while line[i].l
x do dec(j);23 if i<=j then begin24 k := line[i]; line[i] := line[j]; line[j] := k;25 inc(i); dec(j);26 end;27 until i>j;28 if j>b then qsort(b, j);29 if i
d) then begin ans := -1; continue; end;42 if y=d then tmp := 043 else tmp := sqrt(sqr(d)-sqr(y));44 l := x - tmp; r := x + tmp;45 end;46 end;47 if ans=-1 then exit;48 qsort(1, n);49 end;50 51 procedure main;52 var53 rrr: double;54 i: longint;55 begin56 rrr := -maxlongint;57 for i := 1 to n do with line[i] do begin58 if l{
+def}>rrr then begin59 inc(ans);60 rrr := r;61 end62 else begin63 if r
0)or(d<>0) do begin78 inc(test);79 init;80 if ans=0 then main;81 print;82 readln;83 readln(n, d);84 end;85 end.

转载于:https://www.cnblogs.com/wmzisfoolish/archive/2012/05/05/2484617.html

你可能感兴趣的文章
如何解决最后一个尾注引用显示与致谢混为一谈的问题-下
查看>>
Java Socket编程 - 基于TCP方式的二进制文件传输【转】http://blog.csdn.net/jia20003/article/details/8248221...
查看>>
阅读之https及加密原理
查看>>
HDOJ4550 卡片游戏 随便销毁内存的代价就是wa//string类的一些用法
查看>>
css文本样式text、字体样式font
查看>>
python判断图片是否损坏
查看>>
MySQL服务启动:某些服务在未由其他服务或程序使用时将自动停止
查看>>
软件工程第四周作业 - 单元测试
查看>>
KNN与SVM对比&SVM与逻辑回归的对比
查看>>
php 现在拓展地址
查看>>
【Java并发编程】之十六:深入Java内存模型——happen-before规则及其对DCL的分析(含代码)...
查看>>
团队个人冲刺第三天
查看>>
unit
查看>>
2017-10-17 NOIP模拟赛2
查看>>
How to install ia32-libs in Ubuntu 14.04 LTS (Trusty Tahr)
查看>>
ACM/ICPC 之 模拟 (HNUOJ 13391-换瓶模拟)
查看>>
JavaWeb学习——JSP基础
查看>>
Eclipse tomcat server 无法添加项目
查看>>
黑寡妇黄飞鸿
查看>>
leetcode 217 Contains Duplicate 数组中是否有重复的数字
查看>>