poj 2186 Popular Cows -- 強連通分支
摘要: 研究了Lynncui牛的代碼,才知道解題思路:
先Tarjan強連通縮點,(假設共n2個)得到的id[i]編號為0的分支,其出度為0(有可能是Popular Cows)。
再判斷其他強連通分支是否有出度
1)如果其中有一個分支沒有出度,則0分支不可能是Popular Cows(considered popular by every other cow)
2)如果其他所有強連通分支都有出度,
閱讀全文
posted @
2009-04-23 18:17 longshen 閱讀(599) |
評論 (0) 編輯
poj 2762 Going from u to v or from v to u? -- 強連通
摘要: 思路模糊時看了DieIng大牛的思路,寫了出來...
思路:Tarjan算法計算強連通分支,然后縮點,再求其拓撲序。
(假設求得的拓撲序存儲在topo[MAX]中) topo[i] 與 topo[i+1] 存在邊連通(i到i+1 或i+1到i),則定有i到i+1的邊。
而如果每個topo[i] 與 topo[i+1] 都存在邊連通(即有i到i+1的邊)時,topo[i] 到任意topo[j]便都要邊連通。
閱讀全文
posted @
2009-04-23 09:08 longshen 閱讀(537) |
評論 (0) 編輯
poj 1191 棋盤分割 -- 動態規劃
摘要: dp[k][x1][y1][x2][y2]:左上角坐標為(x1,y1),右下角坐標為(x2,y2)
的棋盤,設它把切割k次以后得到的k+1塊矩形的總分平方和最小值.
s[x1][y1][x2][y2]:左上角坐標為(x1,y1),右下角坐標為(x2,y2)
的棋盤的總和的平方
dp[k][x1][y1][x2][y2] =
1)按橫的劃分: min(dp[k-1][x1][y1][f][y2]+s[f+1][y1][x2][y2]
, dp[k-1][f+1][y1][x2][y2]+s[x1][y1][f][y2]);
2)按豎的劃分: min(dp[k-1][x1][y1][x2][f]+s[x1][f+1][x2][y2]
, dp[k-1][x1][f+1][x2][y2]+s[x1][y1][x2][f]);
閱讀全文
posted @
2009-04-21 19:57 longshen 閱讀(1589) |
評論 (0) 編輯