CCPC 2017秦皇島站 重現賽 H(二分匹配)

2021-08-10 19:24:36 字數 641 閱讀 6652

題意:給你乙個序列,讓你找出不超過k對的數對(i,j)使得a[i]+b[j]是乙個質數,並且i!=j,且讓這k對數對組成的

序列的元素盡可能的多,問你最終生成序列的元素個數。

比如: 3 4 3 可以組成2對(1,2)和(2,3)生成的序列就是 3 4 3,呢答案就是3

題解:對於乙個質數,本題考慮一定是原陣列的兩個數所組成,數並不是很大,我們可以預處理出所有

能構成質數的組合,將他們之間連條邊,然後考慮跑二分匹配,(其實很容易看出題目中隱藏的二分圖的,因為乙個質數一定是由乙個奇數和乙個偶數構成。。。這樣可能省去大量時間,但我沒這樣寫),在求出圖中最大二分匹配後

處理些細節就好了,比如說二分匹配的對數和k的大小關係。。

#include#include#include#includeusing namespace std;

typedef long long ll;

#define maxm 2000005

vectorq[3005];

int a[3005],b[maxm]=,used[3005];

int n,k,flag[3005],link[3005];

void init()

return 0;

}

CCPC 2017哈爾濱站 重現賽 D(瞎搞)

題意 給你一棵樹,然後樹上有m個壞人,每個壞人位於某乙個結點上,壞人之間能夠相互聯絡的條件是當且僅當兩個壞人的距離大於1,每一小時壞人會相互聯絡一次,他們會隨機的選擇乙個能聯絡的同伴方向移動,然後問你壞人之間不能相互聯絡的時間期望是多少。題解 比賽時翻譯完這道題我是懵逼的,但是感覺真的很奇怪,就覺得...

CCPC 2017哈爾濱站 重現賽 B(二分)

題意 給你乙個序列,讓你將所有子串中第k大的數拿出來,排成一排,求生成序列第m大的數是多少?題解 比賽時想的是單調棧的方法,哇,搞了快兩個小時,思路一開始就是錯的。真的是。正解是二分答案,很容易想到對於第m大的數的取值是存在單調性的。想到二分答案問題基本上就解決了,剩下的就是判斷答案的合法性,我們可...

2017 ccpc秦皇島站總結

第一次參加區域賽,內心還是有點小激動的。去到的第一天霧霾有點大,但是第二天霧霾就被吹走了,空氣還是很不錯的。第一天,因為知道學校靠海,就和隊友和東慶隊伍,去了一趟海邊看看海,也是挺不錯的體驗。還有就是,午飯不是固定的快餐之類的,是自己選擇的,而且資金很充足,這點非常棒,還有很多看起來很好吃的,唯一可...