目次
サブシーケンス「RR」を選択 -
例 2
= R
まず、各ステップの最大出現数を数え、それらのいずれかが R に等しいかどうかを確認します。等しくない場合は、任意の数の L または R と U または D のペアによって距離原点が R に等しくなるかどうかを確認します。
ホームページ バックエンド開発 C++ 原点から指定された円の円周上の任意の点に到達できるかどうかを確認します。

原点から指定された円の円周上の任意の点に到達できるかどうかを確認します。

Aug 29, 2023 pm 09:13 PM
プログラミング 診る 原点

原点から指定された円の円周上の任意の点に到達できるかどうかを確認します。

円の円周は、円の外側の境界として定義できます。円の円周です。円の周りのすべての点は、以下に示すような特定のプロパティに従います -

  • 点 (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

2

02 = 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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

正規表現を使用してPHP配列から重複した値を削除します 正規表現を使用してPHP配列から重複した値を削除します Apr 26, 2024 pm 04:33 PM

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

プログラミングは何のためにあるのか、それを学ぶと何の役に立つのか? プログラミングは何のためにあるのか、それを学ぶと何の役に立つのか? Apr 28, 2024 pm 01:34 PM

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

Golang を使用してブラウザベースのアプリケーションを構築する Golang を使用してブラウザベースのアプリケーションを構築する Apr 08, 2024 am 09:24 AM

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

C++ プログラミング パズルのコレクション: 思考を刺激し、プログラミング スキルを向上させます C++ プログラミング パズルのコレクション: 思考を刺激し、プログラミング スキルを向上させます Jun 01, 2024 pm 10:26 PM

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

Python による問題解決: 初心者プログラマーとして強力なソリューションをアンロックする Python による問題解決: 初心者プログラマーとして強力なソリューションをアンロックする Oct 11, 2024 pm 08:58 PM

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

Go Get を使用して Go モジュールをすばやく簡単に入手します Go Get を使用して Go モジュールをすばやく簡単に入手します Apr 07, 2024 pm 09:48 PM

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

コーディングの鍵: 初心者のための Python の力を解き放つ コーディングの鍵: 初心者のための Python の力を解き放つ Oct 11, 2024 pm 12:17 PM

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

エラー処理には golang のエラー ラップおよびアンワインド メカニズムを使用する エラー処理には golang のエラー ラップおよびアンワインド メカニズムを使用する Apr 25, 2024 am 08:15 AM

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

See all articles