十四屆華中科大賽補題

2022-06-02 04:30:09 字數 1530 閱讀 9275

c題 professional manager

#include using

namespace

std;

int root[200005],siz[200005],last[200005

];int

n,q,u,v;

intget(int

i)void

ops1()

void

ops2()

void

ops3()

void

ops4()

intmain()}}

return0;

}/*/// 用last記錄當前元素的前位

/// 查詢當前元素根 則 查詢當前元素的last的根

///// 當要從集合中去掉某元素時

///// 改變其last root[last]=last siz[last]=1

/// 這樣不會影響到在其下的其他元素查詢根的過程

當合併了2 3,3 4,4 5

last 3 4 5 5

| | | |

root 2-3-4-5

siz 1 2 3 4

此時若去掉3

last 3 6 5 5

| | | |

root 2-3-4-5

siz 1 1 3 3

*/

view code

l題 fresh air

#include #include 

#include

#include

#include

using

namespace

std;

struct nodea[100005

];//

supercalifragilisticexpialidocious area被樹圍住 從外部無法到達

//cnt為無法到達的區域大小 無法到達的區域設為0

int n,cnt,g[2005][2005],ans[100005

];int mov[4][2]=,,,};

bool bound(int x,int

y)void bfs(int x,int

y));

g[x][y]=2; cnt--;

while(!q.empty()));}

}}bool check(int x,int

y)

return0;

}int

main ()

cnt=2001*2001-n;

bfs(

0,0);//

先bfs一遍

///此時res等於減去1和2後餘下的無法到達的0的個數

for(int i=n;i>0;i--) //

從最後一點向前遍歷

for(int i=1;i<=n;i++)

printf(

"%d\n

",ans[i]);

}return0;

}

view code

牛客 第十五屆華中科大邀請賽 J Mex 貪心

題目 嗚嗚嗚,簽到題都不會,菜枯遼。第一次爆零,補個簽到題留念。這個算思維題?貪心?我不懂 題意 求乙個序列的所有子串行和中,沒有出現的最小數。因為序列長度為1e5,所以複雜度不能超過 o nlogn 找規律。首先,思考有沒有乙個無敵的序列,使 ans 序列總和 1 序列ans12 1 24 1 2...

第十四屆華中科技大學程式設計競賽決賽同步賽

題意 長度為 n 的序列,沒告訴你具體數是多少。只給出 m 個查詢,表示區間 l,r 的異或和為 k 但是第 i 個查詢如果和前面的查詢有矛盾,那就是錯誤的。輸出所有的錯誤查詢。tags 對於乙個查詢,我們知道 sum r sum l 1 k 建成圖就是 r l 1 但要快速地求出異或值,就要用帶權...

哈爾濱工程大學第十四屆程式設計競賽 (補題

f 小帆帆走迷宮 簡單dp 一道其實不是很難的四維dp 但是在考場上因為只記錄轉彎次數沒記錄方向沒寫出來 看題發現 其實這道題就是二維數塔 轉向費的dp 所以我們用dp n n k m 來記錄狀態 前兩維n n 代表當前座標 k記錄轉彎幾次 m記錄方向 當m 0 記沒改變方向 當m 1 為改變了方向...