給一堆字串,判斷能否從某個字母做開頭,首尾相連,到某個字母的結尾;要注意,每一種變換只能使用一次,例如b---->t,只能用一次。否則無限迴圈。
#include #include#includeusing namespace std;
char s[2000];
int m[30][30], vis[30][30];
int x, y, t1, t2, flag;
void dfs(int x)
for(i = 0; i < 26; i++)
else
vis[x][i] = 0;}}
}int main()
else
}else
memset(m, 0, sizeof(m));
memset(vis, 0, sizeof(vis));
t1 = t2 = 0;
flag = 0;
}else
if(y == ('m' - 'a'))
if(x != y)}}
}
HDOJ3639解題報告 縮點 dfs
題目概述 題面有點翻譯不來 可以用chrome自帶的那個翻譯。大致思路 如果跑bfs或者dfs遇到環的話就會出問題,所以先跑一遍tarjan求強連通分量,把環的情況去掉,在剩下的圖上做。這個時候發現樣例1裡2這個節點指向的兩個節點都是答案,所以反向建圖,用dfs求出所有入度為0的點的子樹大小,最大數...
HDOJ5692解題報告 dfs序 線段樹
題目概述 中文題面就不贅述了。大致思路 這個題給出的是一棵樹,我們可以使用dfs序將這棵樹處理成一條鏈,然後對這條鏈來進行資訊維護和查詢。有兩種操作,0 x是詢問從0出發 題目保證0為樹根 經過x的路徑中的最大權值,1 x y是將點x的權值修改成y,這時我們用線段樹來維護乙個d i 表示點i到0點的...
HDOJ4366解題報告 dfs序 線段樹
題目概述 給出乙個公司所有員工的上下級關係 資料保證是一棵樹 現在想解雇一些員工,而他們的位置由他們的手下裡能力值比他大而且忠誠度最高的人來替代,給出m個詢問,求輸出替代他們的人的編號。大致思路 學習了一下dfs序的用法,附學習的部落格 簡單的說dfs序就是將一棵樹變成線性結構的演算法,並且保證點i...