けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

計算幾何

AOJ 3167 Many Points (HUPC 2020 day1-D)

面白かった! 問題へのリンク editorial 問題概要 次の問題が ケース分与えられる。 二次元平面上に 個の格子点が与えられる。これらに対し、以下の条件を満たす直線 が存在するかどうかを判定せよ。 どの点に対しても、 との距離が等しい 制約 考えたこと …

AOJ 3176 Plane Graph (HUPC 2020 day3-E)

原案でした!僕は比較的アドホック寄りの問題を作る傾向があったかもだけど、これは典型な感じ。 問題へのリンク 問題概要 頂点数 、辺数 の連結な平面グラフが与えられます。ここで、各頂点の座標 も入力として与えられます。 どの 3 点も一直線上にはあり…

AtCoder ABC 168 C - : (Colon) (灰色, 300 点)

余弦定理を使うか、座標を求めるか、、、いずれにしても三角関数の素養を要求する問題。 問題へのリンク 問題概要 時計の時針と分針があって、それぞれ長さは , となっている。 時 分の段階において、時針の先端と分針の先端との距離がどのようになっている…

AtCoder ABC 144 D - Water Bottle (茶色, 400 点)

これかーーー数学ゲーじゃないかと物議を醸した問題。でも普通にいい問題だと思う!! 問題へのリンク 問題概要 底面が一辺 cm の正方形であり、高さが cm であるような直方体型の水筒に、体積 cm3 の水を入れる。 底面の正方形の一辺を軸として、この水筒を…

AtCoder ABC 163 A - Circle Pond (100 点)

浮動小数点型の出力を練習できる問題ですね 問題へのリンク 問題概要 半径 の円の円周の長さを求めよ。 考えたこと を出力すれば OK。 については、一つの方法として double PI = acos(-1.0); とするのをよくやる! また、小数点 10 桁まで出力するとかは co…

AtCoder ABC 157 F - Yakiniku Optimization Problem (橙色, 600 点)

ABC 151 F 以来の幾何ですね。ABC 151 F の解法のうち「探索候補として交点を考える」というのが今回もいい感じに使える! drken1215.hatenablog.com 問題へのリンク 問題概要 二次元平面上に 個の点 が与えられる。それぞれの点に肉が置いてある。このうち…

円と多角形の共通部分の面積 (AOJ Course CGL_7_H)

円と多角形の共通部分の面積を求めるライブラリ、一念発起して整備した!!! サブルーチンとして「円と "線分" の交点を求める」というライブラリが必要となる。 問題へのリンク 問題概要 原点を中心とした半径 の円と、 頂点の多角形が与えられる。これら…

Educational Codeforces Round 2 D. Area of Two Circles' Intersection (R2000)

円と円の共通部分の面積!!! 問題へのリンク 問題概要 円が 2 つ与えられる。それらの共通部分の面積を求めよ。 制約 座標の絶対値が 以下 解法 「接する場合」を除くと、以下の 3 パターンにわかれる 完全に disjoint (面積は 0) 2 点で交わる 一方が他方…

AOJ 3034 Explosion (RUPC 2018 day2-I)

最小包含円シリーズ!!! 問題へのリンク 問題概要 二次元平面上に 個の点がある。これを 個の円ですべて覆うようにしたいです。 これを実現できるような 個の円の半径の最大値として考えられる最小値を求めよ。 制約 考えたこと まず要素技術として、 通り…

AOJ 1132 Circle and Points (ICPC 国内予選 2004 D) (450 点)

最小包含円と似て異なる問題。 問題へのリンク 問題概要 二次元平面上に 個の点がある。 半径 1 の円を上手に配置したときに、その中に含めることにできる点の個数の最大値を求めよ。 制約 考えたこと 「 点のうち 2 点を通る半径 1 の円」に探索候補を絞っ…

AOJ 2423 コードアートオンライン / Code Art Online

最小包含円と、マッチングの二部構成問題 問題へのリンク 問題概要 個の円 ( と番号付けされている) と、 個の多角形 ( と番号付けされている) とが与えられる。 各円は、中心の座標と半径 各多角形は、各頂点の座標 が与えられる。すべての多角形が、いずれ…

AOJ 2972 All your base are belong to us (JAG 夏合宿 2019 day1-F)

今日の ABC 151 F で、「三分探索」とか「山登り法」とか聞いたので!!! 問題へのリンク 問題概要 二次元平面上に 個の点が与えられる。 今、好きな位置に点を打って、その点から 個の点との距離のうち、大きい順に 個の総和をとる。 上手に点を打ったとき…

AtCoder ABC 151 F - Enclose All (青色, 600 点)

幾何だ!!!!! そして、こういうので「ギリギリを考える」というのは典型な感じ。 なお、僕は最小包含円のことを知らず、アドホックに解いたけど、ライブラリ貼るだけだったらしい... (その方が計算量も少ない) 他にも、三分探索でも解ける!!! 問題へ…

AtCoder ABC 130 C - Rectangle Cutting (茶色, 300 点)

長方形を直線で真っ二つに割る方法について 直線が長方形の対角線の交点を通る 直線が長方形を二等分する というのは同値だという話。結構、中学受験の算数では定番の話だったりする。 問題へのリンク 問題概要 二次元平面上で を頂点とした長方形と、その内…

Codeforces 558 DIV2 C2. Power Transmission (Hard Edition) (R2000)

有理数使った 問題へのリンク 問題概要 二次元平面上に 個の点がある。これらの任意のペアを結んでできり直線たちを考える (異なるペアが同一の直線を生成するときは、一つの直線とみなす)。 これらの直線たちの交点が何点生じるかを求めよ。 制約 考えたこ…

