2018ccpc吉林 C JUSTICE 思維

2021-09-20 18:51:37 字數 611 閱讀 2890

題意:n個物品,每個物品重量1/2^k[i],問可不可以分成兩份,讓這兩份的總量都大於1/2

題解:因為兩份都要大於1/2,那麼我們兩份都找出1/2,剩下的就無所謂了。我們把問題轉化為,兩份都需要找到乙個1,因為 1/2==1/4+1/4,所以乙個1等價於兩個2,4個3.....,我們先從小到大排個序,令cnt1,cnt2表示這兩組當前還需要pre這樣的數的數量,如果cnt1+cnt2>後面剩餘的數就直接break即可,cnt1和cnt2都為0時,即兩組都已達到1/2,即符合條件

#includeusing namespace std;

int vis[100010];

struct nodea[100010];

int n;

int cmp(const node &xx,const node &yy)

if(cnt1)

else

if(!cnt1 && !cnt2) break; // 兩個都滿足了

}if(flag==0 || cnt1 || cnt2) puts("no");

else

printf("\n");}}

return 0;

}

2018CCPC吉林C JUSTICE(思維模擬)

題意 給你n個數,能否分成兩組,使每組的2的ki次方分之一的和大於等於二分之一,能的話輸出分組方案 思路 不難發現,例,也就是2個k能合成乙個k 2,能不能分成兩組,只需要看最後合完之後1的個數是不是大於等於2。利用二進位制的原理,優先佇列 並查集,先取出權值最小的,進行合併,如果兩個值相同,則可以...

2018CCPC吉林賽區 重現賽 部分

題意 判斷所給表示式的奇偶性 思路 打表發現1 3為奇數,4 8為偶數,9 15為奇數,16 24為偶數,25 35為奇數 include using namespace std typedef long long ll const int inf 0x3f3f3f3f const int max ...

秦皇島2018CCPC現場賽

所有的磨難挫折,都該慶幸,它來的還不算晚.大海我來了 來之前,就聽說這裡有海,很欣喜.畢竟乙個土生土長的山西人,還沒 看過大海.坐了一夜的火車,下車直奔博維酒店,距離比賽地點特別近,步行10分鐘,搞定了報道,然後就回酒店補覺了.下午ge掉了開幕式,在熱身賽開始前,堪堪來到賽場.熱身賽 cqw和xzw...