1. //一些点一些圆,过圆不能连线,相邻点不能连线,问最多连几条线
  2. //计算几何模板+区间dp
  3. //关键是判断圆和线段是否相交
  4. #include <cstdio>
  5. #include <cmath>
  6. #include <algorithm>
  7. #define N 500
  8. #define ll long long
  9. #define sqr(x) ((x)*(x))
  10. using namespace std;
  11. bool ok[N][N];
  12. ll n,m,r,f[N][N];
  13. struct poi
  14. {
  15. ll x,y;
  16. poi(ll X,ll Y)
  17. {
  18. x=X;y=Y;
  19. }
  20. poi()
  21. {
  22. }
  23. } p[N],q[N];
  24. ll cro(poi a,poi b)
  25. {
  26. return (a.x*b.y-a.y*b.x);
  27. }
  28. ll dot(poi a,poi b)
  29. {
  30. return a.x*b.x+a.y*b.y;
  31. }
  32. poi tr(poi a,poi b)
  33. {
  34. return poi(a.x-b.x,a.y-b.y);
  35. }
  36. double dis(poi a,poi b)
  37. {
  38. return sqrt((double)(sqr(a.x-b.x)+sqr(a.y-b.y)));
  39. }
  40. bool cmp(poi a,poi b)
  41. {
  42. return (a.x<b.x)||(a.x==b.x && a.y<b.y);
  43. }
  44. bool cmp2(poi a,poi b)
  45. {
  46. return cro(tr(a,p[]),tr(b,p[]))>;
  47. }
  48. bool check(poi a,poi b)
  49. {
  50. double C=dis(a,b);
  51. for(int i=;i<=m;i++)
  52. {
  53. double A=dis(q[i],a);
  54. double B=dis(q[i],b);
  55. double COSA=(B*B+C*C-A*A)/(*B*C);
  56. double COSB=(A*A+C*C-B*B)/(*A*C);
  57. if(COSA<1e-||COSB<1e-){
  58. if(A<1.0*r+1e-||B<1.0*r+1e-)return ;
  59. else continue;
  60. }
  61. double SINA=sqrt(-COSA*COSA);
  62. double H=B*SINA;
  63. if(H<1.0*r+1e-)return ;
  64. }
  65. return ;
  66. }
  67. int main()
  68. {
  69. scanf("%d%d%d",&n,&m,&r);
  70. for(int i=;i<=n;i++)
  71. scanf("%d%d",&p[i].x,&p[i].y);
  72. sort(p+,p++n,cmp);
  73. sort(p+,p++n,cmp2);
  74. for(int i=;i<=m;i++)
  75. scanf("%d%d",&q[i].x,&q[i].y);
  76. for(int i=;i<=n;i++)
  77. for(int j=i+;j<=n;j++)
  78. if(i!= || j!=n)
  79. ok[i][j]=check(p[i],p[j]);
  80. for(int len=;len<=n;len++)
  81. for(int start=;start<=n;start++){
  82. ll end=start+len;
  83. for(int k=start+;k<min(end,n);k++)
  84. f[start][end]=max(f[start][end],f[start][k]+f[k][end]);
  85. f[start][end]+=ok[start][end];
  86. }
  87. printf("%d\n",f[][n]);
  88. }

