2015多校第三場hdu5326 work

2021-07-04 05:50:27 字數 821 閱讀 6170

題意:給m對朋友構成乙個樹,詢問子樹(包括孫輩)個數為k的有幾個

思路:賽中小夥伴有類似於並查集的方法構造樹,同時統計每個的子樹有幾個,ac的,賽後自己敲的時候用鄰接矩陣構造的鍊錶來寫,類似於二分匹配的時候用的鍊錶,同時用l陣列和r陣列記錄每個點以及這個點的子樹

**:小夥伴的並查集構造樹

#include #include #include #include #include #include #include #define maxn 105

using namespace std;

int pre[maxn],cnt[maxn];

int main()

for(int i=0; i

鍊錶構造樹:

#include#include#include#include#define maxn 1000005

using namespace std;

int head[maxn];

int index;

int l[maxn],r[maxn];

int idx;

int id[maxn];

struct edge

e[maxn];

void addedge(int a,int b)

void dfs(int u)

int main()

{ int n,k;

int u,v;

while(scanf("%d%d",&n,&k)!=eof)

{index=0;

memset(head,-1,sizeof(head));

for(int i=0;i

hdu多校第三場

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

2013第三場多校

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

2014多校聯合 第三場

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