Topic Learning - Computational Geometry

Original address: http://www.cnblogs.com/ch3656468/archive/2011/03/02/1969303.html

There is not much to say about the basic cross product, dot product and convex hull. I search a lot on the Internet, and I am basically familiar with some topics.

  Some basic topics can be searched by yourself, such as this blog: http://blog.sina.com.cn/s/blog_49c5866c0100f3om.html

  Next, I studied the half-plane intersection. For the thinking method, see Zhu Zeyuan's national team paper in 2007. For the template code, please refer to the self-school Daniel Tao:

http://www.owent.net/2010/10/acm-%E8%AE%A1%E7%AE%97%E5%87%A0%E4%BD%95-%E4%B8%AA%E4%BA%BA%E6%A8%A1%E6%9D%BF.html

  Some questions about half-plane intersection:

  POJ 3335 Rotating Scoreboard
  http://acm.pku.edu.cn/JudgeOnline/problem?id=3335

  POJ 3130 How I Mathematician Wonder What You Are!
  http://acm.pku.edu.cn/JudgeOnline/problem?id=3130

  POJ 1474 Video Surveillance
  http://acm.pku.edu.cn/JudgeOnline/problem?id=1474
  Knowledge point: Half-plane intersection to find the kernel of polygon, existence judgment

  POJ 1279 Art Gallery
  http://acm.pku.edu.cn/JudgeOnline/problem?id=1279
  Intersection of half planes Find the kernel of a polygon and find the area of ​​the kernel

  POJ 3525 Most Distant Point from the Sea (recommended)
  http://acm.pku.edu.cn/JudgeOnline/problem?id=3525
  Given a polygon, find a point inside which is the farthest from the boundary of the polygon, That is, the circle with the largest radius in the polygon.
  Solution: You can use the half plane intersection + bisection method to solve. Divide this distance, and the edges approach inwards until accuracy is achieved.

  POJ 3384 Feng Shui (recommended)
  http://acm.pku.edu.cn/JudgeOnline/problem?id=3384
  The practical application of half plane intersection, covering a polygon with two circles, and asking the maximum area that can cover the polygon.
  Solution: Use half-plane intersection to push each edge of the polygon "inside" R together to get a new polygon, and then find the two farthest points of the polygon.

  POJ 1755 Triathlon (recommended)
  http://acm.pku.edu.cn/JudgeOnline/problem?id=1755
  Half-plane intersection to judge whether the inequality has a solution. Pay attention to the choice of the sign of the inequality in the transformation, which directly affects the direction of the half-plane intersection.

  POJ 2540 Hotter Colder
  http://acm.pku.edu.cn/JudgeOnline/problem?id=2540
  Half-plane intersection to find the area of ​​feasible region of linear programming.

  POJ 2451 Uyuw's Concert
  http://acm.pku.edu.cn/JudgeOnline/problem?id=2451
  Zzy's title for his paper on the nlogn algorithm to solve the half-plane intersection problem.

  (The above topics are from other people's blogs, and there are a few more questions that I found myself)

  POJ 1271 Nice Milk
  http://poj.org/problem?id=1271
  Black Book Exercises

  UVA 11722 Joining with Friend
  http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=117&page=show_problem&problem=2769Probability
  problem, this scale is a bit wasteful to use half plane intersection, but it should be practiced

  USACO 2010 MARCH GOLD StarCowraft
  http://61.187.179.132:8080/JudgeOnline/showproblem?problem_id=1829

  Next, I made a little bit of the problem of coordinate rotation. For details, please refer to Wuhan Daniel's blog post http://dumbear.com/blog/?p=143

  Coordinate rotation topics are not cut much

  HDU 1700 Points on Cycle
  http://acm.hdu.edu.cn/showproblem.php?pid=1700
  A basic question

  POJ 3845 Fractal
  http://poj.org/problem?id=3845
  Pay attention to the value of eps

  POJ 1133 Stars
  http://poj.org/problem?id=1133

  Harbin Online Contest 2010
  http://acm.hrbeu.edu.cn/index.php?act=problem&id=1006&cid=163D
  coordinate rotation. This requires an account to submit, and the "275" of the second Sample in the Sample Input is changed to "270"

  HDU 3623 Covering Points (2010 Tianjin Online Competition Question C)
  http://acm.hdu.edu.cn/showproblem.php?pid=3623 (Avionics does not have this question)
  http://acm.tju.edu.cn /toj/showp3740.html

  FZU 2002 Shade of Hallelujah Mountain (2010福州regional)
  http://acm.fzu.edu.cn/problem.php?pid=2002

  HDU 4087 ALetter to Programmers (2011 Beijing Live)
  http://acm.hdu.edu.cn/showproblem.php?pid=4087
  3D Rotation Matrix + Matrix Acceleration

  Then there is the rotation jam, a good learning website http://cgm.cs.mcgill.ca/~orm/rotcal.html (but it is in English), and later found a big cow's blog with some translations http:/ /blog.csdn.net/ACMaker , I took a look at it together, and it has a lot of benefits.

  Some rotating stuck issues

  POJ 2187 Beauty Contest
  http://acm.pku.edu.cn/JudgeOnline/problem?id=2187
  The convex hull finds the farthest point pair. You can enumerate violently, or you can use a rotating jam.

  POJ 3608 Bridge Across Islands
  http://acm.pku.edu.cn/JudgeOnline/problem?id=3608
  The closest distance between two convex hulls.

  The above two questions can refer to the blog: http://www.cppblog.com/staryjy/archive/2009/11/19/101412.html (the above code is very good)

  POJ 2079 Triangle
  http://poj.org/problem?id=2079
  This question thinks that O(N^2) complexity will time out, and the result is O(N^2) complexity

  UVA 10173
  http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=13&problem=1114&mosmsg=Submission+received+with+ID+8029560
  Given a point set S, find the minimum covering rectangle of S

  Then looked at some scanlines or something.

  Recommend a few good topics:

  POJ 2932 Coneology
  http://poj.org/problem?id=2932

  HDU 3124 Moonmist
  http://acm.hdu.edu.cn/showproblem.php?pid=3124
  Nearest circle pair problem (bisection + scan line)

  HDU 3867 Light and Shadow
  http://acm.hdu.edu.cn/showproblem.php?pid=3867
  (scan by polar angle) Note - PI and PI position segmentation

  I saw some random algorithms below: (Gu Yan's paper in 2008 - "On the Application of Randomization Ideas in Geometric Problems")

    (1) Random Increment Method: This algorithm is very sharp, reducing some computational geometry problems to an n complexity. (typically with minimal circle coverage)

        I found a random incremental algorithm with minimum circle coverage on the Internet. The code inside is good, but the explanation is not very clear. It is recommended to read "Computational Geometry Algorithms and Applications (3rd Edition)" (translated by Deng Junhui, published by Tsinghua University Press) in the The content in the chapter "4.7 Minimum Enclosing Circle" on page 91 is more detailed and clear. For the code, I refer to this blog's http://blog.csdn.net/pvpishard/archive/2011/01/27/6167262.aspx

    (2) Simulated annealing: refer to Gu Yan's paper

      The topic of simulated annealing:

      POJ 1379 Run Away
      http://poj.org/problem?id=1379

      POJ 2420 A Star not a Tree?
      http://poj.org/problem?id=2420

      URAL 1520 Empire Strikes Back (recommended)
      http://acm.timus.ru/problem.aspx?space=1&num=1520
      Gu Yan thesis example, good topic

      POJ 2069 Super Star
      http://poj.org/problem?id=2069
      This question I WA and TLE many times

      POJ 3301 Texas Trip
      http://poj.org/problem?id=3301
      This question can also be three-
      
      pointed SPOJ 4409 Circle vs Triangle
      https://www.spoj.pl/problems/AREA1/simulated
      annealing + analytic geometry

      POJ 3285 Point of view in Flatland
      http://poj.org/problem?id=3285
      The difficulty of this problem is to find a suitable evaluation function, of course, this problem can also be done by solving a system of equations

      POJ 2600 Geometrical dreams
      http://poj.org/problem?id=2600
      This question is not a simulated annealing question, but it can be done with simulated annealing. Non-simulated annealing methods are also not difficult

  Analytic geometry, plane closest point pair, . . . These are not very deep.

  For origami problems, see Daniel dumbear's blog http://dumbear.com/blog/?p=249

  two questions

  POJ 1921 Paper Cut
  http://poj.org/problem?id=1921
  This question is relatively easy to do compared to the next question

  POJ 3806 Origami Through-Hole
  http://poj.org/problem?id=3806
  This problem is a bit troublesome to deal with, I debugged it for a long time

  The area of ​​the circle is merged and intersected. For details, please refer to the blog of AekdyCoin Daniel

  The area of ​​the circle is combined: http://hi.baidu.com/aekdycoin/blog/item/c1b28e3711246b3f0b55a95e.html

  The area of ​​the circle: http://hi.baidu.com/aekdycoin/blog/item/12267a4e9476153bafc3abbd.html

  topic:

  SPOJ 8073 The area of the union of circles
  https://www.spoj.pl/problems/CIRU/

  SPOJ 3863 Area of circles
  https://www.spoj.pl/problems/VCIRCLES/

  SPOJ 8119 CIRU2
  https://www.spoj.pl/problems/CIRUT/Extension
  of circle area union

  HDU 3467 Song of the Siren
  http://acm.hdu.edu.cn/showproblem.php?pid=3467

  HDU 3239 Jiajia's Robot (recommended)
  http://acm.hdu.edu.cn/showproblem.php?pid=3239
  A very ingenious question, I learned the method only after reading the message in AC Daniel's blog.
  For the method, see a message in the AC Daniel blog: http://hi.baidu.com/aekdycoin/blog/item/12267a4e9476153bafc3abbd.html

  The area of ​​the convex polygon and

  I first read the blog of AC Daniel and learned the O(N^3) method. Later, when I was working on Codeforces, I found that there was an O(N^2*logN) method, and it was not cumbersome.

  AC Daniel's blog post: http://hi.baidu.com/aekdycoin/blog/item/fbe5a03232c71952ad4b5fcc.html

  Codeforces Round #83 DIV1's E question can't pass the 49th set of data with the O(N^3) method, and then studied the codes of other Daniel's convex polygon intersections

  http://codeforces.com/contest/107/status/E

  First, I looked at dagon's code and found that there was actually a problem with his code, and the data of Codeforces was not found. Then read the code of syntax_error,

  I found that he did it with a method similar to trapezoidal division, and the complexity was O(N^2*logN), so I learned it decisively.

  Topic: http://codeforces.com/contest/107/problem/E

  For details: http://www.cnblogs.com/ch3656468/archive/2011/10/17/2215551.html

  There is a class of problems that give some points and tell you which points are connected by lines, and there are no other intersections between these line segments except the endpoints (sometimes these line segments have to be processed by themselves).

  Then the question asks you

    1 Area of ​​each small polygon

    2 How many K polygons do not contain points and line segments inside

    3 The outline of the figure enclosed by these line segments

  The methods for such topics are similar, and similar methods can be found in many Daniel's blogs.

  For example: gccfeli Daniel's blog: http://gccfeli.cn/2007/09/%E8%AE%A1%E7%AE%97%E5%87%A0%E4%BD%95-pku1092-%E5% A5%87%E7%89%B9%E7%9A%84%E6%8A%80%E5%B7%A7.html

      watashi big cow blog: http://watashi.ws/blog/970/andrew-stankevich-3-solution/

      Isun大牛的blog:http://hi.baidu.com/xh176233756/blog/item/29652646f0e870006a63e5cb.html

  topic:

  POJ 1092 Farmland
  http://poj.org/problem?id=1092

  ZOJ 2361 Areas / SGU 209
  http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2361
  A good question, there is a solution report in watashi's blog

  POJ 3743 LL’s cake
  http://poj.org/problem?id=3743

  POJ 2164 Find the Border
  http://poj.org/problem?id=2164

  3D geometry

  There is very little content about 3D geometry on the Internet, and the codes and topics can hardly be found, so I cut a few questions.

  The two questions in the previous coordinate rotation:

    Harbin Online Contest 2010
    http://acm.hrbeu.edu.cn/index.php?act=problem&id=1006&cid=163D
    coordinate rotation. This requires an account to submit, and the "275" of the second Sample in the Sample Input is changed to "270"

    FZU 2002 Shade of Hallelujah Mountain (2010福州regional)
    http://acm.fzu.edu.cn/problem.php?pid=2002

  SGU 110 Dungeon
  http://acm.sgu.ru/problem.php?contest=0&problem=110
  3D light reflection

  FZU 1981 Three kingdoms (2010 Fuzhou Online Competition)
  http://acm.fzu.edu.cn/problem.php?pid=1981
  Coordinate mapping, I used map to TLE at first, so I had to change the code without map

  UVA 11275 3D Triangles
  http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=2250
  HDU 4042 is an enhanced version of this question, I use the same code AC
  for this question in the title Weird precision 0.000001 I didn't deal with it specially

  HDU 4042 Fireworks (2011 Beijing Online Competition)
  http://acm.hdu.edu.cn/showproblem.php?pid=4042
  Very good problem (solution report: http://hi.baidu.com/%D0% A1%CE%E4rj/blog/item/0114bb2dcd4cdef78b13991d.html )

  HDU 4087 ALetter to Programmers (2011 Beijing Live)
  http://acm.hdu.edu.cn/showproblem.php?pid=4087
  3D Rotation Matrix + Matrix Acceleration

  Some other topics:

  EOJ 283 Target Practice
  http://202.120.106.94/onlinejudge/problemshow.php?pro_id=283
  Search + Geometry

  POJ 1688 Dolphin Pool
  http://poj.org/problem?id=1688
  There are several ways to do this

  POJ 1981 Circle and Points
  http://poj.org/problem?id=1981
  is a very classic topic

  POJ 3675 Telescope
  http://poj.org/problem?id=3675
  Common area of ​​circles and polygons

  POJ 1259 The Picnic
  http://poj.org/problem?id=1259
  Maximum convex hole, Computational Geometry + DP

  POJ 1586 Three Sides Make a Triangle
  http://poj.org/problem?id=1586
  The content of the question is very simple and the method is obvious, but it is not easy to think about AC, the accuracy is disgusting, I just read the discussion The
  
  HDU 3629 Convex (recommended)
  http://acm.hdu.edu.cn/showproblem.php?pid=3629
  is a good question. There are two ideas for this question:
    1) http://apps.topcoder.com/ wiki/display/tc/TCO%2710+Online+Round+4
    2) http://www.owent.net/2010/09/the-35th-acmicpc-asia-regional-tianjin-site-%E2%80% 94%E2%80%94-online-contest-1009-convex-%E8%A7%A3%E9%A2%98%E6%8A%A5%E5%91%8A.html

  HDU 3644 A Chocolate Manufacturer's Problem (2010 Hangzhou Online Competition)
  http://acm.hdu.edu.cn/showproblem.php?pid=3644
  I originally wanted to use simulated annealing, but the result was hovering between WA and TLE, unable to AC

  FZU 1973 How many stars (recommended) (2010 Fuzhou Online Competition)
  http://acm.fzu.edu.cn/problem.php?pid=1973
  A relatively classic topic

  POI2007 Symmetry axis osi
  http://www.zybbs.org/JudgeOnline/problem.php?id=1100
  A very sharp question, the meaning of the question is to judge the number of symmetry axes of a polygon. (N^2) complexity,
  this time O(N^2) will not work, and randomization will not pass, and finally this problem is solved under the guidance of the problem-solving report. For the first time, it was discovered that
  the can be solved by the method of strings.
  Problem solving report found on the Internet: http://hi.baidu.com/nplusnplusnplu/blog/item/d260baef2e9e9c5879f055cb.html

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325817329&siteId=291194637