日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CF468B Two Sets

發布時間:2023/12/10 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CF468B Two Sets 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原題鏈接

DOWNLOAD AS PDF

題目大意

給出\(n\)個各不相同的數字,將它們分別放入\(A\)\(B\)兩個集合中,使它們滿足:

  • 若數字\(x\)在集合\(A\)中,那么數字\(a-x\)也在集合\(A\)中;
  • 若數字\(x\)在集合\(B\)中,那么數字\(b?x\)也在集合\(B\)中。

(by \(\color{red}\sf{Uranus}\)

題解

感覺網上全是并查集的題解。

沒有貪心?

感覺貪心比并查集好想啊……

首先我們想到的肯定是開個set大力匹配,然而發現對于一個\(x\)可能\(a-x\)\(b-x\)都在序列中,于是我們就陷入兩難了。

如何解決這個問題呢?

現在我們假設\(a\ge b\)。

我們每次貪心地選出沒有匹配過的數的最小值,設其為\(x\)。

假設我們發現\(a-x\)\(b-x\)都在序列中且都沒有被匹配過。

我們會發現\(x\)一定與\(a - x\)匹配。

假設答案是\(x\)\(b - x\)匹配,那也就是說\(a - x\)不在\(A\)集合里,所以其在\(B\)集合里,則與之匹配的是\(b - (a - x) = x + (b - a)\le x\),但由于\(x\)是序列中的最小數,所以不存在\(b - (a - x)\)

代碼也很簡單:

#include <cstdio> #include <cstring> #include <set>using namespace std;const int maxn = 100005;int ans[maxn];struct EE {int x, id;inline bool operator < (const EE& other) const{return this->x < other.x;} } aa[maxn];set<EE> ss;int main() {int n, a, b;scanf("%d%d%d", &n, &a, &b);ss.clear();bool f = false;if(a < b){swap(a, b);f = true;}for(int i = 1; i <= n; ++i){EE aa;scanf("%d", &aa.x);aa.id = i;ss.insert(aa);}memset(ans, 0xff, sizeof(ans));while(!ss.empty()){set<EE>::iterator it = ss.begin();EE tx = *it;tx.x = a - it->x;set<EE>::iterator x = ss.lower_bound(tx);if(x != ss.end() && x->x + it->x == a){ans[x->id] = ans[it->id] = 0;if(x->id != it->id){ss.erase(x);ss.erase(it);}elsess.erase(x);}else{tx.x = b - it->x;x = ss.lower_bound(tx);if(x != ss.end() && x->x + it->x == b){ans[x->id] = ans[it->id] = 1;if(x->id != it->id)ss.erase(it);ss.erase(x);}elsereturn puts("NO"), 0;}}puts("YES");for(int i = 1; i <= n; ++i)printf("%d ", ans[i] ^ f);return 0; }

轉載于:https://www.cnblogs.com/pfypfy/p/9609913.html

總結

以上是生活随笔為你收集整理的CF468B Two Sets的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 免费看成人啪啪 | 亚洲精品成人影视 | 91激情在线观看 | 日本一二三区视频 | 国产福利91精品 | 亚洲人女屁股眼交6 | 久久艹精品 | 美女扒开内裤让男人捅 | 鲁片一区二区三区 | 成人做爰9片免费视频 | 日韩特黄一级片 | 欧美在线中文字幕 | 国产黄色片在线免费观看 | 欧美 日韩 中文字幕 | 欧美激情网站 | 欧美精品一二区 | 国产成人一区二区三区视频 | 日本黄色片 | 在厨房拨开内裤进入毛片 | 精品人伦一区二区三区 | 好吊色在线观看 | 天天干,天天操,天天射 | 欧美三级网站 | 国产综合第一页 | 麻豆免费在线播放 | 东北少妇高潮抽搐 | 亚洲图片欧美视频 | 一级欧美一级日韩片 | 国产精品久久久久桃色tv | 亚洲色图综合网 | 午夜精品久久久久久久久 | 爱福利视频一区二区 | 午夜日韩电影 | 少妇无套高潮一二三区 | 女av在线| 亚洲精品1区2区3区 国产丝袜网站 | 青春草在线视频免费观看 | 欧美老熟妇又粗又大 | 操操操爽爽爽 | 六月色婷婷 | 影音先锋中文字幕第一页 | 麻豆视频免费在线 | 绝顶高潮合集videos | 重口味av | 亚洲欧美另类综合 | aaa国产| 日韩中文一区二区三区 | 精品美女一区二区三区 | 操欧美老逼 | 暧暧视频在线观看 | 激情一区二区三区 | 日韩午夜毛片 | 日韩精品高清在线 | 国产com| 欧美黄网站在线观看 | 波多野结衣一二区 | 国产青青青 | 亚洲精品国偷拍自产在线观看蜜桃 | 天天做天天干 | 僵尸叔叔在线观看国语高清免费观看 | 国产呻吟av| 久久人人爽爽人人爽人人片av | 在线观看av大片 | 800av在线视频| 日韩城人免费 | 爱av在线| 瑟瑟视频在线 | 国产毛片a| 成年人性视频 | 亚洲成人精品一区二区 | 欧美一级片网址 | 亚洲精品视频在线免费 | 亚洲天堂性 | 国产乱仑视频 | 80日本xxxxxxxxx96 亚洲国产精品视频在线 | 欧美1区2区3区4区 | 国产精品815.cc红桃 | 香港台湾日本三级大全 | 日韩不卡高清 | 午夜在线观看免费视频 | 黄色a∨ | 成人aⅴ视频 | 欧美日韩成人一区 | 可以免费看的黄色 | 成年人视频在线观看免费 | 国产精品熟女久久久久久 | 亚欧洲乱码视频 | 中国黄色在线视频 | 饥渴少妇勾引水电工av | 可以在线看的av | 女性喷水视频 | 爱情岛亚洲论坛入口福利 | 精品久久久中文字幕人妻 | 少妇高潮一区二区三区99欧美 | 不卡av网站 | 免费成人蒂法网站 | 国产无遮挡又黄又爽免费视频 | 国产精品伦一区二区三区免费看 | 国产高清无密码一区二区三区 |