AtCoder AGC 021 B - Holes (黄色, 600 点)

駅メモ!駅メモ!駅メモ!!!!! 問題へのリンク 問題概要 座標平面上に 個の頂点がある。各頂点の座標は で与えられる。 原点を中心とする半径 の円内の点をランダムに選び、与えられた 個の点の中から最も近い距離にある点へと移動する。 各点について、…

AOJ 3060 Rings (RUPC 2019 day2-J)

有理数さん。。。 誤差がとんでもなく厳しいらしく、有理数ライブラリを使うということをついに覚えた!!! あと、問題の解法自体は「区間串刺し」といういわゆる「区間スケジューリング問題」の亜種。 問題へのリンク 問題概要 とある水族館に住むイルカ君…

AOJ 3054 Tunnel (RUPC 2019 day2-D)

離散量だなんて思わなかった。。。 問題へのリンク 問題概要 (略) 個の長方形からなるヒストグラム (x 座標が から の範囲に存在していて、それぞれの長方形の高さが ) が与えられて、それに合わせて折れ線を最適化する。 折れ線の始点は 正の整数 があって…

AOJ 3056 Equilateral Triangle (RUPC 2019 day2-F)

計算量的な詰めが甘かった。二分探索要らなかった。 問題へのリンク 問題概要 凸な 角形が与えられる。この 角形を完全に含むような正三角形の一辺の長さの最小値を求めよ。 制約 考えたこと 座標系として くらいの大きさまであるので、EPS は くらいがいい…

AOJ 1089 Strawberry Cake

面積二等分系の第二弾 問題へのリンク 問題概要 頂点の凸多角形が与えられる。原点を通る直線であって、この凸多角形を面積が等分になるように切断するものを求めよ。複数ある場合はどれか 1 つ求めればよい。 制約 原点は凸多角形に内包される 考えたこと …

AOJ 2442 Convex Cut (JAG 夏合宿 2012 day3b-C) (400 点)

面積二等分系問題、こないだ ICPC アジア 2019 にも出ていた。そっちは超むずいけど、こっちは簡単。 問題へのリンク 問題概要 頂点の凸多角形が与えられる。以下の条件を満たす点 P を求めよ: P を通る任意の直線によって、凸多角形は面積の等しい 2 つの凸…

CS Academy FII Code #1 E - Sugarel’s Garden

にはできたけど、 にできなかった。 問題へのリンク 問題概要 二次元平面上に 点が与えられる。 点から 4 点を選んでできる四角形のうち、内部にちょうど 個の点をもつものすべてを考えたとき、その面積の最小値を求めよ。 制約 どの 3 点も同一直線上にはな…

AtCoder ARC 064 E - Cosmic Rays (青色, 600 点)

昔の AtCoder はこういうのもあったのか!!! 問題へのリンク 問題概要 二次元平面上に、 個の円がある。二次元平面上の点 から点 へと進むことを考える。秒速 1 だけ進む。 そのような方法のうち、円外の領域を進んでいる時間の最小値を求めよ。 制約 考え…

AOJ 2136 Webby Subway (JAG 夏合宿 2008 day2-F)

最大 22 頂点のグラフの彩色数を求める問題 問題へのリンク 問題概要 本の折れ線が与えられる。折れ線に対応した 頂点のグラフを考える。対応する折れ線同士が交差するところに辺を張る。 このグラフの彩色数を求めよ。 制約 解法 前半の幾何は虚無。実質的…

AOJ 2402 天の川 (ICPC 模擬国内 2012 D) (400 点)

コピペできる環境だったからライブラリで殴ったけど、ICPC 環境だったらタイピング量を減らす工夫せなアカンかな... 問題へのリンク 問題概要 下図のような、五角星 個があって、 個目の五角星から 個めの五角星までの最短距離を求めよ。 制約 考えたこと 五…

AOJ 1157 大玉転がし (ICPC 国内予選 2008 E) (450 点)

ごろごろごろごろ 問題へのリンク 問題概要 球を、地面を点 から点 へと直線的に移動する。 直線の周りには直方体が配置されていて、その直方体と球が物理的に干渉しないようにしたい。 極端な話、球の半径が ならば干渉することはない。球の半径をどこまで…

AOJ 1183 鎖中経路 (ICPC 国内予選 2012 E) (550 点)

あまり良くない方針でゴリ押してしまった。でもゴリ押しで通せることの証左になるかと思って記録してみることに 問題へのリンク 問題概要 下図のような「円の列」の内部だけを通る折れ線 (最初の円の中心と、最後の円の中心とを結ぶ) の長さの最小値を求めよ…

Tenka1 2018 E - Equilateral (橙色, 700 点)

素直な問題だったけど、重たかった 問題へのリンク 問題概要 のグリッドが与えられる。各マスには白黒で塗られている。 黒マスの 3 つ組であって、それがマンハッタン距離の意味で正三角形になっているようなものが何個あるか数え上げよ。 制約 考えたこと …

AOJ 2201 不死の宝石 (JAG 模擬国内 2010 E) (550 点)

共通接線ライブラリの整備 問題へのリンク 問題概要 互いに重ならない円が N 個ある。 直線を考えたとき、そのスコアは 各円に対して、その円と共有点を持たず、その円との距離がある一定 (円に依存して決まる値) 以下であるとき 1 を加算、そうでないとき 0…

AOJ 1523 Cone Cut

3 次元幾何の練習 問題へのリンク 問題概要 円錐を平面によって切断するとき、分離された2つの部分の体積を求めよ。 解法 ちょっと複雑だが、2次元に射影して考える。 そのためには、3次元幾何の正射影が必要になる #include <iostream> #include <vector> #include <cmath> #include <iomanip></iomanip></cmath></vector></iostream>…