原点から指定された円の円周上の任意の点に到達できるかどうかを確認します。
円の円周は、円の外側の境界として定義できます。円の円周です。円の周りのすべての点は、以下に示すような特定のプロパティに従います -
点 (x,y) は、$\mathrm{x^2 y^2
となる円の内側にあります。
点 (x,y) は、$\mathrm{x^2 y^2 = R^2}$
となるように円上に配置されます。
点 (x,y) は円の外側にあり、$\mathrm{x^2 y^2 > R^2}$
になります。
ここで、R = 円の半径。
###問題文###一連の動き (L、R、U、D) を表す文字列 S と、円の半径を表す整数 R を与えます。 S から始まる一連の移動を選択して、原点を伴う半径 R の円周上の任意の点に到達できるかどうかを確認します。各動作の動作は次のとおりです。
L = x 座標を減らす-
#R = インクリメンタル x 座標
U = y 座標の増分
D = y 座標のデクリメント
-
例 1
######入力###### リーリー ######出力###### リーリー イラスト
サブシーケンス「RR」を選択 -
最初は (0, 0) R -> (1, 0) R -> (2, 0) です。 周囲は 2
202 = 4 = R2
になります。例 2
######入力###### リーリー ######出力###### リーリーイラスト
最大のサブシーケンス「UUUU」を選択します -
最初は、(0, 0) U -> (0, 1) U -> (0, 2) U -> (0, 3) U -> (0, 4) U -> (0, 5) 。 02 5
2= 25 R
2であるため、円周に到達することは不可能です。 方法 1: ブルート フォース クラッキング
この問題の解決策は、文字列 S の考えられるすべての部分列を見つけて、各部分列が円に到達できるかどうかを確認することです。これらの条件は、x と y のカウンターを維持することによってチェックされます。ここで、x は L ごとに減分され、R ごとに増分されます。同様に、y は D ごとに減少し、U ごとに増加します。次に、x2 y
2= R
2をチェックして、終点が円周上にあるかどうかを確認します。
疑似コード
リーリー例: C 実装 次のプログラムでは、文字列 S の可能なすべての部分列を作成し、それらが円周に達するかどうかを確認します。 リーリー ###出力### リーリー 方法 2: 最適化方法 この問題を解決する効率的な方法は、(L、R、U、または D) を使用して、x と y の二乗の合計が x と y の任意のペアの半径の二乗に等しいかどうかを確認することです。
まず、各ステップの最大出現数を数え、それらのいずれかが R に等しいかどうかを確認します。等しくない場合は、任意の数の L または R と U または D のペアによって距離原点が R に等しくなるかどうかを確認します。
疑似コード リーリー 以下は C 実装です。 次のプログラムでは、マップを使用して、円の円周につながる部分列があるかどうかを確認します。 リーリー ###出力### リーリー ###結論は### 要約すると、文字列 S の一連のステップを使用して原点を中心とする円の円周を取得できるかどうかを確認するには、上記の方法のいずれかを使用できます。 2 番目の方法は高速な方法ですが、余分なスペースを使用します。一方、1 番目の方法は、あまり効率的ではありませんが、理解しやすい強引な方法です。
以上が原点から指定された円の円周上の任意の点に到達できるかどうかを確認します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









正規表現を使用して PHP 配列から重複値を削除する方法: 正規表現 /(.*)(.+)/i を使用して、重複値を照合して置換します。配列要素を反復処理し、preg_match を使用して一致をチェックします。一致する場合は値をスキップし、一致しない場合は重複値のない新しい配列に追加します。

1. プログラミングは、Web サイト、モバイル アプリケーション、ゲーム、データ分析ツールなど、さまざまなソフトウェアやアプリケーションの開発に使用できます。その応用分野は非常に幅広く、科学研究、医療、金融、教育、エンターテイメントなど、ほぼすべての業界をカバーしています。 2. プログラミングを学ぶことは、問題解決スキルと論理的思考スキルを向上させるのに役立ちます。プログラミング中、問題を分析して理解し、解決策を見つけてコードに変換する必要があります。この考え方は、分析能力と抽象能力を養い、実際的な問題を解決する能力を向上させることができます。

Golang を使用してブラウザベースのアプリケーションを構築する Golang は JavaScript と組み合わせて、動的なフロントエンド エクスペリエンスを構築します。 Golang をインストールする: https://golang.org/doc/install にアクセスします。 Golang プロジェクトをセットアップします。 main.go というファイルを作成します。 GorillaWebToolkit の使用: HTTP リクエストを処理するための GorillaWebToolkit コードを追加します。 HTML テンプレートの作成: template サブディレクトリに、メイン テンプレートであるindex.html を作成します。

C++ プログラミング パズルは、フィボナッチ数列、階乗、ハミング距離、配列の最大値と最小値などのアルゴリズムとデータ構造の概念をカバーします。これらのパズルを解くことで、C++ の知識を強化し、アルゴリズムの理解とプログラミング スキルを向上させることができます。

Python は、問題解決の初心者に力を与えます。ユーザーフレンドリーな構文、広範なライブラリ、変数、条件文、ループによる効率的なコード開発などの機能を備えています。データの管理からプログラム フローの制御、反復的なタスクの実行まで、Python が提供します

GoGet を使用すると、Go モジュールをすばやく簡単に取得できます。手順は次のとおりです: ターミナルで goget[module-path] を実行します。ここで、 module-path はモジュール パスです。 GoGet は、モジュールとその依存関係を自動的にダウンロードします。インストールの場所は、GOPATH 環境変数によって指定されます。

Python は、学習の容易さと強力な機能により、初心者にとって理想的なプログラミング入門言語です。その基本は次のとおりです。 変数: データ (数値、文字列、リストなど) を保存するために使用されます。データ型: 変数内のデータの型 (整数、浮動小数点など) を定義します。演算子: 数学的な演算と比較に使用されます。制御フロー: コード実行のフロー (条件文、ループ) を制御します。

Go のエラー処理には、ラップ エラーとアンラップ エラーが含まれます。エラーをラップすると、あるエラー タイプを別のエラー タイプでラップできるようになり、エラーのより豊富なコンテキストが提供されます。エラーを展開し、ネストされたエラー チェーンをたどって、デバッグを容易にするために最下位レベルのエラーを見つけます。これら 2 つのテクノロジを組み合わせることで、エラー状態を効果的に処理でき、より豊富なエラー コンテキストと優れたデバッグ機能が提供されます。
