劉汝佳第六章UVA 1599

2021-09-03 02:16:14 字數 990 閱讀 8261

這個題瘋狂re.。。。。網上找的**也不好使,不懂了。

無向圖,資料量太大,開鄰接矩陣會tle。所以開鄰接向量

先一次bfs,將每乙個點的距離找出來。

第二次bfs,將以每乙個點的距離為參照,先判斷是否是最短路徑(距離減1),然後再判斷顏色。然後再對這個點所有最短路徑且最小顏色的點bfs。注意還要把ans[i]設定為自動更新對應距離的最小顏色。

d[i]和mc設為-1,為初始值。

輸出也可以參考一下

#include#include#include#include#include#includeusing namespace std;

const int maxn=200000+5;

//無向圖

//資料量太大,開鄰接矩陣會tle。所以開鄰接向量

vector g[maxn];//g[i]儲存的事第i個節點指向的邊

vector c[maxn];//g[i]儲存的是第i個節點指向邊對應的權重

int n,m,vis[maxn],d[maxn],ans[maxn];//vis用來儲存是否遍歷到,d儲存各點的距離,ans儲存答案的序列,從0到n-1順序

void init()

for(int i=0;iq;

q.push(n);

d[n]=0;

while(!q.empty())

int mc=-1;//mc為最小顏色的目標節點的顏色

int sz=g[u].size();

for(int i=0;ic[u][i])}}

// printf("mc=%d\n",mc);

int t=d[1]-d[u];

if(ans[t]==0) ans[t]=mc;

else

for(int i=0;i}

}}int main(void)

printf("\n");

}return 0;

}

劉汝佳第六章UVA 548

遞迴遍歷樹還是有點繞。現在看來是這樣 1.先序遍歷的結果,第乙個為節點,然後一坨是preorder left root 的結果,右邊是preorder right root 的結果 2.中序遍歷,同理,節點在中間。3.後序遍歷,同理,節點在最後 在這道題中,因為要區分節點,所以每個節點權值不一樣,所...

劉汝佳第六章UVA 1572

轉化為乙個有向圖,判斷有向圖是否有閉合環。如果有,則可以無限重複。如果沒有,則不行。轉化的具體方式為,遍歷輸入條件的每乙個邊,然後把這個邊的對應節點 比如a 對應a 與這個條件的其他邊相連 模擬現實情況中的兩個正方形相連 網上 的輸入非常漂亮,用了兩個函式,乙個id函式,將52個條件對應為了52個數...

mysql第六章 第六章 mysql日誌

第六章 mysql日誌 一 錯誤日誌 錯誤日誌的預設存放路徑是 mysql 存放資料的地方 hostname.err 1.修改錯誤日誌存放路徑 mysqld log error data mysql mysql.log 2.檢視配置命令 show variables like log error 3...