CF 219D (#135div.2)D. Choosing Capital for Treeland
2013-05-05 21:00
369 查看
今天积分赛的最后一道题目
TLE是因为自己太二了...
总体的时间复杂度是O(n^2)而不是O(n);
因为in(u,v)的函数连二分都没有写...必须TLE
orz...
真的是....
好吧,,,
下次注意子函数的复杂度
好忧伤啊...
又优化了一下...G完全可以只存反向边...orz
TLE是因为自己太二了...
总体的时间复杂度是O(n^2)而不是O(n);
因为in(u,v)的函数连二分都没有写...必须TLE
orz...
真的是....
好吧,,,
下次注意子函数的复杂度
好忧伤啊...
又优化了一下...G完全可以只存反向边...orz
#include<stdio.h> #include<vector> #include<algorithm> #define N 200010 using namespace std; vector<int>L ,G ; vector<int>::iterator it,itp; int ft ,dp ,Q ; int n; void bfs_tree(){ int i,wQ=0,pQ=0; while(pQ<=wQ){ // printf("?"); int v=Q[pQ++]; for(it=L[v].begin();it<L[v].end();it++){ int u=*it; if(ft[u]==-1){ ft[u]=v; Q[++wQ]=u; } } for(it=G[v].begin();it<G[v].end();it++){ int u=*it; if(ft[u]==-1){ ft[u]=v; Q[++wQ]=u; dp[1]++; } } } } void bfs_dp(){ int i,wQ=0,pQ=0; while(pQ<=wQ){ // printf("?"); int v=Q[pQ++]; for(it=L[v].begin();it<L[v].end();it++){ int u=*it; if(ft[u]==v){ dp[u]=dp[v]+1; Q[++wQ]=u; } } for(it=G[v].begin();it<G[v].end();it++){ int u=*it; if(ft[u]==v){ dp[u]=dp[v]-1; Q[++wQ]=u; } } } } int main(){ int n; while(scanf("%d",&n)!=EOF){ int i,x,y; for(i=1;i<=n;i++)L[i].clear(),G[i].clear(); for(i=1;i<n;i++){ scanf("%d%d",&x,&y); // x=n;y=i; L[x].push_back(y); G[y].push_back(x); } for(i=2;i<=n;i++)ft[i]=dp[i]=-1; Q[0]=1;ft[1]=0;dp[1]=0; bfs_tree(); Q[0]=1; bfs_dp(); int res=(int)1e9,fi=1; for(i=1;i<=n;i++)if(dp[i]<res)res=dp[i]; printf("%d\n",res); for(i=1;i<=n;i++)if(dp[i]==res){ if(fi)fi=0;else printf(" "); printf("%d",i); }printf("\n"); } return 0; }
相关文章推荐
- CF-219-D-Choosing Capital for Treeland
- CF 219 D Choosing Capital for Treeland(树形dp)
- CF 219 D:Choosing Capital for Treeland(树形dp)
- cf 135div2D Choosing Capital for Treeland 【树形dp】
- CF 深搜 Choosing Capital for Treeland
- 【codeforce 219D】 Choosing Capital for Treeland (树形DP)
- Codeforces 219 D Choosing Capital for Treeland
- CF_D. Choosing Capital for Treeland_树形DP
- 【CF】135 Div2 Choosing Capital for Treeland
- codeforces 219D D. Choosing Capital for Treeland(树形dp)
- [CF 219D]Choosing Capital for Treeland[树形DP]
- [CF219D]Choosing Capital for Treeland(树dp)
- uestc oj 1857 Choosing Capital for Treeland
- Choosing Capital for Treeland (树形dp+双向搜索)
- CodeForces 219D-Choosing Capital for Treeland(树形dp)
- Codeforces Round #135 (Div. 2) D. Choosing Capital for Treeland dfs
- Choosing Capital for Treeland (树型DP)
- Codeforces #135 T4 Choosing Capital for Treeland
- Codeforces Round #135 (Div. 2) D Choosing Capital for Treeland
- E - Choosing Capital for Treeland (树形dp)