CCF CSP ウィンドウについて
XSS クロスサイト スクリプティング攻撃。偽のコンテンツとクリックベイトを通じて同一生成元ポリシーをバイパスします。これは大きな問題であり、攻撃者がコードの挿入に成功すると、かなりの量のユーザー データが漏洩する可能性があります。
問題の説明
特定のグラフィックス オペレーティング システムには N 個のウィンドウがあり、各ウィンドウは座標軸に平行な両側を持つ長方形の領域です。 。ウィンドウの境界上の点もウィンドウに属します。複数のウィンドウが重なっている領域では、ウィンドウ間に階層の違いがあり、最上位のウィンドウのコンテンツのみが表示されます。
画面上の点をクリックすると、クリックした位置の最上位ウィンドウが選択され、このウィンドウはすべてのウィンドウの最上位に移動されますが、残りのウィンドウの階層順序は変更されません。クリックした場所がどのウィンドウにも属していない場合、システムはクリックを無視します。
ここで、ウィンドウをクリックするプロセスをシミュレートするプログラムを作成してもらいます。入力形式
入力の最初の行には、N と M という 2 つの正の整数が含まれています。 (1 ≤ N ≤ 10,1 ≤ M ≤ 10)
次の N 行は、N 個のウィンドウの位置を下から上に順番に示します。各行には 4 つの非負の整数 x1、y1、x2、y2 が含まれており、ウィンドウの頂点座標のペア (x1, y1) と (x2, y2) を示します。 x1 次の M 行のそれぞれには、マウス クリックの座標を表す 2 つの非負の整数 x と y が含まれています。
質問に含まれるすべての点と長方形の頂点の x 座標と y 座標は、それぞれ 2559 と 1439 を超えません。出力形式
出力には M 行が含まれており、各行はマウスのクリックの結果を表します。このマウスクリックによりウィンドウが選択されている場合は、そのウィンドウの番号が出力されます (ウィンドウには入力順に 1 から N までの番号が付けられます)。そうでない場合は、「IGNORED」(二重引用符なし) が出力されます。
サンプル入力
3 4
0 0 4 4
1 1 5 5
2 2 6 6
1 1
0 0
4 4
0 5サンプル出力
2
1
1
IGNOREDサンプルの説明
位置初めてクリックしたボタンは1番目と2番目のウィンドウの両方に属しますが、2番目のウィンドウが一番上にあるので選択して一番上に持ってきます。
2回目にクリックした位置は最初のウィンドウにのみ属するため、このクリックでこのウィンドウが選択され、最上部に表示されます。 3 つのウィンドウ間の階層関係は、初期状態とはまったく逆になります。
3 回目にクリックした位置は同時に 3 つのウィンドウの範囲に属しますが、最初のウィンドウが最上位にあるため、選択されます。
最後にクリックされた (0, 5) はどのウィンドウにも属しません。
分析: 非常に単純な質問ですが、順序さえ分かれば難しいことはありません。
#include <iostream> #include<vector> using namespace std; int main() { int N, M; cin >> N >> M; vector<int>win; vector<int>::iterator it; for (int i = N; i > 0; i--) { win.push_back(i); } int position[11][4]; int cli[13][2]; for (int i = 1; i <= N; i++) { for (int j = 0; j < 4; j++) { cin >> position[i][j]; } } for (int i = 0; i < M; i++) { for (int j = 0; j < 2; j++)//由于写这个的时候精神状态不是很好,原来写成j>2了。后来实在找不到哪里错了,只好把for循环重写了一遍。 { cin >> cli[i][j]; } } for (int i = 0; i < M; i++) { bool you = true; for (int j = 0; j < N; j++) { if (cli[i][0] >= position[win[j]][0] && cli[i][0] <= position[win[j]][2] && cli[i][1] >= position[win[j]][1] && cli[i][1] <= position[win[j]][3]) { cout << win[j] << endl; you = false; if (j != 0) { int a = win[j]; for (it = win.begin(); it != win.end();) { if (*it == a) { it = win.erase(it); // break; } //删除元素,返回值指向已删除元素的下一个位置 else { ++it; } //指向下一个位置 } win.insert(win.begin(), a); } break; } } if (you) { cout << "IGNORED" << endl; } } return 0; }
関連する推奨事項:
HTML5 セキュリティの概要コンテンツ セキュリティ ポリシー (CSP) の概要_html5 チュートリアル スキル
html5 基本タグ (html5 ビデオタグ html5 新しいタグの使用法)_html5 チュートリアル スキル
以上がCCF CSP ウィンドウについての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック











H5ReferStoHtml5、apivotaltechnologyinwebdevelopment.1)html5introduceSnewelementsandapisforrich、dynamicwebapplications.2)Itupp ortsmultimediawithoutplugins、endancingurexperiencecrossdevices.3)semanticelementsimprovecontentstructurendseo.4)H5'srespo

Web標準とテクノロジーは、これまでにHTML4、CSS2、および単純なJavaScriptから進化し、重要な開発を受けてきました。 1)HTML5は、CanvasやWebstorageなどのAPIを導入し、Webアプリケーションの複雑さと互換性を高めます。 2)CSS3はアニメーション関数とトランジション関数を追加して、ページをより効果的にします。 3)JavaScriptは、矢印関数やクラスなど、node.jsおよびES6の最新の構文を通じて開発効率とコードの読みやすさを向上させます。これらの変更により、パフォーマンスの最適化とWebアプリケーションのベストプラクティスの開発が促進されました。

H5コードのベストプラクティスには以下が含まれます。1。正しいDoctype宣言と文字エンコーディングを使用します。 2。セマンティックタグを使用します。 3。HTTPリクエストを削減します。 4.非同期負荷を使用します。 5。画像を最適化します。これらのプラクティスは、Webページの効率、保守性、ユーザーエクスペリエンスを向上させることができます。

H5はHTML5の略語だけでなく、より広い最新のWeb開発テクノロジーエコシステムを表しています。1。H5にはHTML5、CSS3、JavaScript、および関連するAPIおよびテクノロジーが含まれます。 2.より豊かでインタラクティブでスムーズなユーザーエクスペリエンスを提供し、複数のデバイスでシームレスに実行できます。 3. H5テクノロジースタックを使用して、レスポンシブWebページと複雑なインタラクティブ機能を作成できます。

H5とHTML5は、同じこと、つまりHTML5を参照します。 HTML5はHTMLの5番目のバージョンであり、セマンティックタグ、マルチメディアサポート、キャンバスとグラフィックス、オフラインストレージ、ローカルストレージなどの新しい機能をもたらし、Webページの表現力と互換性を向上させます。

HTML5は、最新のWebページを構築するための重要なテクノロジーであり、多くの新しい要素と機能を提供します。 1。HTML5は、Webページの構造とSEOを強化するなどのセマンティック要素を導入します。 2。プラグインなしのマルチメディア要素と埋め込みメディアをサポートします。 3.フォームは、新しい入力タイプと検証プロパティを強化し、検証プロセスを簡素化します。 4.オフラインおよびローカルストレージ機能を提供して、Webページのパフォーマンスとユーザーエクスペリエンスを向上させます。

HTML5コードは、タグ、要素、属性で構成されています。1。タグはコンテンツタイプを定義し、などの角度ブラケットに囲まれています。 2。要素は、startタグ、内容、および内容などのエンドタグで構成されています。 3。属性は、開始タグのキー値のペアを定義し、ような関数を強化します。これらは、Web構造を構築するための基本ユニットです。

H5は、マルチメディアサポート、オフラインストレージ、パフォーマンスの最適化により、Webユーザーエクスペリエンスを向上させます。 1)マルチメディアサポート:H5と要素は、開発を簡素化し、ユーザーエクスペリエンスを向上させます。 2)オフラインストレージ:WebStorageとIndexEdDBは、エクスペリエンスを改善するためにオフラインで使用できるようにします。 3)パフォーマンスの最適化:ウェブワーカーと要素は、パフォーマンスを最適化して帯域幅の消費を削減します。