POJ3178 计算几何+DP的更多相关文章

  1. sdut 2153:Clockwise(第一届山东省省赛原题,计算几何+DP)

    Clockwise Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 Saya have a long necklace with ...

  2. poj3178 Roping the Field (计算几何 + dp)

    Roping the Field Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 858   Accepted: 250 De ...

  3. 『HGOI 20190917』Cruise 题解 (计算几何+DP)

    题目概述 在平面直角坐标系的第$1$象限和第$4$象限有$n$个点,其中第$i$个点的坐标为$(x_i,y_i)$,有一个权值$p_i$ 从原点$O(0,0)$出发,不重复的经过一些点,最终走到原点, ...

  4. HDU 4562 守护雅典娜 (计算几何+DP)

    守护雅典娜 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submi ...

  5. Code Chef MINPOLY(计算几何+dp)

    题面 传送门 题解 我们枚举这个凸多边形\(y\)坐标最小的点\(p_i\),然后对于所有\(y\)坐标大于等于它的点极角排序 我们预处理出\(s_{j,k}\)表示三角形\(p_i,p_j,p_k\ ...

  6. bzoj 3778: 共鸣【计算几何+dp】

    枚举起点,然后设f[i][j]为上凸壳上一个点是i当前点是j的最大面积,g是下凸壳,然后合并的时候枚举结束点t合并上下凸壳即可 这样的好处是每次转移都是往凸多边形里加一个三角形(s,i,j),所以判断 ...

  7. SDOI2019 省选前模板整理

    目录 计算几何✔ DP 斜率优化✔ 四边形不等式✔ 轮廓线DP✘ 各种分治 CDQ分治✔ 点分治✔ 整体二分✔ 数据结构 线段树合并✔ 分块✔ K-D Tree LCT 可持久化Trie✔ Splay ...

  8. 2019.03.15 ZJOI2019模拟赛 解题报告

    得分: \(20+45+15=80\)(三题暴力全写挂...) \(T1\):Lyk Love painting 首先,不难想到二分答案然后\(DP\)验证. 设当前需验证的答案为\(x\),则一个暴 ...

  9. HZNU Training 4 for Zhejiang Provincial Collegiate Programming Contest 2019

    今日这场比赛我们准备的题比较全面,二分+数论+最短路+计算几何+dp+思维+签到题等.有较难的防AK题,也有简单的签到题.为大家准备了一份题解和AC代码. A - Meeting with Alien ...

随机推荐

  1. 机器视觉 之 Gabor Feature

    在机器视觉中,gabor feature是一种比较常见的特征,因为其可以很好地模拟人类的视觉冲击响应而被广泛应用于图像处理, gabor feature 一般是通过对图像与gabor filter做卷 ...

  2. ACM学习历程——HDU4472 Count(数学递推) (12年长春区域赛)

    Description Prof. Tigris is the head of an archaeological team who is currently in charge of an exca ...

  3. javacpp-FFmpeg系列补充:FFmpeg拉流截图实现在线演示demo(视频截图并返回base64图像,支持jpg/png/gif/bmp等多种格式)

    javacpp-ffmpeg系列: javacpp-FFmpeg系列之1:视频拉流解码成YUVJ420P,并保存为jpg图片 javacpp-FFmpeg系列之2:通用拉流解码器,支持视频拉流解码并转 ...

  4. Ubuntu环境下对拍

    何为对拍 假设我在考场上写了一个能过样例的算法.然后它也能过大样例但是我觉得有些担心某些细节会出错,或者是它连大样例都过不了但是大样例过大无法肉眼差错,这个时候我们就需要对拍了. 所谓对拍,就是对着拍 ...

  5. ScrollView cannot scroll in Slidinguppanellayout 解决办法

    xml源码如下 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:an ...

  6. stm32之时钟控制

    本文提到的有以下内容: 时钟系统与总线矩阵 SysTick系统定时器 RTC实时时钟 看门狗定时器 通用定时器 一.时钟系统与总线矩阵 stm32F4的时钟树如下图所示: 在STM32中,有五个时钟源 ...

  7. Centos 6.5 下Nginx安装部署https服务器

    一般我们都需要先装pcre, zlib,前者为了重写rewrite,后者为了gzip压缩.1.选定源码目录选定目录 /usr/local/cd /usr/local/2.安装PCRE库cd /usr/ ...

  8. 使用MeshLab的技巧总结(自己原创总结)

    1.放大点的显示,Alt+wheel,即按住Alt键后使用鼠标滑轮改变点的显示大小.

  9. POJ1251 Jungle Roads Kruskal+scanf输入小技巧

    Jungle Roads The Head Elder of the tropical island of Lagrishan has a problem. A burst of foreign ai ...

  10. mysql由浅入深探究(二)----mysql用户操作

    上一节我们完成了mysql的安装,现在我们将开启实战模式,完成一些基本的mysql操作.这节我们分为一些几个内容: mysql中用户新建 mysql中用户删除 mysql中用户修改 mysql中用户查 ...