Codeforces ラウンド #268 (ディビジョン 1)-B。 2 つのセット_html/css_WEB-ITnose
B. 2 セット
テストごとの制限時間 1 秒
テストごとのメモリ制限 256 メガバイト
小さな X には n 個の異なる整数があります: p1、?p2、?。 ..、?pn.彼は、それらすべてを 2 つの集合 A と B に分割したいと考えています。次の 2 つの条件が満たされなければなりません:
数値 x が集合 A に属している場合、数値 a?-?x も集合 A に属している必要があります。 x が集合 B に属している場合、数値 b?-?x も集合 B に属している必要があります。
入力
最初の行には 3 つのスペースが含まれています- で区切られた整数 n,?a,?b (1?≤?n?≤?105; 1?≤?a,?b?≤?109)。次の行には、スペースで区切られた n 個の個別の整数 p1,?p2,?...,?pn (1?≤?pi?≤?109) が含まれています。
出力
数値を除算する方法がある場合を 2 つのセットに分けて、最初の行に「YES」を出力します。次に、割り算を説明する n 個の整数: b1,?b2,?...,?bn (bi は 0 または 1 に等しい) を出力します。 bi が 0 に等しい場合、pi はセット A に属し、それ以外の場合はセット B に属します。
それが不可能な場合は、(引用符なしで) "NO" を出力します。
サンプルテスト
入力
4 5 92 3 4 5
出力
YES0 0 1 1
入力
3 3 41 2 4
出力
NO
注 ですすべての数字が同じセット内にあり、もう一方の数字が空であればOKです。
意解:この道题には非常に多くの解法があり、私はBFSを使用していますが、小さな蔙误失敗システムテキストのため、比赛因です。 我掴a - x 存在しない暂時間確定はb
集合、存存队列、その後BFS、但要注意一问题、但当前の数配对の数は集合里面の话、我们就要a集合里面的那
个数取到bset,如果没播取的,则出"NO",详细看代码吧!
AC代码:
#include <iostream>#include <cstdio>#include <queue>#include <map>using namespace std;const int M = 1e5 + 10;map<int,int>ms;queue<int>ls;int ma[M];int main(){ int n,a,b; scanf("%d %d %d",&n,&a,&b); for(int i = 0; i < n; i++) { scanf("%d", ma + i); ms[ma[i]] = 1; } for(int i = 0; i < n; i++) if(!ms[a - ma[i]]) ls.push(ma[i]); while(!ls.empty()) { int u = ls.front(),tp; ls.pop(); if(ms[u] > 0 && ms[a - u] == 0 && ms[b - u] == 0) { puts("NO"); return 0; } --ms[u]; //表示已被取到b集合去了; --ms[b - u]; tp = a - b + u; if(ms[tp]) ls.push(tp); //如果我所取的那个数是a集合里的,在bfs把另一个数取出来. } puts("YES"); for(int i = 0; i < n; i++) if(ms[ma[i]] == 1) printf("0 "); else printf("1 "); puts(""); return 0;}

ホット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)

ホットトピック











HTMLは、簡単に学習しやすく、結果をすばやく見ることができるため、初心者に適しています。 1)HTMLの学習曲線はスムーズで簡単に開始できます。 2)基本タグをマスターして、Webページの作成を開始します。 3)柔軟性が高く、CSSおよびJavaScriptと組み合わせて使用できます。 4)豊富な学習リソースと最新のツールは、学習プロセスをサポートしています。

HTMLはWeb構造を定義し、CSSはスタイルとレイアウトを担当し、JavaScriptは動的な相互作用を提供します。 3人はWeb開発で職務を遂行し、共同でカラフルなWebサイトを構築します。

Anexampleapalofastartingtaginhtmlis、それはaperginsaparagraph.startingtagsaresentionentientiontheyinitiateelements、definetheirtypes、およびarecrucialforurturingwebpagesandcontingthomedomを構築します。

webdevelopmentReliesOnhtml、css、andjavascript:1)htmlStructuresContent、2)cssStylesit、および3)Javascriptaddsinteractivity、形成、

Y軸位置Webアノテーション機能の適応アルゴリズムこの記事では、単語文書と同様の注釈関数、特に注釈間の間隔を扱う方法を実装する方法を探ります...

GiteEpages静的Webサイトの展開が失敗しました:404エラーのトラブルシューティングと解像度Giteeを使用する

画像をクリックした後、散乱と周囲の画像を拡大する効果を実現するには、多くのWebデザインがインタラクティブな効果を実現する必要があります。特定の画像をクリックして周囲を作成してください...

HTML、CSS、およびJavaScriptは、Web開発の3つの柱です。 1。HTMLは、Webページ構造を定義し、などなどのタグを使用します。2。CSSは、色、フォントサイズなどのセレクターと属性を使用してWebページスタイルを制御します。
