題目鏈結
差不多是斯坦納樹裸題,不過邊權化成了點權,這樣在合併兩棵子樹時需要去掉根結點的權值,防止重複。
題目還要求輸出解,只要在轉移時記錄下路徑,然後dfs一遍就好了。
1 #include2using
namespace
std;
3 typedef long
long
ll;4
const
int n=10+2,inf=0x3f3f3f3f;5
const
int dx= ;
6const
int dy= ;
7int n,m,k,dp[1
<<10
][n][n],a[n][n],inq[n][n];
8char
s[n][n];
9struct d x[n];
10struct ans anss,nxt[1
<<10
][n][n];
11 queueq;
12void upd(int x,int y,int c,int s,int x2,int
y2) ;
16if(!inq[x][y])inq[x][y]=1
,q.push();17}
18}19void spfa(int
s) );
25while
(q.size()) 33}
34}35void dfs(int s,int x,int
y) 43
intmain() ;49}
50 memset(dp,inf,sizeof
dp);
51for(int i=0; i1
52for(int s=1; s<(1
59spfa(s);60}
61int ans=inf;
62for(int i=1; i<=n; ++i)
63for(int j=1; j<=m; ++j) ;66}
67for(int i=1; i<=n; ++i)
68for(int j=1; j<=m; ++j)s[i][j]='_'
;69dfs(anss.s,anss.x,anss.y);
70 printf("
%d\n
",ans);
71for(int i=1; i<=n; ++i)
75return0;
76 }
P4294 WC2008 遊覽計畫
題目鏈結 題目描述 從未來過紹興的小d有幸參加了winter camp 2008,他被這座歷史名城的秀麗風景所吸引,強烈要求遊覽紹興及其周邊的所有景點。主辦者將紹興劃分為 n nn 行 m mm 列 n m n m n m 個分塊,如下圖 8 景點含於方塊內,且乙個在這裡插入描述 方塊至多有乙個景點...
洛谷P4294 WC2008 遊覽計畫
教練上次課講了插頭dp,然後列出的插頭dp題目裡有這道題。本來想練練插頭dp的結果用更快更簡單的斯坦納樹解決了這道題。斯坦納樹經典題目。斯坦納樹其實並不是很難,一般用來解決在一張無向圖上選 text 個點使這 text 個點連通並且始所選邊邊權最小。那麼回到本題。設 f 表示當前在第 text 行 ...
2595 Wc2008 遊覽計畫
time limit 10 sec memory limit 256 mbsec special judge submit 1312 solved 602 submit status discuss 第一行有兩個整數,n和 m,描述方塊的數目。接下來 n行,每行有 m 個非負整數,如果該整數為 0,...