hdu多校第三場

2021-10-08 15:36:25 字數 1311 閱讀 3735

題意是將給出的數相加計算出 其中p 的倍數的最大個數。由題意可得,在任意兩個數相加時,其模值必在0—p-1之間,將兩數相加的模值替換掉之前的兩個數字,得到長度減一的效果,用0和1 標記對應模值是否出現,從而代表被處理過的但還沒有達到 p 的倍數的值, 直到某次得到的模值為 0 時,再清空之前的標記(代表得到了 p 的倍數);在此過程中記錄清空標記的次數,b

#include

using

namespace std;

intmain()

else

} cout << res << endl;

}return0;

}

由題意可得,三個人為一組的小隊中,至少需要兩名能力為 2 的選手,最多需要一名能力為 1 的選手;而附加條件為任意兩個選手之間不相互認識。當兩個能力為1 的選手相互認識時,這顯然對我們的組合結果沒有影響,而當能力為 2 的選手與任意能力的選手認識時,組合的結果會在沒有任何人相互認識的結果要小。由這個性質,我們可以先用二位陣列ki[i][j]表示 i 位選手能力為 j 時的組合數,再先後一一新增在介紹後相互認識的選手,組成連通塊,然後減去此連通塊下,造成的組合數減少的數量,從而達到選手之間兩兩不相識的效果。

#include

using

namespace std;

typedef

long

long ll;

const

int n =

100005

;const ll mod =

1e9+7;

int one[n]

;int two[n]

;int x, n;

int u, v;

struct functions

void

init()

void

add_ncm

(ll a, ll b)}}

void

reduce_union

(ll a, ll b)}}

ll res()

}solve;

int pos[n]

;int

find_pos

(int p)

void

unions

(ll x, ll y)

intmain()

cout << solve.

res(

)<< endl;

for(

int i =

1; i < n; i++)}

return0;

}

2013第三場多校

第三場多校 至今最慘的一場多校。共作出兩題。1008 狀態壓縮優化的搜尋 0 比賽時候直接狀態壓縮dp,結果tle了。沒有算好時間複雜度,第一次交的時候沒有測大資料。應該多想幾種方法,做到一a才行,不然卡題會卡很久。1 後來直接搜尋,從最後乙個狀態開始搜,每次都用乙個回文串,然後搜另乙個的最小步數。...

2014多校聯合 第三場

1002 redraw beautiful drawings 最大流。用sap gap優化的模版過的。1.源點 每一行對應的點,流量限制為該行的和 2.每一行對應的點 每一列對應的點,流量限制為k 3.每一列對應的點 匯點,流量限制為該列的和 跑一遍最大流。如果流量小於總權值和,那麼說明imposs...

2019湖南多校第三場

開場lfw過a,然後byf突然想到e的構造方法,wa了一發開始查錯,shl中途看g,說 這不是bzoj原題嗎?拿到一血帶歪榜,然後byf該出e拿到一血又帶歪榜。shl寫出b,之後lfw c想複雜調不出,shl wa一發c過掉 byf發現f題是幾何題,想起了寒假剛幾何起步的lfw,byf開始帶著lfw...